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
database?

>
> 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.

Craig
>
> 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