[ 
https://issues.apache.org/jira/browse/AMQ-7464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17078305#comment-17078305
 ] 

ASF subversion and git services commented on AMQ-7464:
------------------------------------------------------

Commit aa03f295f523ab00d2b19d54a36f4140bef18d0b in activemq's branch 
refs/heads/master from gtully
[ https://gitbox.apache.org/repos/asf?p=activemq.git;h=aa03f29 ]

AMQ-7464 - ensure message.copy before server session run dispatch


> ServerSession run does not copy message before dispatch;  rollback delivered 
> ack messageId can get corrupted by direct forward, leading to "Could not 
> correlate acknowledgment with dispatched message" JMSException
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-7464
>                 URL: https://issues.apache.org/jira/browse/AMQ-7464
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: JCA Container, JMS client
>    Affects Versions: 5.15.0
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>            Priority: Major
>             Fix For: 5.16.0
>
>
> An MDB, that directly forwards its message can lead to unmatched acks on 
> rollback.
> {code}
> .. onMessage(Message m) {
>   producer.send(m);
>   ..
> }{code}
> The root cause is ServerSession.run not doing a message copy before up call 
> to the listener.
> An unmatched delivered ACK causes a broker error and JMS exception "Could not 
> correlate acknowledgment with dispatched message".  
> That error closes the connection which prevents normal rollback and 
> redelivery processing.
> The fix is to copy, in the same way as a regular message consumer, such that 
> the application is free to do what every it wants to the message.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to