IBM MQ:当消息具有相关ID时,JMS消息使用者失败

时间:2016-07-19 16:59:59

标签: java jms ibm-mq

我在JMS消息使用者中接收消息,如(伪代码):

loop
   Message msg = MessageConsumer.receive(timeout);
end-loop

由于某些原因,如果收到的消息具有相关ID,则会失败,但如果消息没有,则会正常工作。

我正在制作这样的信息:

TextMessage textMsg = session.createTextMessage("<myTestMsg  type=\"TEST\"></myTestMsg>");
if (addCorrelationId) {
    textMsg.setJMSCorrelationIDAsBytes(new byte[]{(byte)49});
}
jmsProducer.send(textMsg);

这是我在消费者方日志中看到的错误:

July 19, 2016 6:15:04 PM CEST[Queue Service thread] com.ibm.msg.client.wmq.common.internal.messages.WMQReceiveMarshal
A received message could not be correctly parsed.

EXPLANATION:
The message with messageID = '414D512064657620202020202020202012048D5720072E04' and correlationID = '310000000000000000000000000000000000000000000000' could not be correctly parsed. The last successful data read from the message was at position '192' in buffer '
0000:  5246 4820 0000 0002 0000 00c0 0000 0111    RFH ............
0010:  0000 04b8 4d51 5354 5220 2020 0000 0000    ....MQSTR   ....
0020:  0000 04b8 0000 0020 3c6d 6364 3e3c 4d73    ....... <mcd><Ms
0030:  643e 6a6d 735f 7465 7874 3c2f 4d73 643e    d>jms_text</Msd>
0040:  3c2f 6d63 643e 2020 0000 0074 3c6a 6d73    </mcd>  ...t<jms
0050:  3e3c 4473 743e 7175 6575 653a 2f2f 2f6d    ><Dst>queue:///m
0060:  7971 7565 7565 3c2f 4473 743e 3c54 6d73    yqueue</Dst><Tms
0070:  3e31 3436 3839 3434 3930 3438 3738 3c2f    >1468944904878</
0080:  546d 733e 3c45 7870 3e31 3436 3839 3434    Tms><Exp>1468944
0090:  3933 3438 3738 3c2f 4578 703e 3c43 6964    934878</Exp><Cid
00a0:  3e49 443a 3331 3c2f 4369 643e 3c44 6c76    >ID:31</Cid><Dlv
00b0:  3e31 3c2f 446c 763e 3c2f 6a6d 733e 2020    >1</Dlv></jms>  
00c0:  3c6d 7954 6573 744d 7367 2020 7479 7065    <myTestMsg  type
00d0:  3d22 5445 5354 223e 3c2f 6d79 5465 7374    ="TEST"></myTest
00e0:  4d73 673e 3037 2d31 3954 3138 3a31 353a    Msg>07-19T18:15:
00f0:  3034 2e36 3838 2b30 323a 3030 222f 3e00    04.688+02:00"/>.
0100:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0110:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0120:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0130:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0140:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0150:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0160:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0170:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0180:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0190:  0000 0000 0000 0000 0000 0000 0000 0000    ................
01a0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
01b0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
01c0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
01d0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
01e0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
01f0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0200:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0210:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0220:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0230:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0240:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0250:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0260:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0270:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0280:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0290:  0000 0000 0000 0000 0000 0000 0000 0000    ................
02a0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
02b0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
02c0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
02d0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
02e0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
02f0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0300:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0310:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0320:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0330:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0340:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0350:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0360:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0370:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0380:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0390:  0000 0000 0000 0000 0000 0000 0000 0000    ................
03a0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
03b0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
03c0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
03d0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
03e0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
03f0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0400:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0410:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0420:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0430:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0440:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0450:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0460:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0470:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0480:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0490:  0000 0000 0000 0000 0000 0000 0000 0000    ................
04a0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
04b0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
04c0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
04d0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
04e0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
04f0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0500:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0510:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0520:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0530:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0540:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0550:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0560:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0570:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0580:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0590:  0000 0000 0000 0000 0000 0000 0000 0000    ................
05a0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
05b0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
05c0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
05d0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
05e0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
05f0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0600:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0610:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0620:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0630:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0640:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0650:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0660:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0670:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0680:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0690:  0000 0000 0000 0000 0000 0000 0000 0000    ................
06a0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
06b0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
06c0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
06d0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
06e0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
06f0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0700:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0710:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0720:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0730:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0740:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0750:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0760:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0770:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0780:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0790:  0000 0000 0000 0000 0000 0000 0000 0000    ................
07a0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
07b0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
07c0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
07d0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
07e0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
07f0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0800:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0810:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0820:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0830:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0840:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0850:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0860:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0870:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0880:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0890:  0000 0000 0000 0000 0000 0000 0000 0000    ................
08a0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
08b0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
08c0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
08d0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
08e0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
08f0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0900:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0910:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0920:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0930:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0940:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0950:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0960:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0970:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0980:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0990:  0000 0000 0000 0000 0000 0000 0000 0000    ................
09a0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
09b0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
09c0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
09d0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
09e0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
09f0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0a00:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0a10:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0a20:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0a30:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0a40:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0a50:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0a60:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0a70:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0a80:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0a90:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0aa0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0ab0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0ac0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0ad0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0ae0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0af0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0b00:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0b10:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0b20:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0b30:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0b40:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0b50:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0b60:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0b70:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0b80:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0b90:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0ba0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0bb0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0bc0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0bd0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0be0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0bf0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0c00:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0c10:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0c20:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0c30:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0c40:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0c50:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0c60:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0c70:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0c80:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0c90:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0ca0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0cb0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0cc0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0cd0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0ce0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0cf0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0d00:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0d10:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0d20:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0d30:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0d40:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0d50:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0d60:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0d70:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0d80:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0d90:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0da0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0db0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0dc0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0dd0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0de0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0df0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0e00:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0e10:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0e20:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0e30:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0e40:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0e50:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0e60:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0e70:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0e80:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0e90:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0ea0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0eb0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0ec0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0ed0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0ee0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0ef0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0f00:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0f10:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0f20:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0f30:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0f40:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0f50:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0f60:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0f70:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0f80:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0f90:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0fa0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0fb0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0fc0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0fd0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0fe0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
0ff0:  0000 0000 0000 0000 0000 0000 0000 0000    ................
'  

我做错了什么?

我的消息使用者是MQ Classes for JMS(IBM MQ客户端v8.0.4)。

更新

如果我在制作邮件时使用msg.setJMSCorrelationID而不是msg.setJMSCorrelationIDAsBytes,则问题就会消失。

2 个答案:

答案 0 :(得分:0)

请检查:MQHRF vs MQHRF2

  

您的消息使用者似乎只支持Websphere MQ的raw   MQSTR格式,不支持MQHRF2(带增强格式的   除了消息正文之外的标题)。因此,你看   消息中的MQHRF2标头(例如“”“”......)。

我认为发件人必须将目标客户端设置为1(即:MQ)。

Queue myQueue = session.createQueue("queue:///myQueue?targetClient=1");

答案 1 :(得分:0)

相关ID长度为24个字节。那你为什么不明确地创建一个相关ID呢?

TextMessage textMsg = session.createTextMessage("<myTestMsg  type=\"TEST\"></myTestMsg>");
if (addCorrelationId) {
    textMsg.setJMSCorrelationIDAsBytes(new byte[24]{
    (byte)49,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
    (byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
    (byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00});
}
jmsProducer.send(textMsg);
  

07-19T18:15:04.688 + 02:00" /&GT;

此外,消息末尾的垃圾是什么?