2 Replies Latest reply on Apr 10, 2013 11:51 AM by mofarn

    Transnational Message Acknowledgment in Stomp

    mofarn

      Hi all,

       

      I'm using Hornetq-2.3.0.CR2.

      The user manual said:

      Message acknowledgements are not transactional. The ACK frame can not be part of a transaction (it will be ignored if its transaction header is set).

      So hornetq doesn't support this frame (Am i right?):

       

      ACK
      id:12345
      transaction:tx1
      
      
      ^@
      

       

      and doesn't support this one (Am i right?):

       

      SUBSCRIBE
      id:0
      destination:/queue/foo
      ack:transactional
      
      ^@
      

       

      By the way, the Stomp-1.2 specification (http://stomp.github.io/stomp-specification-1.1.html#ACK) said:

      Optionally, a transaction header MAY be specified, indicating that the message acknowledgment SHOULD be part of the named transaction.

      So is it Hornetq limitation (as said in manual)?

       

      In message consumer, we have this scenario (if we use jms):

      • Receive a message
      • Process the message
      • Commit if it succeed (commit only this message)
      • Roll back if it faild (send the message back to queue)

      If we can't use commit and rollback (abort) in stomp, what should be used instead? which ack mode?

       

      In message producer, how can we support guarantees of sends with stomp?

       

      Thanks in advance.