D7+ FB 2.0 + IBX ile geliştirilen bir proje şöyle bir sorunum var.
StokHareketi adında bir tablom var
StokBakiye adından ikinci bir bir tablom var.
StokHareketi tabloma insert veya update yapıldığında bu tablonun AfterInset ve AfterUpdate triggerleri içinde StokBakiye tablosundaki bakiye alanlarını otomatik güncelleliyorum.
Programda Fatura işlemi gerçekleştirirken
1.Kullanıcı yeni bir fatura kaydı açtı ve stokları ekledi. Ancak henüz kaydetmedi. Bu sırada
2.Kullanıcıda yeni bir fatura kaydı açtı ve o da stok eklemeye başladı. Eğer 1.kullanıcının eklediği stoklardan birini eklerse Dead Lock hatası alıyorum.
Trigger içeriği :"
Kod: Tümünü seç
Update stokbakiye set miktar=xxxx where stokkodu=new.stokkodu
Hatayı takip ettiğimde bunun StokHareket tablosunun Afterinsert ve AfterUpdate triggeri içindeki güncelleme sorgusundan kaynaklandığını tespit ettim.
Bu sorunu nasıl aşabilirim. Klasik Deadlock hatasının dışında bir durum olduğunu düşünüyorum.
IBXTranction durumu:
read_committed
rec_version
nowait