Показать сообщение отдельно
Старый 03.10.2007, 18:23   #30  
MSI is offline
MSI
Участник
 
25 / 10 (1) +
Регистрация: 03.10.2006
Находясь в состоянии борьбы за производительность нава под сиквелем у меня (уверен что ни только у меня ) возник ряд вопросов, в поиске ответов на которые мне любезно помог господин Golyshev. Даные вопросы могут оказаться интересными и для других участников форума. Господину Golyshev - огромное спасибо.


Цитата:
Цитата:
Сталкиваюсь со следующей проблемой: списочные формы больших таблиц иногда просто подвисают намертво при открытии (если стоит сортировка не по первичному ключу). Т.е. форма открывается, белеет, и нав пишет что не отвечает. И не выходит из этого состояния. (!!!) Особенно этот эффект неприятен при DrillDown во FlowFields, где выбором ключа какими-то средствами разработки Нава сложно управлять. Кстати, до конца не уверен, но есть ощущение, что ситуации не возникает, если для ключа отключена опция MaintainSQLIndex, т.е. формы никудышно работают именно с SQL-ными ключами.
Если Вы отключите MaintainSQLIndex у всех ключей - система умрет.
На всех больших таблицах (17,32, 5802 и т.п.) нужно очень тщательно подобрать ключи, для которых необходим MaintainSQLIndex и правильно установить для них SQLIndex

Проблема со списочными формами - это как раз проблема, описанная мной в примере (про 17 таблицу)
Для этих форм везде надо установить ключ по умоланию в первичный (св-во SourceTableView)

Цитата:
И еще один вопрос, который может показаться странным, но ситуация имеет место быть: иногда при прекращении работы учетных кодъюнитов по ERROR сиквель "забывает" решить, что транзакция завершена и снять блокировки с таблиц кот. были заблокированны до момента как (!) пользователь не нажмет ок на ERROR. В то время как все мануалы четко утверждают о том, что, дескать, все сообщения выводятся после завршения транзакции.

Если есть опыт борьбы с такой ситуацией очень бы хотелось получить какие-то рекомендации. Заранее благодарю.
Не знаю какие мануалы вы читали, но в NAV Installation & Configuration четко написано, что транзакция отказывается только ПОСЛЕ того, как пользователь нажмет ОК. И с этим прийдется смириться.

Мы боролись с этим так: скрипт, запускаемый каждые 15 секунд, проверяет - если какой-то пользователь является причиной блокировки и не посылает команды на сервер в течении 15 секунд, мы его отключаем.

P.S. Думаю наш диалог будет полезен и другим участникам форума. Если Вам не принципиально, я бы рекомендовал публичное обсуждение
PS Еще очень бы хотелось услышать про правильную установку SQLIndex для ключей со свойством MaintainSQLIndex, установленном в TRUE