Github user arunmahadevan commented on the issue:

    https://github.com/apache/storm/pull/2639
  
    This started out as a fix to handle the exceptions in "ack" when toCommit 
was empty. However during the review process and testing, figured out many more 
issues with the current approach. Also some JMS providers like Tibco supports 
ACK ing individual messages, which could not be handled with the existing code. 
The async mode of consuming the messages was also problematic to ensure 
at-least once delivery even with locks/synchronization since ack-ing an 
individual JMS message in CLIENT_ACK mode was going to ack the messages 
received in the listener (even if the listener did not return).
    
    To handle all the issues, I have refactored quite and bit and changed the 
approach of consuming the messages from async (listener based) to sync 
(receive) and introduced MessageHandlers to handle the emit/ack/fail in 
different ways based on the mode.
    
    @HeartSaVioR , can you review it again and let me know what you think?


---

Reply via email to