[
https://issues.apache.org/jira/browse/CXF-180?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12656937#action_12656937
]
Ron Gavlin commented on CXF-180:
--------------------------------
One other note to address Christian's question: "How will we handle the case
when a transaction fails? ".
Currently, it appears Artix relies on the maxRedeliveries setting of the broker
to avoid re-sending the same message an infinite number of times. Once
maxRedeliveries has been reached, the broker will remove the message from the
queue and place it in the broker's DLQ.
/Ron
> JMS Transport support for transaction
> -------------------------------------
>
> Key: CXF-180
> URL: https://issues.apache.org/jira/browse/CXF-180
> Project: CXF
> Issue Type: New Feature
> Components: Transports
> Affects Versions: 2.1
> Reporter: Willem Jiang
> Assignee: Willem Jiang
> Fix For: 2.0.10, 2.1.4, 2.2
>
>
> 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.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.