Tato funkcionalita (vnořování) není JTA ani EJB compatible. Pracuje
se s objekty implementující rozhraní
oracle.toplink.sessions.UnitOfWork, které umožňují pak transakce
vnořovat. Jedná se o proprietární API TOPLinku. Ale funguje pěkně :) .
S pozdravem
Petr Šrajer.
On 9.5.2007, at 9:34, Roman Pichlik wrote:
Subtransakce (vnořené transakce) používáme v TOPLinku (používámě
komerční verzi a nevím, zda je to možné i ve verzi Essential která
je free). Ten podporuje zanořování transakcí. Tzn. z jedné
transakce si vytvoříte další subtransakci. Její změny pak můžete
promítnout do nadřízené transakce (commit), nebo je zahodit
(rollback). Změny do databáze se ale zapisují až při potvrzení
první transakce. Vnořené transakce nic do DB nezapisují.
To by me zajimalo jak to dela, to co pisete se mi vubec nezda. JTA
nic jako vnorene transakce, jak je popsal puvodni pisatel
nepodporuje. JTA definuje sice RequiresNew, ale to se chova tak, ze
vrchni transakce se suspenduje, vytvori se nova *nezavisla*
transakce a po jejim dokonceni se vrchni transakce resumne. Obe
transakce jsou ovsem na sobe nezavisle! Navic tahle uroven
propagace transakci neni podle EJB specky mandatory, takze lze
pouzit jenom v nekterych aplikacnich serverech.
To co popisujete je klasicke chovani transakci, zadne subtransakce
to nejsou. To jest, pokud mate rozjetou transakci a nejaka vrstva
nize se snazi rozjet transakci s propagaci Required, stane se pouze
to, ze transakcni manazer vrati tu puvodni transakci. Commit nebo
rollback akorat oznaci status transakce, vlastni commit nebo
rollback probehne az na urovni kodu, ktery tu transakci opravdu
vytvoril.
Podle meho nazoru, puvodni tazatel nepotrebuje nic specialniho
(vnorene transakce - nevhodne pouzity termin), klasicke transakcni
chovani presne splnuje to co potrebuje. A rozjede transakci, B
participuje. Commit je fyzicky proveden az ve chvili, kdy A
commituje. A i B mohou celou transakci rollbacknout. Pak plati
budto vsechno z A a B a nebo nic z A i B.
--
S pozdravem Roman "Dagi" Pichlik
/* http://www.sweb.cz/pichlik/ Blog pro kodery */
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________