Troubleshooting
Problem
NFX6155: Exception while writing to an external MQ Queue - causing a channel connection leak.
Symptom
2009-Feb-18 05:02:58 880;ERROR ;Thread-15_EDITCE;
;Exception while processing message for Service: EDI_TCE ; IntegrationAdapter ;
Contact:<Email_Address>@Company.com
2009-Feb-18 05:02:58 881;ERROR
;Thread-15_EDITCE;javax.jms.JMSException;[1234954978880] javax.jms.JMSException
; IntegrationAdapter ; Contact:<Email_Address>@Company.com
2009-Feb-18 05:02:58
881;ERRORDTL;Thread-15_EDITCE;javax.jms.JMSException;[1234954978880]
<Errors>
<Error
ErrorCode="javax.jms.JMSException"
<Attribute Name="ErrorCode"
Value="javax.jms.JMSException"/>
<Attribute Name="ErrorDescription"
Value="Error description not available"/>
<Error
ErrorCode="javax.jms.JMSException" ErrorDescription=""
ErrorRelatedMoreInfo="MQJMS2005: failed to create MQQueueManager for
'Qmanagername:'Qmanagername">
<Stack>javax.jms.JMSException: MQJMS2005:
failed to create MQQueueManager for
'Qmanagername:'Qmanagername'
Resolving The Problem
The resolution is to disable JMS session pooling. This can be achieved by setting the following property in $YFS_HOME/resources/yfs.properties
yfs.jms.session.disable.pooling=Y
This property is commented out in yfs.properties file. By default the property is set to N.
The reason why a channel connection leak is observed only when JMS Session pooling is enabled and the MQ Queue usage is as mentioned below-
In the MCF solution when JMS Session pooling is enabled a session pool is maintained. Sessions [one per connection/transaction] that are created are cached using the KeyedPoolableObjectFactory implementation [pool/factory implementation from Apache]. The factory implementation provides different parameters to control the eviction of idle sessions which should help in releasing the open channels in case of idle session(s).
- timeBetweenEvictionRunsMillis indicates how long the eviction thread should sleep before "runs" of examining idle objects. When non-positive, no eviction thread will be launched. The default setting for this parameter is -1 (i.e., by default, idle object eviction is disabled).
- minEvictableIdleTimeMillis specifies the minimum amount of time that an object may sit idle in the pool before it is eligible for eviction due to idle time. When non-positive, no object will be dropped from the pool due to idle time alone. This setting has no effect unless timeBetweenEvictionRunsMillis > 0. The default setting for this parameter is 30 minutes. In our product this is set to 10 minutes.
Historical Number
NFX6155
Product Synonym
[<p><b>]Escalation ID[</b><p>];00019794;[<p><b>]Fix ID[</b><p>];MCF 8.5 (Aries) GA.;[<p><b>]Severity[</b><p>];Normal
Was this topic helpful?
Document Information
Modified date:
16 June 2018
UID
swg21554506