SourceForge.net
2003-10-19 14:41:18 UTC
Bugs item #823331, was opened at 2003-10-14 20:15
Message generated for change (Comment added) made by tanderson
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=823331&group_id=54559
Category: message engine
Group: v0.7.6-rc2
Submitted By: Tim Anderson (tanderson)
Assigned to: Tim Anderson (tanderson)
Summary: Can't acknowledge message after republishing
Initial Comment:
Given the following set of conditions:
. single CLIENT_ACKNOWLEDGE session
. durable subscriber, subscribing to "topic1"
. messages received via the subscriber are republished
to "topic2", prior to their acknowledgement
...any message received via the subscriber will be re-
received when the subscriber is re-recreated i.e, the
acknowledgement is being ignored.
This was originally described in the following thread:
http://sourceforge.net/forum/forum.php?
thread_id=950810&forum_id=181831
Test case to reproduce to follow.
----------------------------------------------------------------------
Message:
Logged In: YES
user_id=557161
Fixed in CVS. Will be available in the 0.7.6 release.
A corresponding test case has been added to JMS CTS:
org.exolab.jmscts.test.session.clientack.RepublishTest
----------------------------------------------------------------------
Comment By: Tim Anderson (tanderson)
Date: 2003-10-14 21:04
Message:
Logged In: YES
user_id=557161
The problem is that when the message is republished, it is
assigned a new JMSMessageID, as per section 3.4.3 of the
spec. However, OpenJMS uses the JMSMessageID for
message acknowledgement - when message.acknowledge()
is invoked, the JMSMesageID assigned at republication is
used, rather than the identifier it had when it was received.
According to section 4.4.11 of the spec,
CLIENT_ACKNOWLEDGE has the following
behaviour: "acknowledging a consumed message
automatically acknowledges the receipt of all messages that
have been delived by its session".
In other words, although the message has been republished,
it should still be possible to invoke acknowledge() and ack all
messages received by the session.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=823331&group_id=54559
Message generated for change (Comment added) made by tanderson
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=823331&group_id=54559
Category: message engine
Group: v0.7.6-rc2
Status: Closed
Resolution: Fixed
Priority: 5Resolution: Fixed
Submitted By: Tim Anderson (tanderson)
Assigned to: Tim Anderson (tanderson)
Summary: Can't acknowledge message after republishing
Initial Comment:
Given the following set of conditions:
. single CLIENT_ACKNOWLEDGE session
. durable subscriber, subscribing to "topic1"
. messages received via the subscriber are republished
to "topic2", prior to their acknowledgement
...any message received via the subscriber will be re-
received when the subscriber is re-recreated i.e, the
acknowledgement is being ignored.
This was originally described in the following thread:
http://sourceforge.net/forum/forum.php?
thread_id=950810&forum_id=181831
Test case to reproduce to follow.
----------------------------------------------------------------------
Comment By: Tim Anderson (tanderson)
Date: 2003-10-20 00:41Message:
Logged In: YES
user_id=557161
Fixed in CVS. Will be available in the 0.7.6 release.
A corresponding test case has been added to JMS CTS:
org.exolab.jmscts.test.session.clientack.RepublishTest
----------------------------------------------------------------------
Comment By: Tim Anderson (tanderson)
Date: 2003-10-14 21:04
Message:
Logged In: YES
user_id=557161
The problem is that when the message is republished, it is
assigned a new JMSMessageID, as per section 3.4.3 of the
spec. However, OpenJMS uses the JMSMessageID for
message acknowledgement - when message.acknowledge()
is invoked, the JMSMesageID assigned at republication is
used, rather than the identifier it had when it was received.
According to section 4.4.11 of the spec,
CLIENT_ACKNOWLEDGE has the following
behaviour: "acknowledging a consumed message
automatically acknowledges the receipt of all messages that
have been delived by its session".
In other words, although the message has been republished,
it should still be possible to invoke acknowledge() and ack all
messages received by the session.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=823331&group_id=54559