IBM Support

PK97427; 7.0.0.5: intermittent exceptions on jms conn with multiple sessions

Download


Abstract

Applications creating multiple JMS Sessions under a JMS Connection are intermittently thrown heartbeat timeout exceptions when creating producers/consumers.

Download Description

PK97427 resolves the following problem:

ERROR DESCRIPTION:
The following exception is thrown intermittently to an application attempting to send messages to bus destinations, when the messaging engine is available and no network issues have occurred:

javax.jms.JMSException: CWSIA0067E: An exception was received
during the call to the method JmsMsgProducerImpl.<constructor>:
com.ibm.ws.sib.jfapchannel.JFapConnectionBrokenException:
CWSIJ0056E: An unexpected condition caused a network
connection to host 1.2.3.4 on port 7276 using chain
chain_1 to close.
at com.ibm.ws.sib.jfapchannel.impl.OutboundConnection.
invalidateImpl(OutboundConnection.java:252)
at com.ibm.ws.sib.jfapchannel.impl.Connection.
nonThreadSafeInvalidate(Connection.java:1205)
at com.ibm.ws.sib.jfapchannel.impl.Connection.invalidate(
Connection.java:1185)
at com.ibm.ws.sib.jfapchannel.impl.
ConnectionReadCompletedCallback.
error(ConnectionReadCompletedCallback.java:472)
at com.ibm.ws.sib.jfapchannel.framework.impl.
CFWIOReadRequestContext$1.error(
CFWIOReadRequestContext.java:211)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.
futureCompleted(AioReadCompletionListener.java:208)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(
AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture$1.run(
AsyncChannelFuture.java:205)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
Caused by: com.ibm.ws.sib.jfapchannel.
JFapHeartbeatTimeoutException: Connection dropped after
heartbeat request went unacknowledged
at com.ibm.ws.sib.jfapchannel.impl.
ConnectionReadCompletedCallback.error(
ConnectionReadCompletedCallback.java:467)
... 5 more
Caused by: java.net.SocketTimeoutException: Async operation
timed out

LOCAL FIX:

PROBLEM SUMMARY

USERS AFFECTED:
Users of the default messaging provider for IBM WebSphere Application Server Version 7.0

PROBLEM DESCRIPTION:
Applications creating multiple JMS Sessions under a JMS Connection are intermittently thrown heartbeat timeout exceptions when creating producers/consumers.

RECOMMENDATION:
None

Intermittently an exception caused by a JFapHeartbeatTimeoutException is thrown to an application after a delay of 5 minutes, when attempting to create a message producer or message consumer from a JMS session.


The problem only occurs in environments where multiple JMS sessions are created from a single JMS connection, and the application is connecting to a messaging engine over a network.

The problem is caused by an internal object identifier being retained within the client JVM after a JMS connection containing multiple sessions is closed. This causes the following exception to occur within the messaging engine when the network connection to the messaging engine is re-used (due to connection pooling):


java.util.NoSuchElementException
at com.ibm.ws.sib.comms.server.ConversationState.getObject(
ConversationState.java:425)
at com.ibm.ws.sib.comms.server.clientsupport.
ServerTransportReceiveListener.getThreadContext(
ServerTransportReceiveListener.java:1369)
This exception causes the messaging engine to invalidate the
network connection from the application to the messaging engine.

The invalidated connection is not reported immediately to the client (due to APAR PK91199), and instead the client application only detects that the connection has been invalidated when the messaging engine fails to respond to a heartbeat.

PROBLEM CONCLUSION:
The fix for this APAR prevents the object identifier from being retained in the client JVM when the JMS Connection is closed.

The fix needs to be applied to the WebSphere Application Server installation where the client application is running.

The fix for this APAR is currently targeted for inclusion in
fix pack 7.0.0.9. Please refer to the Recommended Updates
page for delivery information:
http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980

Prerequisites

Please download the UpdateInstaller below to install this fix.

[{"PRLabel":"UpdateInstaller","PRLang":"US English","PRSize":"7250000","PRPlat":{"label":"AIX","code":"PF002"},"PRURL":"http://www.ibm.com/support/docview.wss?rs=180&uid=swg21205991"}]

Installation Instructions

Please review the readme.txt for detailed installation instructions.

[{"INLabel":"Readme","INLang":"US English","INSize":"9819","INURL":"ftp://public.dhe.ibm.com/software/websphere/appserv/support/fixes/PK97427/readme.txt"}]
On
[{"DNLabel":"7.0.0.5-WS-WAS-IFPK97427","DNDate":"10/08/2009","DNLang":"US English","DNSize":"35295","DNPlat":{"label":"AIX","code":"PF002"},"DNURL":"https://www.ibm.com/support/fixcentral/quickorder?fixids=7.0.0.5-WS-WAS-IFPK97427&product=ibm%2FWebSphere%2FWebSphere%20Application%20Server&source=dbluesearch","DNURL_FTP":"ftp://public.dhe.ibm.com/software/websphere/appserv/support/fixes/PK97427/7.0.0.5-WS-WAS-IFPK97427.pak","DDURL":"http://public.dhe.ibm.com:7618;sw_websphere;appserv/support/fixes/PK97427/7.0.0.5-WS-WAS-IFPK97427.pak"}]

Technical Support

Contact IBM Support using SR (http://www.ibm.com/software/support/probsub.html), visit the WebSphere Application Server Support Web site (http://www.ibm.com/software/webservers/appserv/was/support/), or contact 1-800-IBM-SERV (U.S. only).

[{"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Java Message Service (JMS)","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF012","label":"IBM i"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"7.0.0.5","Edition":"Base;Network Deployment;Single Server","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
07 December 2019

UID

swg24024639