Skip to Content

Receiver JMS adapter | CCSID battle


I need to send messages to an IBM iSeries system. When I take a look at the IBM side, the CCSID seems to be 1208. How can that be?

In the receiver JMS adapter

  • I provided the CCSID (37) in the Target tab
  • additional parameter JMS.QueueImpl.method.setCCSID is included with value java.lang.Integer 37
  • In the module tab, I added Transform.ContentType with value text/plain;charset=UTF-8

Nothing seems to help. Also a combination of the above parameters.

Anyone any idea?

Thanks a lot.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • Best Answer
    Feb 13, 2018 at 08:57 PM

    Hi Dimitri,

    if you are sending plain alpha numeric chars in your SAP PI output CCSID 819 - (ISO 8859-1 ASCII ) should work. if you have special chars or non English char try using CCSID 1208 (UTF-8).

    One more point, once you send the data from SAP PI and place it in the JMS Q. Try extracting the data from the input Q using RHFUTIL before the application process the message from queue. if the message is placed correctly in the input queue properly. then problem should be in the application processing further from the input queue. if the character set is not handled properly while reading, data can get corrupted.

    with regards,


    Add comment
    10|10000 characters needed characters exceeded

  • Feb 13, 2018 at 10:54 PM

    Hi Nazeer,

    I need to convert a simple XML structure to plain. So, I big string, based on field lengths of the data type. Concatenated.
    As far as I know, no special signs or symbols will be used. Just regular text.

    I use a freeware tool to connect to the queue to see the message. I only see squares.
    Also, the MQ team told me that the message is completely useless and cannot be processed further.
    Even more, the MQ team explicitly told me the CCSID is 37. When they send me a screenshot of what they see, you can clearly see the CCSID is 1208.

    This is what I have configured in the receiver JMS adapter. Perhaps you should take a look and let me know if all that is expected?

    • transport protocol = WebSphere (MQSeries) JMS provider
    • Message protocol = JMS 1.x
    • TARGET tab
      - Character Set ID = 37
      - transport/network protocol = TCP/IP
      - target client = WebSphereMQ (non-JMS)
    • PROCESSING tab
      I guess not relevant to indicate here to solve the problem
      Additional parameter JMS.QueueImpl.method.setCCSID with value java.lang.Integer 37
    • Modules
      1. AF_Modules/MessageTransformBean
      2. SAP XI JMS Adapter/ConvertMessageToBinary
      3. SAP XI JMS Adapter/SendBinarytoXIJMSService
    • Module configuration, only for AF_Modules/MessageTransformBean
      - Transform.Class =
      - xml.ProcessFieldNames = fromConfiguration
      - xml.addHeaderLine = 0
      - xml.conversionType = SimpleXML2Plain
      - xml.documentName = reference to the Message Type in the ESR
      - xml.fieldFixedLengths = reference to the field lengths
      - xml.fieldNames = reference to the name of the fields
      - xml.fixedLengthTooShortHandling = Cut

    You also refer to RHFUTIL. Can you be more specific?

    Which tool do you use to ready queues for testing? I have a feeling my freeware tool is not displaying correctly.

    Thanks again!

    Add comment
    10|10000 characters needed characters exceeded