After upgrade the EMS client to version 6.0 and higher, duplicate acknowledge calls cause javax.jms.IllegalStateException: Message not delivered.

After upgrade the EMS client to version 6.0 and higher, duplicate acknowledge calls cause javax.jms.IllegalStateException: Message not delivered.

book

Article ID: KB0087585

calendar_today

Updated On:

Products Versions
TIBCO Enterprise Message Service -
Not Applicable -

Description

Resolution:
Description:
=============
After upgrade the EMS client to version 6.0 and higher, duplicate acknowledge calles cause javax.jms.IllegalStateException: Message not delivered.

Environment:
=============

Resolution:
=============
This change was added since EMS 6.0 when QA was testing the "message recover" feature and it only applies for "EXPLICIT" acknowledgement modes.  The intent is that, once "message recover" is called, you cannot explicitly acknowledge that recovered message using the existing message. You need to wait for the recovered message to be redelivered, possibly to another queue consumer.

Here is the related issue indicated in EMS 6.0 release note:

1-AOTGJH
Fixed an error in message recovery that permitted acknowledge() to be called on a message that was already recovered

There is no special flag to disable this behavior. The application should be fixed.

Issue/Introduction

After upgrade the EMS client to version 6.0 and higher, duplicate acknowledge calls cause javax.jms.IllegalStateException: Message not delivered.