Encoding IData as XML When Publishing to Universal Messaging
When publishing a document that is encoded as IData to Universal Messaging, Integration Server encodes the IData as a byte array using IDataBinCoder. However, IDataBinCoder encodes data two-byte instead of single-byte. This can cause a dramatic increase in message size and may result in the max buffer size on Universal Messaging being exceeded. As result, document publication fails.
When document publishing fails because the document exceeds the max buffer size on Universal Messaging, Integration Server logs a message similar to the following:
Unable to send message to webMethods Messaging alias IS_UM_CONNECTION: com.wm.app.b2b.server.dispatcher.exceptions.MessagingSubsystemException: com.pcbsys.nirvana.client.nMaxBufferSizeExceededException: Event data exceeds the max buffer size. Data size is 86899332 and max buffer size is 50971520
To resolve this issue, Integration Server includes a custom property named $coderType that can be set to "idata_xml_bytes". At run time, this name=value pair ($coderType=idata_xml_bytes) instructs the publishing Integration Server to encode the IData message as XML using IDataXMLCoder. The same property also instructs the receiving Integration Server (that is, the server on which the webMethods messaging trigger resides) to decode the message as XML to IData.
To specify that instances of publishable document types configured to use IData encoding be encoded as XML
1. Open the publishable document type.
2. Add a String variable named $coderType to the _properties document field in the publishable document type.
3. Synchronize the publishable document type with the associated provider definition (channel) on Universal Messaging and any Integration Servers that subscribe to the publishable document type.
4. In the service that publishes an instance of the publishable document type, set the value of $coderType to: idata_xml_bytes