java异常堆栈字符集,java - 导致异常的IBM字符集标题 - 堆栈内存溢出

我们有一个Spring Integration流,它消耗Websphere MQ Manager队列中的消息。 这些消息通过一个简单的过程放入,然后放入另一个队列(在同一MQ Manager中)。

当我们尝试将消息写入最终目标队列时,出现以下错误:

Caused by: javax.jms.JMSException: MQJMS1006: invalid value for 'JMS_IBM_Character_Set': 'IBM850'.

at com.ibm.msg.client.wmq.v6.jms.internal.ConfigEnvironment.newException(ConfigEnvironment.java:431) ~[com.ibm.mqjms-7.0.1.3.jar:7.0.1.3 - k701-103-100812]

at com.ibm.msg.client.wmq.v6.jms.internal.MQMessageProducer.sendInternal(MQMessageProducer.java:1153) ~[com.ibm.mqjms-7.0.1.3.jar:7.0.1.3 - k701-103-100812]

at com.ibm.msg.client.wmq.v6.jms.internal.MQMessageProducer.send(MQMessageProducer.java:779) ~[com.ibm.mqjms-7.0.1.3.jar:7.0.1.3 - k701-103-100812]

at com.ibm.msg.client.wmq.v6.jms.internal.MQMessageProducer.send(MQMessageProducer.java:2718) ~[com.ibm.mqjms-7.0.1.3.jar:7.0.1.3 - k701-103-100812]

at com.ibm.msg.client.jms.internal.JmsMessageProducerImpl.sendMessage(JmsMessageProducerImpl.java:907) ~[com.ibm.mqjms-7.0.1.3.jar:7.0.1.3 - k701-103-100812]

at com.ibm.msg.client.jms.internal.JmsMessageProducerImpl.send_(JmsMessageProducerImpl.java:762) ~[com.ibm.mqjms-7.0.1.3.jar:7.0.1.3 - k701-103-100812]

at com.ibm.msg.client.jms.internal.JmsMessageProducerImpl.send(JmsMessageProducerImpl.java:393) ~[com.ibm.mqjms-7.0.1.3.jar:7.0.1.3 - k701-103-100812]

at com.ibm.mq.jms.MQMessageProducer.send(MQMessageProducer.java:333) ~[com.ibm.mqjms-7.0.1.3.jar:7.0.1.3 - k701-103-100812]

at org.springframework.jms.connection.CachedMessageProducer.send(CachedMessageProducer.java:181) ~[spring-jms-4.2.1.RELEASE.jar:4.2.1.RELEASE]

at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:636) ~[spring-jms-4.2.1.RELEASE.jar:4.2.1.RELEASE]

at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:607) ~[spring-jms-4.2.1.RELEASE.jar:4.2.1.RELEASE]

at org.springframework.jms.core.JmsTemplate$4.doInJms(JmsTemplate.java:584) ~[spring-jms-4.2.1.RELEASE.jar:4.2.1.RELEASE]

at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:494) ~[spring-jms-4.2.1.RELEASE.jar:4.2.1.RELEASE]

at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:580) ~[spring-jms-4.2.1.RELEASE.jar:4.2.1.RELEASE]

at org.springframework.jms.core.JmsTemplate.convertAndSend(JmsTemplate.java:706) ~[spring-jms-4.2.1.RELEASE.jar:4.2.1.RELEASE]

at org.springframework.integration.jms.JmsSendingMessageHandler.send(JmsSendingMessageHandler.java:145) ~[spring-integration-jms-4.2.0.RELEASE.jar:?]

at org.springframework.integration.jms.JmsSendingMessageHandler.handleMessageInternal(JmsSendingMessageHandler.java:115) ~[spring-integration-jms-4.2.0.RELEASE.jar:?]

at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:127) ~[spring-integration-core-4.2.0.RELEASE.jar:?]

我们从初始队列中提取的消息具有以下IBM特定的标头:

JMS_IBM_Character_Set=IBM850,

JMS_IBM_MQMD_CodedCharSetId=850,

JMS_IBM_Encoding=17,

JMS_IBM_PutApplType=11,

JMS_IBM_Format= ,

JMSXDeliveryCount=1,

JMS_IBM_PutTime=12534150,

JMS_IBM_MsgType=8

当我们尝试将已处理的消息写入最终的Websphere MQ队列时,它们仍然存在。

该项目正在使用以下IBM MQ依赖项jar:

compile 'com.ibm:com.ibm.mq:7.0.1.3'

compile 'com.ibm:com.ibm.mqjms:7.0.1.3'

compile 'com.ibm:com.ibm.mq.jmqi:7.0.1.3'

compile 'com.ibm:com.ibm.mq.headers:7.0.1.3'

解决此异常的正确方法是什么? 我们应该吗:

在写入最终的Websphere MQ队列之前,从消息中剥离所有JMS_IBM_XXX标头?

使用不同版本的罐子?

完全做其他事情吗?

在从Websphere MQ队列中提取消息并将它们最终写入另一个Websphere MQ队列的其他任何流程中,我们似乎都没有遇到这个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值