Direct links to fixes
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