IBM Support

IV83785: JMS classes may send data to the queue manager which is not 4-BYTE aligned

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • An application running within the WebSphere Application Server
    8.5.5.1 environment is communicating with a queue manager
    running on the Solaris operating system.
    
    Occasionally the TCP connection between the application server
    and the queue manager is disconnected, with the following
    exception is reported in the application server SystemOut.log
    file:
    
    CWSJY0003W: JMSCC3036: An exception has been delivered to the
    connection's exception listener: '
    Message : com.ibm.msg.client.jms.DetailedJMSException:
    JMSWMQ1107: A problem with this connection has occurred.
    An error has occurred with the WebSphere MQ JMS connection.
    Use the linked exception to determine the cause of this error.
    ... ... ...
    com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed
    with compcode '2' ('MQCC_FAILED') reason '2009'
    ('MQRC_CONNECTION_BROKEN').
    com.ibm.msg.client.wmq.common.internal.Reason.createException
    com.ibm.msg.client.wmq.internal.WMQConnection.consumer
    com.ibm.mq.jmqi.remote.api.RemoteHconn.callEventHandler
    com.ibm.mq.jmqi.remote.api.RemoteHconn.driveEventsEH
    com.ibm.mq.jmqi.remote.impl.RemoteDispatchThread.processHconn
    com.ibm.mq.jmqi.remote.impl.RemoteDispatchThread.run
    com.ibm.msg.client.commonservices.workqueue.WorkQueueItem.runTas
    k
    com.ibm.msg.client.commonservices.workqueue.SimpleWorkQueueItem.
    runItem
    com.ibm.msg.client.commonservices.workqueue.WorkQueueItem.run
    com.ibm.ws.wmqcsi.workqueue.WorkQueueManagerImpl$WorkQueueRunnab
    le.run
    java.lang.Thread.run
    
    followed by messages of the form:
    
    J2CA0056I: The Connection Manager received a fatal connection
    error from the Resource Adapter for resource
    JMS$MY_MQ_CF$JMSManagedConnection@7. The exception is:
    com.ibm.msg.client.jms.DetailedJMSException: JMSWMQ2007: Failed
    to send a message to destination 'MY.QUEUE'.
    JMS attempted to perform an MQPUT or MQPUT1; however WebSphere
    MQ reported an error.
    
    
    
    Simultaneously, an error is put into the queue manager error
    logs (AMQERR01.LOG) which reads:
    
    ----- amqxfdcx.c : 888
    --------------------------------------------------------
    04/13/16 13:39:48 - Process(13190.222171) User(mqm)
    Program(amqrmppa)
                        Host(myHost) Installation(Installation1)
                        VRMF(8.0.0.3)
    AMQ9504: A protocol error was detected for channel 'MY.CHANNEL'.
    
    EXPLANATION:
    During communications with the remote queue manager, the channel
    program
    detected a protocol error. The failure type was 32758 with
    associated data of
    2.
    ACTION:
    Contact the systems administrator who should examine the error
    logs to
    determine the cause of the failure.
    

Local fix

  • Limit the size of the messages being sent to the queue manager
    to be less than 32KB
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    Users of the WebSphere MQ classes for JMS, which includes the
    WebSphere MQ Resource Adapter.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    The Solaris operating system has a requirement such that all
    data sent to the queue manager over TCP must be byte-aligned at
    a 4-byte boundary, for example a TCP data packet of 400 bytes is
    permitted, a 402 byte packet would be rejected.
    
    The WebSphere MQ classes for JMS attempts to ensure that this
    byte-alignment is used.  However under a specific set of
    circumstances when sending a maximum size MQ data packet
    (approximately 32KB), the data packet size sent may be 32,758
    bytes, which is not 4-byte aligned.
    
    When this occurs, the queue manager detects the anomaly and
    closes the TCP socket, reporting the error in the queue manager
    error logs.  On the application side, the WebSphere MQ classes
    for JMS then report a MQRC 2009 exception to indicate that the
    TCP socket is no longer connected to the queue manager, and the
    message sending operation fails.
    
    
    The specific condition upon which this happens is as follows:
    
    (1) A maximum number of 'hconn' objects have been established
    over a TCP socket.  This maximum value is determined by the
    channel attribute SHARECNV.  For the JMS API, this corresponds
    to the number of JMS Connections and Sessions which have been
    created.
    
    (2) An additional 'hconn' is created, which causes a new TCP
    socket to be created.  This must be for a new JMS Session, as
    opposed to a JMS Connection.
    
    (3) The 'hconn' is closed, resulting in the TCP socket being
    closed.
    
    (4) A new 'hconn' is requested.
    
    (5) A application attempts to send a message to the queue
    manager which is as big as or greater than the size of 32,757
    bytes.
    
    
    It should be noted that APAR IC98323 (introduced in fix packs
    7.1.0.5, 7.5.0.4) changes the behaviour of conditions upon which
    the problem is encountered.  With the code change associated
    with APAR IC98323, there are no known conditions where this
    byte-alignment problem would be encountered.  However this APAR
    IV83785 is still valid in making the byte alignment mechanism
    more robust to future changes.
    

Problem conclusion

  • The code has been updated to ensure that a maximum TCP data
    packet size of 32,756 bytes is used instead of the previous
    value of 32,758 bytes, which was not 4-byte aligned.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v7.1       7.1.0.8
    v7.5       7.5.0.8
    v8.0       8.0.0.6
    v9.0 CD    9.0.1
    v9.0 LTS   9.0.0.1
    
    The latest available maintenance can be obtained from
    'WebSphere MQ Recommended Fixes'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006037
    
    If the maintenance level is not yet available information on
    its planned availability can be found in 'WebSphere MQ
    Planned Maintenance Release Dates'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006309
    ---------------------------------------------------------------
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV83785

  • Reported component name

    WMQ SOL SPARC

  • Reported component ID

    5724H7223

  • Reported release

    710

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-04-15

  • Closed date

    2016-06-24

  • Last modified date

    2017-06-01

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    WMQ SOL SPARC

  • Fixed component ID

    5724H7223

Applicable component levels

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCPQ63","label":"APAR \/ Maintenance"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
27 April 2020