Hi Don, On 1/1/07, Craig L Russell 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:Craig.Russell@sun.com > P.S. A good JDO? O, Gasp! > > > > Hope this helps, -- -Michael Dick