Цитата:
Сообщение от
Ace of Database
Мне кажется, лучше копать в этом направлении:
1. Поставить в настройках АОСа галку "Разрешить точки останова для отладки кода Х++, выполняемого на этом сервере.
2. После этого в классе Application начнут автоматически вызываться методы ttsNotifyBegin при начале транзакции и ttsNotifyCommit при завершении транзакции.
3. Модифицируйте эти методы так, чтобы записывать логи. В лог записывайте стек вызовов и значение уровня вложенности транзакции.
4. Анализируйте лог, проверяя стек вызовов и уровень вложенности транзаций, чтобы понять, где непарные ttsbegin\ttscommit
[/XPP]
А чем лучше-то? Мы вот пробовали так поступать, но без особого успеха. В этом случае на рабочем приложении начинают писаться довольно большие логи, работа всех пользователей замедляется, а обстоятельства, бывает, долго не складываются так, чтобы "попалась" незакрытая транзакция (некоторые функции могут использоваться, например, раз в неделю, и транзакция может не закрываться только при особых условиях). Вместо того, чтобы заниматься именно задачей устранения незакрытых транзакций, приходится сидеть и ждать у моря погоды.