【问题标题】:PublishJMS processor failing for writing message to IBM Websphere MQPublishJMS 处理器无法将消息写入 IBM Websphere MQ
【发布时间】:2017-08-30 00:27:09
【问题描述】:

我在通过 PublishJMS 处理器将消息发布到 IBM Websphere MQ 队列时遇到问题。

PublishJMS 处理器和JMS 控制器服务的配置,我已经验证了MQ 连接没有问题。我相信我需要在 PublishJMS 或控制器服务中设置一些额外的属性。

下面是错误信息栈。

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

【问题讨论】:

    标签: jms ibm-mq apache-nifi


    【解决方案1】:

    您似乎遇到了一个已知缺陷:APAR IT02814(JMSCC0051:属性“JMS_IBM_REPORT_PASS_CORREL_ID”应该使用“JAVA.LANG.INTEGER”类型设置,而不是“JAVA.LANG.STRING”。)

    它指出 v7.0 之前的 IBM MQ Classes for JMS 允许传递非 INT,v7.0 和更高版本更加严格。 IBM 已向 v7.5.0.5 和 v8.0.0.2 添加了一个修复程序以使其继续工作,APAR 还提供了有关如何更改应用程序以使其在没有修复程序的情况下工作的建议。

    【讨论】:

    • 感谢您找到此内容。我已经报告了NIFI-3672 来解决这个问题。
    猜你喜欢
    • 2017-08-31
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    相关资源
    最近更新 更多