Показать сообщение отдельно
Старый 07.06.2011, 10:00   #3  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от EVGL Посмотреть сообщение
Close non-financial transfers - хреновая штука, при тестировании, которое коллега проводил, создавало блокировки и могло бы потенциально остановить работу предприятия.
Там все нефинансовые переносы закрываются в одной транзакции. При этом на каждую группу складских аналитик генерится один нехилый update. (Можно посмотреть в inventCostNonFinancialTransferHandler.updateInventTrans()). Как только число обновляемых записей в одном update превысит порог в 5000 (кажется такой порог сейчас в SQL Server 2005/2008), начнется эскалация блокировок с записей на страницы и кучу невинных пользователей заблокируют нахрен.

Возможное решение проблемы - переписать этот класс на обновление по одной номенклатуре, и переместить вызов куда-нить в inventCostItemDim.updateItem(), в ту веточку которая только на нулевой итерации отрабатывает. Я, правда,этого не пробовал.
Кроме того, мне не нравиться что эти складские проводки закрываются вообще без создания записей в inventSettlement. Почему-то для закрытых проводок по услугам, такие записи создаются, а для нефинансовых переносов - нет...