Our application connects to IBM MQ CICS using JMS. It sends the CIH header, program name, and commarea as input to IBM MQ. It triggers the CICS and receives the data fine. However, if the COMMAREA has the value ‘broken bar,’ it does not. Why?
comm area :: ABCD¦HIJ¦7002¦0010¦4¦34¦ —-> not working
commarea: HG13;;EA;N; —-> working

I have set the Encoding like following :

private static final int messageEncoding = WMQConstants.WMQ_ENCODING_FLOAT_S390
            | WMQConstants.WMQ_ENCODING_DECIMAL_NORMAL | WMQConstants.WMQ_ENCODING_INTEGER_NORMAL;
connection.start();

            ((JmsDestination) requestQueue).setIntProperty(
                    WMQConstants.WMQ_MQMD_MESSAGE_CONTEXT,
                    WMQConstants.WMQ_MDCTX_SET_IDENTITY_CONTEXT);
            ((JmsDestination) requestQueue).setBooleanProperty(
                    WMQConstants.WMQ_MQMD_WRITE_ENABLED, true);

                        
            MessageProducer producer =session.createProducer(requestQueue);
            BytesMessage message = session.createBytesMessage();

            message.setJMSMessageID(WMQConstants.JMS_MESSAGEID);
            message.setJMSCorrelationIDAsBytes(MQConstants.MQCI_NEW_SESSION);
            message.setStringProperty("JMS_IBM_MQMD_UserIdentifier", racfUserid);
                        message.setStringProperty("JMS_IBM_Character_Set","500" );
            message.setStringProperty("JMS_IBM_Format",MQConstants.MQFMT_CICS);
            message.setJMSReplyTo(replyQueue);
            message.setIntProperty("JMS_IBM_Encoding", messageEncoding);
            message.setIntProperty("JMS_IBM_MQMD_Persistence", persistence);
            
            log.info("doCicsRequestReply:message header completed ");
            byte blanks[] = new byte[8];
            for (int i = 0; i < blanks.length; i++)
                blanks[i] = (byte) ' ';
            message.clearBody();
            // Construct the CIH header as a byte array
            ByteArrayOutputStream outBytes = new ByteArrayOutputStream();
            DataOutputStream outData = new DataOutputStream(outBytes);

            outData.writeBytes("CIH "); // MQCHAR strucId
            outData.writeInt(2); // MQLONG version
            outData.writeInt(180); // MQLONG strucLength
            outData.writeInt(messageEncoding); // MQLONG encoding
            outData.writeInt(500); // MQLONG CodedCharSetId;
            outData.writeBytes(MQConstants.MQFMT_STRING); // MQCHAR8 Format;
                              ------------------>continues                                                                      -                       outData.writeBytes(pgmName.substring(0, 8));
            outData.writeBytes(commArea);

            byte[] cihRequestMessage = outBytes.toByteArray();
            message.writeBytes(cihRequestMessage);
                        producer.send(message);