![]() |
#7 |
Участник
|
Можно попробовать отловить ошибку, используя методы Application.ttsNotifyBegin() и Application.ttsNotifyCommit(). К примеру, можно дописать в них код, который, если текущий пользователь такой-то (чтоб срабатывало не у всех), записывал в какой-нить лог информацию о том, откуда вызван метод (см. Global::callStack2Infolog()) и какой текущий уровень транзакций на момент вызова метода, а в ttsNotifyCommit() сделать дополнительную проверку на то, что до вызова этого метода appl.ttsLevel() уже равен нулю, и поставить точку останова на этой ветке кода, чтобы отловить ее в отладчике. Тогда можно будет, по крайней мере, до вылета ошибки посмотреть, где именно она возникает, а по созданному логу отследить момент, когда ttsbegin/ttscommit разбалансируются (ведь предположительно они должны вызываться в рамках одного метода). Ну и погонять ваш отчет под "нужным" пользователем до момента возникновения ошибки.
|
|
|
За это сообщение автора поблагодарили: lev (1), demon46 (1). |