Details
-
New Feature
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.1
-
None
Description
Here are some points on the JMS Transport stuff:
[ulhas]
Currently JMS Session pool in Artix uses different Message Receiver
acknowledgement mechanism than Celtix to provide Transaction support.
(Celtix uses AUTO_ACKNOWLEDGEMENT) whereas Artix uses CLIENT_ACKNOWLEDGE
for server side.
[Willem]
AUTO_ACKNOWLEDGMENT just make sure JMS broker client
received the message, but not sure about the client had processed the message.
If we want to support the Transaction in CXF, I think we need to change to
CLIENT_ACKNOWLEDGE to make sure the message had been processed in
message level.
[ulhas]
Second part of the transaction support is in current JMSServerTransport
postDispatch code. This is the place where the server make sure that the
message received can be processed and it is safe to send the
Acknowledgement to JMS broker to remove the message from topic/queue and
commit.
[Willem]
In current CXF JMS Transport implementation the transport just provide an channel
to send and receive messages. All the message handling stuff need to play with the
Stream. I think it is a good place in the OutputStream close method to send
acknowledgment to JMS broker.
So if we want to support local transaction in CXF JMS, we just need change the Session
acknowledgment and the OutputStream close method.
Attachments
Issue Links
- is blocked by
-
CXF-1943 jms transport doesn't support to inject jmsconfig to JmsDestination
- Closed