Показать сообщение отдельно
Старый 12.04.2010, 14:20   #1  
Shannon is offline
Shannon
Участник
Аватар для Shannon
 
19 / 10 (1) +
Регистрация: 25.08.2004
Адрес: Kyiv
Странный код в InventSum.update() и deadlocks
[Kernel version — AX 4.0.2503.1109, application version — 4.0.2503.828, MS SQL]

В изрядно измененном приложении возникли блокировки номенклатуры, я поотлаживал, и наткнулся в таблице InventSum метод с таким кодом:

X++:
           
           ostPrice = postedQty ? postedValue / postedQty : 0;

           select firstonly forupdate inventTable
                      where inventTable.ItemId == itemId;

            if (inventTable && costPrice)
            {
                inventTable.CostPrice = costPrice;
                inventTable.update();
           }
}

Этот метод вызывается из InventSum.update(). Это только мне кажется, что это не очень правильно — вызывать из такого часто вызываемого метода, как InventSum.update(), какие-то апдейты? Может это быть причиной блокировки?