Thanks, that's helpful. I'll look into Spring. I will be adding operations that do inserts and updates soon.
Regards, Michael > -----Original Message----- > From: Glen Mazza [mailto:[EMAIL PROTECTED] > Sent: Thursday, May 03, 2007 8:53 PM > To: [email protected] > Subject: Re: Appropriate place for transaction code? > > > Reading the third sentence of your email, you said the service is just > *retrieving* data from the database (i.e. SQL SELECT), is > that correct? > If so, commits would not be a concern for you--you may be able to keep > your service in application scope[1] and just initialize an instance > variable to hold the session factory. > > Otherwise, I don't know if you're using Spring but the Axis2 Spring > guide[2] may give you some ideas until someone else can get > you a better > answer. > > [1] http://www.developer.com/java/web/article.php/10935_3620661_2 > [2] http://ws.apache.org/axis2/1_2/spring.html > > Glen > > > Am Donnerstag, den 03.05.2007, 16:26 -0400 schrieb > [EMAIL PROTECTED]: > > Hi, > > > > I'm new to Axis. I'm using Axis2 1.1.1. > > > > I'm creating a service that retrieves data from a database. > I'm using Hibernate. For those of you not familiar with it, > the basic pattern of usage is that you create something > called a SessionFactory once when the application starts, and > then for each request/response cycle you create a Session. > When the response finishes, you commit the session. > > > > In regular web applications I create the session factory in > the ApplicationContext. Then I make a servlet filter that > creates the session and starts a transaction on the way in, > and then commits the transaction and closes the session on > the way out. > > > > I'm trying to figure out how to do this in Axis. I created > a module called hibernateTransactionModule. I've got two > handlers, one for the way in and one for the way out, each > attached to a new phase. Right now they're just saying 'hello > world' and it works, they do execute when I expect them to. > > > > So I've got three classes: > > > > HibernateTransactionModule implements > org.apache.axis2.modules.Module > > HibernateTransactionHandlerBegin extends AbstractHandler > implements Handler > > HibernateTransactionHandlerEnd extends AbstractHandler > implements Handler > > > > My intuition tells me that > HibernateTransactionModule.init() would be the appropriate > place to create the hibernate session factory, > HibernateTransactionHandlerBegin.invoke() could create a > session for a request and put it into the messageContext, and > HibernateTransactionHandlerEnd.invoke() could commit the > transaction and close the session. > > > > But I can't see a place where I can store the session > factory where it can be accessible to the handlers. > > > > One possibility would be to use a static field in > HibernateTransactionHandlerBegin but that would be an ugly > hack. Any suggestions? > > > > Thanks > > Michael Davis > > www.damaru.com > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
