Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Can I use transactions within a servlet?

 
Joseph Magerramov
Ranch Hand
Posts: 35
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Our software doesn't use EJBs but rather accesses database directly. For example, a certain servlet could call several methods, each of them obtaining a separate connection from the datasource and using it to update database.
Since there are several connections, connection.setAutoCommit(false) obviously won't work. I was wondering if it's possible to execute all this db calls as part of one transaction. Any suggestions or samples would be appreciated.
 
David O'Meara
Rancher
Posts: 13459
Android Eclipse IDE Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Check out UserTransactions and TransactionManager. I haven't tried it in WebSphere, let alone in a Servlet or library code, but from memory something like this may work:
The UserTranaction is an interface, the factory to obtain one is registered in JNDI.
It would look like this:

Also be aware that it may be bound in JNDI as javax.transaction.UserTransaction, I can't remember...
It is also a common practice to wrap the ut.begin/commit around a single method that does all the SQL.
 
David O'Meara
Rancher
Posts: 13459
Android Eclipse IDE Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
My appologies, it may also be "java:comp/UserTransaction". I wish I'd written it down. You may want to go looking for it
 
Joseph Magerramov
Ranch Hand
Posts: 35
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thank you David.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic