PublishJMS 处理器无法将消息写入 IBM Websphere MQ [英] PublishJMS processor failing for writing message to IBM Websphere MQ

查看:38
本文介绍了PublishJMS 处理器无法将消息写入 IBM Websphere MQ的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

以下是错误消息堆栈.

Caused by: com.ibm.msg.client.jms.DetailedMessageFormatException: JMSCC0051: 属性JMS_IBM_MsgType"应该使用类型java.lang.Integer"设置,而不是java.lang.String".在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_102]在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_102]在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_102]在 java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_102]在 com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:314) ~[na:na]在 com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:228) ~[na:na]在 com.ibm.msg.client.jms.internal.JmsErrorUtils.createException(JmsErrorUtils.java:104) ~[na:na]在 com.ibm.msg.client.jms.internal.JmsMessageImpl.checkSettablePropertyName(JmsMessageImpl.java:2197) ~[na:na]在 com.ibm.msg.client.jms.internal.JmsMessageImpl.setStringProperty(JmsMessageImpl.java:1690) ~[na:na]在 com.ibm.jms.JMSMessage.setStringProperty(JMSMessage.java:1491) ~[na:na]在 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]在 org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:603) ~[spring-jms-4.2.4.RELEASE.jar:4.2.4.RELEASE]在 org.springframework.jms.core.JmsTemplate$4.doInJms(JmsTemplate.java:584) ~[spring-jms-4.2.4.RELEASE.jar:4.2.4.RELEASE]在 org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:494) ~[spring-jms-4.2.4.RELEASE.jar:4.2.4.RELEASE]... 省略了 17 个常用帧

解决方案

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

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

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.

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

解决方案

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.

这篇关于PublishJMS 处理器无法将消息写入 IBM Websphere MQ的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆