thanks Biorn...i am looking forward to implement this change... Thanks for ur input, balaji
-----Original Message----- From: Biörn Biörnstad [mailto:[EMAIL PROTECTED] Sent: Monday, May 24, 2004 5:10 PM To: [EMAIL PROTECTED] Subject: Re: AXIS - jms transaction Hi Balaji, IMO there is no workaround since you need to control the way jms session are created, which is "internal" to the code. I'm not sure how complicated it would be to add this feature. The axis jms code is quite complex since the authors have built a huge abstraction mechnism for connecting to a jms system. Basically you only need to change two things (I don't know how familiar you are with JMS...). - when the jms session is created make it transacted. - after processing a WS request (possibly sending a response) commit the tx. Session: This is a bit complicated since you need to understand the axis jms connection machinery. I searched and found the following two methods to be the only place where jms sessions are created. So, you should be safe changing these two methods to return transacted sessions. o.a.a.transport.jms.TopicConnector.createTopicSession(TopicConnection connection, int ackMode) o.a.a.transport.jms.QueueConnector.createQueueSession(QueueConnection connection, int ackMode) There remains one problem: you need to use the same session for receiving the request as for sending the reply. Using a transaction for only one message is of no use. I'm not sure whether axis uses one or two separate sessions for these tasks. Committing: This seems easy at first sight but turns out be quite tricky as well. In SimpleJMSWorker.run() you need to commit at the end of the method. But for this you need a reference to the jms session and I don't know how to get that. So, in the end it doesn't seem very easy to add this feature. Bioern Balaji Kandan wrote: > Hi Biorn, > Thanks for replying, are u saying the only way to implement transactions is > to rewrite the JMS Transport? Or is there a workaround? > > Thanks in advance, > balaji