Показать сообщение отдельно
Старый 20.08.2013, 16:23   #5  
PavelX is offline
PavelX
MCTS
MCBMSS
 
46 / 97 (4) ++++
Регистрация: 08.09.2006
Адрес: Красноярск
Столкнулся с такой же проблемой. Если кому-нибудь понадобится, то решил следующим образом:

В конструкторе класса LedgerBalancesPostingList меняем значение флага isUsingSecondUserConnection:
X++:
    //#define.isUsingSecondUserConnection(false)
    #define.isUsingSecondUserConnection(true)
Далее, для закрепления эффекта можно еще в том же классе поправить метод transferTempDeltaRecsToLedgerBalances:
X++:
//LedgerBalancesTransDelta::transferTempDeltaRecsToLedgerBalances(userTTSId);
LedgerBalancesTransDelta::transferTempDeltaRecsToLedgerBalances(userTTSId, connection);
Благодаря этим изменениям вся работа с таблицей LedgerBalancesTransDelta начинает вестись не через основное клиентское подключение а через отдельное, тем самым время блокировок существенно сокращается.

Честно говоря, я так до конца и не разобрался в чем конкретно была причина данной ошибки. Такое впечатление что при длинных транзакциях таблица LedgerBalancesTransDelta блокировалась целиком. Но тем не менее после этих изменений ошибки исчезли.
За это сообщение автора поблагодарили: Logger (1).