ďťż
 
Transakcje cd. ďťż
 
Transakcje cd.
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Transakcje cd.



Piotr Krum - 27-10-2005 23:56
Transakcje cd.
  Witam.
Pisalem nie dawno o transakcjach; to bedzie kontynuacja :]. Jest tak:
aplikacja webowa, MS SQL, Hibernate, JSP i problemy z synchronizacja.
Koniecznie chce uniknac takiej sytuacji:
1. Pobieram jakis wiersz z bazy
<-- tu zostaje usuniety wspolbierznie :]
2. Robie na usunietym obiekcie operacje (np. probuje uzyc jego klucza w
jakiejs relacji) == tragedia :]

Problem sa glownie delete, updaty malo wazne. Ze strony kodu aplikacji, nie
da rade sie przed zabezpieczyc. Ustawilem REPETABLE READ i transakcja
wspolbierzna jest blokowana na czas pierwszej, co jest zadowalajace.
Niestety ;(, pojawil sie inny problem:

1. Pobieram jakis wiersz z bazy
2. Modyfikuje wiersz
1. Druga trans. tez
2. Druga probuje modyfik./usuwac
3. Zatwierzdam
3. Zatwierzadm - ta sie sypnie z powodu
deadlocka
Jest to sytuacja naturalna, której jednak chcial bym uniknac. Ustawienie
drugiej na nizszy poziom nie jest mozliwe (hibernate :/) Ustawienie
transakcji na READ COMMITED i pobieranie wierszy, które nie moga byc
usuniete za pomoca select .. for update rozwiazuje problem z tym, że: 1. Nie
ma 100%, że wszystkie czule na to miejsca sa zabezpieczone; 2. Nie wszystkie
bazy obsluguja to polecenie (na pewno Oracle i MS SQL).
Jakies inne pomysly, jak to rozwiazac (moze SERIALIZABLE :)

Thx i pozdro

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/





artiun - 27-10-2005 23:57

  Piotr Krum napisał(a):
> Witam.
> Pisalem nie dawno o transakcjach; to bedzie kontynuacja :]. Jest tak:
> aplikacja webowa, MS SQL, Hibernate, JSP i problemy z synchronizacja.
> Koniecznie chce uniknac takiej sytuacji:
Nie ma
> 1. Pobieram jakis wiersz z bazy
> <-- tu zostaje usuniety wspolbierznie :]
> 2. Robie na usunietym obiekcie operacje (np. probuje uzyc jego klucza w
> jakiejs relacji) == tragedia :]
>
> Problem sa glownie delete, updaty malo wazne. Ze strony kodu aplikacji, nie
> da rade sie przed zabezpieczyc. Ustawilem REPETABLE READ i transakcja
> wspolbierzna jest blokowana na czas pierwszej, co jest zadowalajace.
> Niestety ;(, pojawil sie inny problem:
Nie ma
>
> 1. Pobieram jakis wiersz z bazy
> 2. Modyfikuje wiersz
> 1. Druga trans. tez
> 2. Druga probuje modyfik./usuwac
> 3. Zatwierzdam
> 3. Zatwierzadm - ta sie sypnie z powodu
> deadlocka
nie jest naturalną
> Jest to sytuacja naturalna, której jednak chcial bym uniknac. Ustawienie
> drugiej na nizszy poziom nie jest mozliwe (hibernate :/) Ustawienie
> transakcji na READ COMMITED i pobieranie wierszy, które nie moga byc
Nie ma
> usuniete za pomoca select .. for update rozwiazuje problem z tym, że: 1. Nie
> ma 100%, że wszystkie czule na to miejsca sa zabezpieczone; 2. Nie wszystkie
> bazy obsluguja to polecenie (na pewno Oracle i MS SQL).
Oooo przepraszamy, że my nie wiemy o jaką bazę TOBIE chodzi.
> Jakies inne pomysly, jak to rozwiazac (moze SERIALIZABLE :)
usunąć, napisać na nowo (dołączyć w temacie o jaki system bd (bd) chodzi)
--
Artur




Piotr Krum - 27-10-2005 23:57

  artiun <artiun@wp.pl> napisał(a):

> Piotr Krum napisał(a):
> > Witam.
> > Pisalem nie dawno o transakcjach; to bedzie kontynuacja :]. Jest tak:
> > aplikacja webowa, MS SQL, Hibernate, JSP i problemy z synchronizacja.
> > Koniecznie chce uniknac takiej sytuacji:
> Nie ma
> > 1. Pobieram jakis wiersz z bazy
> > <-- tu zostaje usuniety wspolbierznie :]
> > 2. Robie na usunietym obiekcie operacje (np. probuje uzyc jego klucza w
> > jakiejs relacji) == tragedia :]
> >
> > Problem sa glownie delete, updaty malo wazne. Ze strony kodu aplikacji, nie
> > da rade sie przed zabezpieczyc. Ustawilem REPETABLE READ i transakcja
> > wspolbierzna jest blokowana na czas pierwszej, co jest zadowalajace.
> > Niestety ;(, pojawil sie inny problem:
> Nie ma
> >
> > 1. Pobieram jakis wiersz z bazy
> > 2. Modyfikuje wiersz
> > 1. Druga trans. tez
> > 2. Druga probuje modyfik./usuwac
> > 3. Zatwierzdam
> > 3. Zatwierzadm - ta sie sypnie z powodu
> > deadlocka
> nie jest naturalną

Jest naturalna. Druga tez chce miec odczyt powtarzalny, tez zaklada blodady.

> > Jest to sytuacja naturalna, której jednak chcial bym uniknac. Ustawienie
> > drugiej na nizszy poziom nie jest mozliwe (hibernate :/) Ustawienie
> > transakcji na READ COMMITED i pobieranie wierszy, które nie moga byc
> Nie ma
> > usuniete za pomoca select .. for update rozwiazuje problem z tym, że: 1. Nie
> > ma 100%, że wszystkie czule na to miejsca sa zabezpieczone; 2. Nie wszystkie
> > bazy obsluguja to polecenie (na pewno Oracle i MS SQL).
> Oooo przepraszamy, że my nie wiemy o jaką bazę TOBIE chodzi.
> > Jakies inne pomysly, jak to rozwiazac (moze SERIALIZABLE :)
> usunąć, napisać na nowo (dołączyć w temacie o jaki system bd (bd) chodzi)

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/




artiun - 27-10-2005 23:57

  Piotr Krum napisał(a):
>>> 3. Zatwierzadm - ta sie sypnie z powodu
>>> deadlocka
>>
>>nie jest naturalną
> Jest naturalna. Druga tez chce miec odczyt powtarzalny, tez zaklada blodady.
Zostawię to - niech Cię zjedzą.
Nie ma takiej opcji, w roku 2005.

--
Artur





Piotr Krum - 27-10-2005 23:57

  artiun <artiun@wp.pl> napisał(a):

> Piotr Krum napisał(a):
> >>> 3. Zatwierzadm - ta sie sypnie z powodu
> >>> deadlocka
> >>
> >>nie jest naturalną
> > Jest naturalna. Druga tez chce miec odczyt powtarzalny, tez zaklada blodady.
> Zostawię to - niech Cię zjedzą.
> Nie ma takiej opcji, w roku 2005.
>
A ja nie ... :]
Za pomoca transakcji faktycznie nie da rady. To jak sobie z tym poradzic??

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/




Robert Grabowski - 27-10-2005 23:57

  Piotr Krum wrote:
> Witam.

[...]

Jeżeli używasz hibernate, to po odczytaniu musisz ten wiersz
zablokować w bazie:

session.lock(_object_, LockMode.UPGRADE);

pozdrawiam
Robert Grabowski
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?= =?iso-8859-2?q?=5BD=B3ugie=5D?= javax.transaction.SystemException z hibernate. PL/pgSQL jak =?ISO-8859-2?Q?u=BFy=E6_transakcji=2E?= [msssql, transact-sql] prosze o zapytanie ktore odzwierciedlistrukturę bazy [MS SQL 2000] Jak przeniesc Transaction Log na inny server. =?utf-8?Q?oracle_xe=28nie_tylko=29_-_instancja?==?utf-8?Q?_na_p=C5=82ycie_CD?= [MS SQL] System transakcyjny wybieranie kolejnych rekordow [MS SQL]Log transakcji+restore+info (MYSQL) INSERT INTO (table) SELECT * i transakcje Mssql 2000 - replikacja transakcyjna + merge
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • morebeer.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com