znaczacy > comp.lang.* > comp.lang.java

Piotrek_20 (21.05.2009, 21:54)
czesc,
zdarzylo sie komus z Was cos takiego.

robie zwyklego persista

em.persist(mojObiekt)

przy mocno przeciazanym serwerze, czasem zdarza sie ze wrzuca mi 2
rekordy?
transakcja jest zarzadzana przez kontener ejb
jak temu zapobiedz, najprosciej jakis unikalny index na kolumnie, ale
w tym wypadku to odpada.
bimki (21.05.2009, 23:09)
> transakcja jest zarzadzana przez kontener ejb
> jak temu zapobiedz, najprosciej jakis unikalny index na kolumnie, ale
> w tym wypadku to odpada.


może jakaś synchronizacja?
Brzezi (21.05.2009, 23:23)
czw, 21 maj 2009 o 21:54 GMT, Piotrek_20 napisał(a):

> robie zwyklego persista
> em.persist(mojObiekt)
> przy mocno przeciazanym serwerze, czasem zdarza sie ze wrzuca mi 2
> rekordy?


Jezeli metoda persist jest wywolywana pojedynyczy raz(jestes 100% pewny?)
to nie ma mozliwosci aby powstaly 2 rekordy w bazie danych

Pozdrawiam
Brzezi
RaulCastro (21.05.2009, 23:36)
On 21 Maj, 23:23, Brzezi <brz> wrote:
> czw, 21 maj 2009 o 21:54 GMT, Piotrek_20 napisał(a):
> Jezeli metoda persist jest wywolywana pojedynyczy raz(jestes 100% pewny?)
> to nie ma mozliwosci aby powstaly 2 rekordy w bazie danych
> Pozdrawiam
>         Brzezi


Nie ma takiej możliwości, gdyby serwer byl tak obciązony (w co wątpie
w domowym zaciszu) skonczył by sie czas dla transkacji i dostałbyś
odpowiedni wyjątek.
Sprawdź w logach ile razy wywołujesz tą metodę.
Piotr Pietrzak (22.05.2009, 10:24)
On 21 Maj, 23:23, Brzezi <brz> wrote:
> czw, 21 maj 2009 o 21:54 GMT, Piotrek_20 napisał(a):
> Jezeli metoda persist jest wywolywana pojedynyczy raz(jestes 100% pewny?)
> to nie ma mozliwosci aby powstaly 2 rekordy w bazie danych

Oczywiście jeśli po stronie BD nie ma żadnej magii - bo np
zainstalowany wyzwalacz, który dodaje rekord sprawi, że pojawią się2
rekordy.
Myślę, że dokładnie tak jest w tej sytuacji - czyli jest jakaś magia
bazodanowa i kolega szuka blędu w złym komponencie. Czemu problem
pojawia się w sytuacji gdy serwer jest mocno przeciążony? Może ma to
związek z wielowątkowością, a może z tym, że design bazodanowy bazuje
na ostatnio dodanych elementach i jeśli pomiędzy dwoma zapisami z
jednego wątku coś wstawi drugi wątek, to pozwoli dodać to dodatkowy
rekord temu pierwszemu.
Pozdrawiam,
Piotrek
Podobne wątki