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




Reply via email to