Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-180

JMS Transport support for transaction

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.1
    • 2.0.10, 2.1.4
    • Transports
    • 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

          Activity

            People

              njiang Willem Jiang
              njiang Willem Jiang
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: