Показать сообщение отдельно
Старый 16.07.2013, 13:14   #22  
Ярослав Щекин is offline
Ярослав Щекин
Участник
 
78 / 174 (6) ++++++
Регистрация: 16.03.2009
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
Мне кажется, лучше копать в этом направлении:
1. Поставить в настройках АОСа галку "Разрешить точки останова для отладки кода Х++, выполняемого на этом сервере.

2. После этого в классе Application начнут автоматически вызываться методы ttsNotifyBegin при начале транзакции и ttsNotifyCommit при завершении транзакции.

3. Модифицируйте эти методы так, чтобы записывать логи. В лог записывайте стек вызовов и значение уровня вложенности транзакции.

4. Анализируйте лог, проверяя стек вызовов и уровень вложенности транзаций, чтобы понять, где непарные ttsbegin\ttscommit
[/XPP]
А чем лучше-то? Мы вот пробовали так поступать, но без особого успеха. В этом случае на рабочем приложении начинают писаться довольно большие логи, работа всех пользователей замедляется, а обстоятельства, бывает, долго не складываются так, чтобы "попалась" незакрытая транзакция (некоторые функции могут использоваться, например, раз в неделю, и транзакция может не закрываться только при особых условиях). Вместо того, чтобы заниматься именно задачей устранения незакрытых транзакций, приходится сидеть и ждать у моря погоды.