IBM MQ classes for JMS attempted to set a pre-existing client ID on a MQ Connection

book

Article ID: 142735

calendar_today

Updated On:

Products

CA API Gateway API SECURITY CA API Gateway Precision API Monitoring Module for API Gateway (Layer 7) CA API Gateway Enterprise Service Manager (Layer 7) STARTER PACK-7 CA Microgateway

Issue/Introduction

When using IBM JMS MQ connections in API gateway  we see the following error in the log. 

Caught unexpected Throwable in outbound JMS request processing: com.ibm.msg.client.jms.DetailedInvalidClientIDException: JMSCC0111: IBM MQ classes for JMS attempted to set a pre-existing client ID on a Connection or JMSContext. An application attempted to set the client ID property of a valid Connection or JMSContext to the value 'AMG-ESB-MQMAA04' but this value was already in use.

Ensure that the connection is valid and that the client ID is unique.; Invalid client identifier; JMSCC0111: IBM MQ classes for JMS attempted to set a pre-existing client ID on a Connection or JMSContext., error code: JMSCC0111. Exception caught!

 

Cause

This is new behavior in the jms libraries above version 8.0 where by default a JMS ID can not be reused. 

The JMS 2.0 specification requires that non-null client ids are checked for uniqueness when they make a connection. 

Environment

Release : 9.4

Component : API GATEWAY 

Resolution

Set the following java property to enforce the old behavior . 

com.ibm.mq.jms.SupportMQExtensions=true

in the system.properties file for the gateway and restart the gw. 

see also the following IBM document for some background information  .

https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.1.0/com.ibm.mq.dev.doc/q119130_.htm