Skocz do zawartości

Sfera - Rozwiązanie własne. Błąd przy zapisie zamówienia od klienta


Zobacz rozwiązanie Rozwiązane przez Wojciech Szopiński,

Polecane posty

Dzień Dobry,

 

Podczas używania aplikacji własnej (w skrócie do tworzenia zamówień) jednemu z użytkowników pojawił się błąd przy zapisie dokumentu.

 

"The INSERT statement conflicted with the FOREIGN KEY constraint "FK_PrzedziałWLiczniku_Sesja". The conflict occured in database "nazwa bazy" table mox.application_session, column 'application_session_id'.

 

Niestety więcej szczegółów nie znam - użytkownik błąd wysłał zdjęciem 3 dni po pojawieniu się błędu. Łączy się zdalnie przez VPN z serwerem. 

 

Co mogło ten błąd spowodować? 

Link to postu
  • Rozwiązanie

Problem jest w mechanizmie numeracji dokumentów - każde nadanie numeru dla dokumentu (czy też innego numerowanego obiektu) poprzedzone jest "rezerwacją" tego numeru (tak aby inny równolegle pracujący program nie "ukradł" go) co polega na dodaniu do bazy wpisu w tabeli Przedzialy z zarezerwowanym numerem i powiązanym z identyfikatorem sesji aplikacyjnej. Taki błąd można łatwo powtórzyć otwierając formularz nowego zamówienia (czy innego obiektu numerowanego), wypełnienie go danymi i przed zapisem uruchomienie na bazie zapytania:

DELETE FROM mox.application_session;

Wtedy program próbuje powiązać "rezerwację" numeru z nieistniejącą w bazie sesją aplikacyjną. Tutaj zapewne taka sytuacja z jakiegoś bliżej nieokreślonego powodu nastąpiła. Na ten moment jedyną potencjalną przyczyną pojawienia się takiego problemu jest usypianie komputera, na którym jest uruchomione rozwiązanie własne co mogło spowodować, że sesja aplikacyjna została potraktowana jako "wygasła". Czy taka sytuacja tutaj mogła nastąpić?

Link to postu

Myślę, że sytuacja z usypianiem klienta nie miała miejsca. Jednak użytkownicy aplikacji pracują nagminnie na bardzo słabym połączeniu internetowym (aplikacja jest uruchomiona na laptopach łączących się zdalnie przez VPN z serwerem - do tego korzystają z wifi w sporej odległości od routera). Zakładam, że może to być powodem - (sam zapis dokumentów przy ich łączności zajmuje często kilka minut). 

Link to postu
2 godziny temu, Bartłomiej Warchoł napisał:

Zakładam, że może to być powodem

Tak, może to być powodem wygasania wspomnianych przeze mnie wcześniej sesji aplikacyjnych co powodowałoby analogiczne błędy. Należałoby dodać, że problem nie jest związany stricte z implementacją rozwiązania sferycznego.

  • Lubię to 1
Link to postu
×
×
  • Dodaj nową pozycję...