tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Blevins <david.blev...@visi.com>
Subject Re: Result of EJB transaction in clent
Date Sun, 22 Jun 2008 21:45:48 GMT

On Jun 22, 2008, at 11:17 AM, Martin Uhlir wrote:

> hi,
>
> i'm new to ejb so sorry for my simple question, but i could not find  
> the answer anywhere. i have a web app using openejb. in a client i  
> call a business mothod of an ejb bean and the question is how i can  
> get to know in the client if the business method was commited or  
> rolled back?? i need to know this to be able to decide which page  
> should be returned to the user.

For container managed transactions (the default) you can assume the  
transaction was committed if no exception was thrown to the client  
(either by the bean or the container).

If an exception was received by the client it still may be possible  
that the transaction was still committed.  The bean can throw "App  
Exceptions" which the container will treat as a normal return type  
will not cause the container to rollback the transaction.  The basic  
policy is throwing a checked exception (i.e. it's declared in your  
throws clause) from the bean method does not cause the container to  
rollback the transaction, throwing an unchecked exception (i.e. a  
RuntimeException or subclass) from the bean method does cause the  
container to rollback the transaction.  A minor note, it is possible  
to throw unchecked exceptions and have them not rollback the  
transaction by annotating them with @ApplicationException, though most  
people don't use that feature.

-David




Mime
View raw message