Rozwiązanie jakie zaproponował "na szybko" @W2K pomogło. W tym momencie dokumenty dodają się poprawnie. W dalszym ciągu nie wiem na czym polega problem, ponieważ dokumenty innego typu dodawały się poprawnie bez tej poprawki. Baza nie jest moja, to Comarch Optima, tam jest mnóstwo triggerów i "głupot" porobionych przez samego producenta.
Tak, miałem wątpliwą przyjemność popatrzenia sobie z bardzo bliska na Comarch ERP XL przy niebanalnym obciążeniu.
Za to co zrobił producent, ale przede wszystkim wysoko opłacani konsultanci od siedmiu boleści nadaje się tylko wpierdol w dyby i do lochu.
Ci ludzie nie mają większego pojęcia o tym co tak naprawdę robią - związać drutem, dopchnąć kolanem i dalej, następny do golenia.
A i przy okazji wrogów sobie narobiłem, ponieważ na trójstronnym spotkaniu szef działu R&D dużego partnera Comarch stwierdził, że "zmiana connection string wymaga rekompilacji ich dodatku do Comarch ERP XL i będzie to kosztowało jakieś kilka tyś.".
I w tym momencie nie opanowałem odruchów i parsknąłem opluwając się kawą...
Bo jeśli jest na poziomie MSSQL, to... chyba wszyscy piszący mają blade pojęcie o MSSQL, czym jest deadlock w MSSQL, jak go łapać i jak się przed nim chronić.
To jak to jest @AdamWox ?
Ty mi powiedz, bo ja, serio, nie mam zielonego pojęcia, a już tym bardziej jak wkroczyłeś do akcji.
Zaraz, chwila...
Nie wiesz jaki masz wyjątek i co go wywołało?
Napisałeś deadlock w kontekście bazy danych.
Ja to rozumiem jako zakleszczenie po stronie MSSQL.
MSSQL w przypadku zakleszczenia zwraca odpowiedni wyjątek, o taki:
Transaction (Process ID XYZ) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
To gdzie masz zakleszczenie, w bazie danych czy w aplikacji?
Czyli co @W2K ma rację, ponieważ zaczęło mi to działać, ale nie ma racji bo wyszło fartem?
Może tak być, ale to nie jest takie oczywiste.
Zakleszczenia w aplikacji i w bazie danych bywają dość wredne i trudne do ubicia.
To co opisał @W2K ma zastosowanie przede wszystkim do kodu aplikacji i, tak naprawdę, nie wychodzi poza obszar dobrych praktyk. A jeśli się mylę, to pewnie @W2K mnie poprawi a ja się chętnie czegoś nauczę. Nie ukrywam, że .NET to nie moje "środowisko naturalne".
Ja pisałem tylko i wyłącznie o bazie danych.
Jedno z drugim może być powiązane, ale nie musi.
Zatem skąd przyszedł wyjątek?