![]() |
#8 |
Участник
|
Если кому интересно, нашел решение проблемы (спасибо подсказке Alex_KD).
При вызове сервиса AIF создает "глобальную" транзакцию, соттветственно если что-то случается в самом сервисе, все try-catch блоки самого сервиса просто игнорируются и идут выше в обработчики AIF, где собственно было начало транзакции. Все попытки использовать catch Error, ClrError, Internal и просто catch не увенчались успехом. Что сделано: в точке входа сервиса сделал проверку на уровень tts и сразу сделал ttscommit. X++: ttsInitialLevel = appl.ttsLevel(); if(ttsInitialLevel > 0) { ttscommit; ttsbegin; } ... После отработки метода делаю ttscommit своей транзакции, и перед возвратом создаю новую. X++: if(ttsInitialLevel >0 && appl.ttsLevel() == 0) ttsbegin; return something Последний раз редактировалось sgt.Pepper; 26.04.2016 в 20:43. |
|
|
За это сообщение автора поблагодарили: gl00mie (2). |