IBM Support

IT00575: JMS 1.1 ASYNC RECEIVE ADAPTER AND RECEIVE MESSAGE SERVICE FAIL TO PROCESS MESSAGES WHEN HEADER NAMES CONTAIN SPECIAL CHARACTERS

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • When JMS 1.1 Async Receive adapter and Receive Message service
    obtain a message from the JMS queue and the message contains
    headers whose names start with numbers, the message is not
    processed and the jms.log reports the following error:
    
    DEBUG [1394213150406]org.w3c.dom.DOMException:
    INVALID_CHARACTER_ERR: An invalid or illegal XML character is
    specified.
            at
    org.apache.xerces.dom.CoreDocumentImpl.createElement(Unknown
    Source)
            at
    com.sterlingcommerce.woodstock.xpathutil.XPathHelper.createNode(
    XPathHelper.java:1467)
            at
    com.sterlingcommerce.woodstock.xpathutil.XPathHelper.createTarge
    tContext(XPathHelper.java:1141)
            at
    com.sterlingcommerce.woodstock.xpathutil.XPathHelper.createTarge
    tContext(XPathHelper.java:1053)
            at
    com.sterlingcommerce.woodstock.workflow.WFCUtil.setDataInTree(WF
    CUtil.java:1113)
            at
    com.sterlingcommerce.woodstock.workflow.WFCUtil.setDataInTree(WF
    CUtil.java:784)
            at
    com.sterlingcommerce.woodstock.workflow.WorkFlowContext.setWFCon
    tent(WorkFlowContext.java:3055)
            at
    com.sterlingcommerce.woodstock.workflow.WorkFlowContext.setWFCon
    tent(WorkFlowContext.java:3025)
            at
    com.sterlingcommerce.woodstock.workflow.WorkFlowContext.setWFCon
    tent(WorkFlowContext.java:3009)
            at
    com.sterlingcommerce.woodstock.workflow.WorkFlowContext.<init>(W
    orkFlowContext.java:1264)
            at
    com.sterlingcommerce.woodstock.workflow.engine.WorkFlowEngineRMI
    Impl.syncQueuedDispatch(WorkFlowEngineRMIImpl.java:1222)
            at
    com.sterlingcommerce.woodstock.workflow.engine.WorkFlowEngineRMI
    Impl.dispatch(WorkFlowEngineRMIImpl.java:1073)
            at
    com.sterlingcommerce.woodstock.workflow.Dispatcher.run(Dispatche
    r.java:72)
            at java.lang.Thread.run(Thread.java:736)
    

Local fix

  • None
    RTC#414487
    KK
    

Problem summary

  • USERS AFFECTED:
    JMS users
    
    PROBLEM DESCRIPTION:
    The JMS 1.1 Async Receive adapter and Receive Message service
    have an exception when converting JMS headers to XML if the
    header fields contain characters outside the allowable character
    set for XML (for example, NUL characters/whitespace).
    JMS 1.1 Async Receive adapter goes into an infinite loop on JMS
    messages with non-XML characters in the header fields.
    
    PLATFORMS AFFECTED:
    All
    

Problem conclusion

  • RESOLUTION SUMMARY:
    Sterling B2B Integrator now supports custom headers that have
    special characters.
    
    Instead of modifying the header value before processing in
    the workflow object, the name of the header stays the same.
    But the XML structure in the process data is changed.
    
    For example, you have a custom header with a numeric value
    "1abc" and a NUL/whitespace such as "JMS Message." Instead of
    modifying the 1abc to _1abc or "JMS Message" to "JMS_Message"
    and processing inside the workflow, the XML structure will look
    like this in process data:
    
    JMS Async Receive adapter
    <JMS>
        <JMSRedelivered>false</JMSRedelivered>
        <JMSCorrelationID/>
        <JMSDeliveryMode>1</JMSDeliveryMode>
        <JMSDestination>SampleQ1</JMSDestination>
        <JMSExpiration>1439303087017</JMSExpiration>
    
    <JMSMessageID>ID:ffffffffcbed081a:50d0097:14F17FFACC8</JMSMessag
    eID>
        <JMSPriority>4</JMSPriority>
        <JMSTimestamp>1439216676040</JMSTimestamp>
        <JMSType>null</JMSType>
        <CustomJMSHeader1>
          <HeaderName>1abc</HeaderName>
          <HeaderValue>100</HeaderValue>
        </CustomJMSHeader1>
        <CustomJMSHeader2>
          <HeaderName>JMSMessage Class</HeaderName>
          <HeaderValue>jms</HeaderValue>
        </CustomJMSHeader2>
      </JMS>
    
    A new property has been added to the jms11.properties file which
    drives this behavior: CustomHeadersToProperXML. By default,
    it is set to "false." To allow a sepcial character as part of a
    custom header, set it to "true."
    
    In the JMS Receive Message service:
    <JMS>
        <Document SCIObjectID="dublr009vm:node1:14f1c4daa41:14620">
          <JMSRedelivered>false</JMSRedelivered>
          <JMSDeliveryMode>1</JMSDeliveryMode>
          <JMSExpiration>1439376456762</JMSExpiration>
    
    <JMSMessageID>ID:ffffffffcbed081a:50d00a1:14F1C5F2B32</JMSMessag
    eID>
          <JMSPriority>4</JMSPriority>
          <JMSTimestamp>1439376456762</JMSTimestamp>
         <CustomJMSHeader1>
            <HeaderName>JMS Class</HeaderName>
            <HeaderValue>JMS</HeaderValue>
          </CustomJMSHeader1>
          <CustomJMSHeader2>
            <HeaderName>1abc</HeaderName>
            <HeaderValue>100</HeaderValue>
          </CustomJMSHeader2>
          <JMSDestination>SampleQ3</JMSDestination>
        </Document>
      </JMS>
    
    DELIVERED IN:
    5020600
    5020500_10
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT00575

  • Reported component name

    STR B2B INTEGRA

  • Reported component ID

    5725D0600

  • Reported release

    524

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2014-03-24

  • Closed date

    2015-10-14

  • Last modified date

    2015-11-24

  • 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

    STR B2B INTEGRA

  • Fixed component ID

    5725D0600

Applicable component levels

  • R526 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SS3JSW","label":"IBM Sterling B2B Integrator"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.2.4","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Document Information

Modified date:
24 November 2015