1

I am facing issue while publishing messages to the IBM Websphere MQ Queue via PublishJMS processor.

Configuration of PublishJMS processor & JMS Controller Service, I have verified there is no problem with the MQ connection. I believe there is some additional property I need to set in either the PublishJMS or Controller Service.

enter image description here

enter image description here

Below is the error message stack.

Caused by: com.ibm.msg.client.jms.DetailedMessageFormatException: JMSCC0051: The property 'JMS_IBM_MsgType' should be set using type 'java.lang.Integer', not 'java.lang.String'.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_102]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_102]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_102]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_102]
    at com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:314) ~[na:na]
    at com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:228) ~[na:na]
    at com.ibm.msg.client.jms.internal.JmsErrorUtils.createException(JmsErrorUtils.java:104) ~[na:na]
    at com.ibm.msg.client.jms.internal.JmsMessageImpl.checkSettablePropertyName(JmsMessageImpl.java:2197) ~[na:na]
    at com.ibm.msg.client.jms.internal.JmsMessageImpl.setStringProperty(JmsMessageImpl.java:1690) ~[na:na]
    at com.ibm.jms.JMSMessage.setStringProperty(JMSMessage.java:1491) ~[na:na]
    at org.apache.nifi.jms.processors.JMSPublisher$1.createMessage(JMSPublisher.java:87) ~[nifi-jms-processors-1.1.0.2.1.2.0-10.jar:1.1.0.2.1.2.0-10]
    at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:603) ~[spring-jms-4.2.4.RELEASE.jar:4.2.4.RELEASE]
    at org.springframework.jms.core.JmsTemplate$4.doInJms(JmsTemplate.java:584) ~[spring-jms-4.2.4.RELEASE.jar:4.2.4.RELEASE]
    at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:494) ~[spring-jms-4.2.4.RELEASE.jar:4.2.4.RELEASE]
    ... 17 common frames omitted
JoshMc
  • 10,239
  • 2
  • 19
  • 38
mhasan
  • 3,703
  • 1
  • 18
  • 37

1 Answers1

1

It looks like you are hitting a known defect: APAR IT02814 (JMSCC0051: THE PROPERTY 'JMS_IBM_REPORT_PASS_CORREL_ID' SHOULD SET USING TYPE 'JAVA.LANG.INTEGER', NOT 'JAVA.LANG.STRING'.)

It states that pre-v7.0 IBM MQ Classes for JMS allowed passing a non-INT, v7.0 and higher are more strict. IBM has added a fix to v7.5.0.5 and to v8.0.0.2 to allow this to continue to work, the APAR also has suggestions on how to change the application to work without the fix.

JoshMc
  • 10,239
  • 2
  • 19
  • 38
  • Thanks for finding this. I have reported [NIFI-3672](https://issues.apache.org/jira/browse/NIFI-3672) to fix this issue. – Andy Apr 05 '17 at 04:23