[ 
https://issues.apache.org/jira/browse/AMQ-7464?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gary Tully updated AMQ-7464:
----------------------------
    Description: 
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 cause a broker error and JMS exception "Could not 
correlate acknowledgment with dispatched message" that 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.

  was:
An MDB, that directly forwards its message can lead to unmatched acks on 
rollback.
The root cause is ServerSession.run not doing a message copy before up call to 
the listener.
An unmatched delivered ACK cause a broker error and JMS exception "Could not 
correlate acknowledgment with dispatched message" that 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.


> 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 cause a broker error and JMS exception "Could not 
> correlate acknowledgment with dispatched message" that 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