How to resolve the error, “There was an error when attempting to confirm a message”, when using JMS Queue Receiver in EMS Explicit acknowledge mode?

How to resolve the error, “There was an error when attempting to confirm a message”, when using JMS Queue Receiver in EMS Explicit acknowledge mode?

book

Article ID: KB0094412

calendar_today

Updated On:

Products Versions
TIBCO ActiveMatrix BusinessWorks -
Not Applicable -

Description

Resolution:

Environment:
===========
ALL

Description:
============
Prerequisite for this solution:

1).The customer is  using following suite of TIBCO Products:
   a). TIBCO BW version from 5.9.0 to 5.9.2(HF9).
   b). TIBCO TRA 5.7 onwards.

2). The customer is getting the following error while confirming the message using JMS Queue Receiver in EMS Explicit acknowledge mode:
=======================
"Job-75581 Error in [Starters/WebService/WebService_EMS_IBC_DMS.process/Group/Confirm] There was an error when attempting to confirm a message. at com.tibco.plugin.share.jms.impl.JMSEventContext.confirm(Unknown Source) at com.tibco.pe.core.ConfirmActivity.eval(Unknown Source) at com.tibco.pe.plugin.Activity.eval(Unknown Source) at com.tibco.pe.core.TaskImpl.eval(Unknown Source) at com.tibco.pe.core.Job.a(Unknown Source) at com.tibco.pe.core.Job.k(Unknown Source) at com.tibco.pe.core.JobDispatcher$JobCourier.a(Unknown Source) at com.tibco.pe.core.JobDispatcher$JobCourier.run(Unknown Source) caused by: com.tibco.plugin.share.jms.impl.JMSExceptionWrapper: javax.jms.IllegalStateException: Message not delivered at com.tibco.plugin.share.jms.impl.JMSPluginException.(Unknown Source) at com.tibco.plugin.share.jms.impl.JMSEventContext.confirm(Unknown Source) at com.tibco.pe.core.ConfirmActivity.eval(Unknown Source) at com.tibco.pe.plugin.Activity.eval(Unknown Source) at com.tibco.pe.core.TaskImpl.eval(Unknown Source) at com.tibco.pe.core.Job.a(Unknown Source) at com.tibco.pe.core.Job.k(Unknown Source) at com.tibco.pe.core.JobDispatcher$JobCourier.a(Unknown Source) at com.tibco.pe.core.JobDispatcher$JobCourier.run(Unknown Source) Caused by: javax.jms.IllegalStateException: Message not delivered at com.tibco.tibjms.TibjmsxSessionImp._confirmNonTransacted(TibjmsxSessionImp.java:3228) at com.tibco.tibjms.TibjmsxSessionImp._confirm(TibjmsxSessionImp.java:3573) at com.tibco.tibjms.TibjmsxSessionImp._confirmNonAuto(TibjmsxSessionImp.java:4881) at com.tibco.tibjms.TibjmsMessage.acknowledge(TibjmsMessage.java:608) ... 8 more "
=======================

1).When the customer is connecting to EMS server 6.0 onwards:

Solution: Apply the TIBCO BW 5.9.2 HF10 scheduled to be released in mid February 2012 and set following property in application tra file:

bw.plugin.jms.explicitMsgRecovery=true

2. When the customer is connecting to an EMS server earlier than version 6.0:

Solution: With TRA 5.7.0 we are packaging EMS 6.0 Client libraries. Also with TIBCO BW 5.9.0 we have changed the functionality of redelivery of messages when using TIBCO EMS Explicit acknowledge mode.

Prior to BW 5.9.0 we used to deliver all messages after the first unconfirmed message. But with BW 5.9.0, only the unconfirmed messages will be delivered. In order to use the new functionality introduced with BW 5.9.0 you need to connect to an EMS 6.0 or later server.

  There are two solutions:

1). Downgrade the EMS Client library to the EMS server version. But with this we are stripped of the new functionality (regarding redelivery of messages) introduced with BW 5.9.0. (NOT RECOMMENDED)

  -OR-

2). Upgrade the EMS server to version 6.0 (or later) and apply TIBCO BW 5.9.2 HF10.  (RECOMMENDED)


Issue/Introduction

How to resolve the error, “There was an error when attempting to confirm a message”, when using JMS Queue Receiver in EMS Explicit acknowledge mode?