Ke zjištění stavu aktuální transakce by mělo jít využít metodu UserTransaction.getStatus(). Pro vás jsou asi důležité hlavně STATUS_ACTIVE a STATUS_NO_TRANSACTION.

Vašek


Moravec Jan wrote:

Dekuji za odpoved. Timto se to tedy trochu redukuje.

Potrebuji tedy detekovat, zda jsem jiz v nejake transakci. Pokud ano, novou 
transakci neoteviram (pisete, ze pokus o zavolani neceho ve vytvorene 
UserTransakci by stejne skoncil s chybou). Pokud ne, otevru novou 
UserTransaction pokracuji dal s tim, ze beany jiz tuto transakci prevezmou.

Jak detekovat, ze prave (ne)bezim v transakci? Predpokladam, ze toto bude 
nejspise dost server-specificka zalezitost...

Dekuji,
Honza

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Behalf Of Stanislav Ošmera
Sent: Monday, September 11, 2006 12:34 PM
To: Java
Subject: Re: Chovani UserTransaction v container-managed tx prostredi


Jestlize mate na beane nastaveno required tak to proste znamena ze ta
beana musi bezet v transakci. Kdyz je jiz nejaka transakce spustena at
jiz userTransaction mebo containerrem nastartovana tak se spusti v
teto transakci. Jestlize v transakci nebezi tak si spusti novou.
Jeste muze byt nastaveno na:
RequiresNew- nastartuje novou transakci bez ohledu na predchozi stav
Mandatory- kdyz bezi v transakci tak v ni pokracuje, kdyz v transakci
nebezi tak hodi vyjimku.

ad2) kdyz vytvorite novou transakci tak je vzdy nova. Ted moc nechapu
na co se ptate, ale "nekde v prubehu" nemuzete explicitne volat commit
kdyz jsou ty beany zpracovavane containerem (jsou zakazany metody z
javax.transaction.UserTransaction)
tudiz ani v prubehu nemuzete ani tu UserTransaction vytvorit protoze
jiz bezi v kontejnerem rizene transakci



On 9/11/06, Moravec Jan <[EMAIL PROTECTED]> wrote:
Ahoj,

Rad bych se zeptal nejakeho J2EE znalce jak se chova UserTransaction v
prostredi, kde je pouzita fasada ze session beanu s container-managed
transakcemi (vse nastaveno na Required).

V podstate nastavaji tyto dva pripady:

1) UserTransaction vytvorim pred tim, nez se zavola metoda na session beanu
(tj. pred tim, ze container pripadne zalozi novou transakci)

2) UserTransaction vytvorim az nekde za session beanem.

Otazky:

ad 1) Pouzije session bean jiz existujici transakci (tj. moji
UserTransaction), nebo vytvori novou?

ad 2) Dostanu v podobe UserTransaction novou transakci, nebo dostanu jiz
existujici transakci? Nekde jsem zahledl neco o tom, ze J2EE nepodporuje
vnorovani transakci, takze predpokladam, ze dostanu jiz existujici
transakci. Nicmene, co kdyz na ni explicitne zavolam commit a pak nekde dale
behem dalsiho zpracovani vyhodim runtime vyjimku s tim, ze chci rollback
cele transakce. Provede se rollback i toho co jsem jiz comittoval v
UserTransaction?

Odpovedet emailem