You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Gary Tully (Jira)" <ji...@apache.org> on 2020/04/08 13:33:00 UTC
[jira] [Updated] (AMQ-7464) 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
[ 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)