Hi Don,

On 1/1/07, Craig L Russell <[EMAIL PROTECTED]> wrote:

Hi Don,

The short answer is yes, UserTransaction is supposed to work.

On Jan 1, 2007, at 11:52 AM, Don Brady wrote:

> I cannot get UserTransaction to work.
> Nothing happens when I commit.

Is the symptom that the commit succeeds but there is no change in the

> This consists of:
> - Using a JTA datasource
> - specifying Bean Managed Transaction rather then CMT on the
> enclosing session Bean.
> - looking up a UserTransaction with:
>     UserTransaction userTran = (UserTransaction) initCtx
>                .lookup("java:comp/UserTransaction");
> then doing a begin on it, some entity lookup and changes, and a
> commit.

Is the EntityManagerFactory (PersistenceUnit) also declared as JTA,
in addition to the DataSource that it uses? Both need to be JTA-enabled.

> Could anyone tell me if this should work?
> This is under WebSphere 6.1.
> As background, I am able to get a JTA data source to work fine if I
> use Container Managed Transactions rather than BMT.  The problem
> with that approach for me is that I am calling the session Bean as
> a web-service-enable endpoint.  If I leave committing the
> transaction entirely to JTA, the commit  is done after all of my
> web service code has exited and any errors are thrown as soap
> faults.   I want to be able to catch the error and analyze it
> before returning from the web service.  I can also do this fine
> with Resource Local Transactions but then I do not get the benefits
> of a JTA datasource managed by WebSphere.

And the possibility of using other transactional resources as well.

If you lookup the UserTransaction in your Session Bean, then your approach
should work. I tried making the Feature Pack sample application a BMT bean
and it seemed to work for me.  I can send you the application if you'd like.

If the transaction is started prior to looking up a  BMT bean, then it will
be suspended before the bean method
executes. I don't know much about web services, this might not be the case
or possible.

> So I am trying to use JTA with BMT which I believe would allow me
> to catch errors on commit.

Right, this is a good pattern to use in order to wrap database errors
with your own (presumably more user-friendly) exceptions.

> If this is too much of  a user question for this list, please let
> me know.....
> Thanks!
> Don

Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:[EMAIL PROTECTED]
P.S. A good JDO? O, Gasp!

Hope this helps,
-Michael Dick

Reply via email to