0

我们的合作伙伴开始对通过 IBM WebSphere MQ 发送的消息使用自定义属性,因此我们使用 XMS.NET 开发的应用程序开始失败。

事实证明,错误是在解析 JMS 信封和 ParseJmsFolder 方法内部引发的。

这是我们得到的异常:

IBM.XMS.XMSException: Failed to create XMS message.
The wrong message type or properties were specified when creating a base message.
Check the linked WebSphere MQ exception reason and completion code for more information.
   at IBM.XMS.Client.WMQ.WmqReceiveMarshal.ConstructProviderMessageFromRFH2(Int32 messageBodyStyle)
   at IBM.XMS.Client.WMQ.WmqReceiveMarshal.CreateProviderMessage()
   at IBM.XMS.Client.WMQ.WmqReceiveMarshal.ExportProviderMessage()
   at IBM.XMS.Client.WMQ.WmqAsyncConsumerShadow.Consumer(Phconn hconn, MQMessageDescriptor mqmd, MQGetMessageOptions mqgmo, Byte[] pBuffer, MQCBC mqcbc)

Linked Exception : System.NullReferenceException: Object reference not set to an instance of an object.
   at IBM.XMS.Client.WMQ.Messages.WmqMessageBase.ParseJmsFolder(String input, Boolean persistenceFromMD)
   at IBM.XMS.Client.WMQ.WmqReceiveMarshal.ConstructProviderMessageFromRFH2(Int32 messageBodyStyle)

这些是追踪问题的详细信息:

[29.10.2015 11:24:32:893922 W. Europe Standard Time] 00000027 > UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase method=ParseJmsFolder(String,bool) [:] org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
entry [<jms><Dst>queue://SV2098743/LQ.CORE.EVENTS</Dst><Exp></Exp><Pri></Pri><Dlv>2</Dlv><Cid>1ade73268824414b8473c95ae93f7a57</Cid><Rto></Rto><Gid></Gid><Seq></Seq><Tms>1445934282747</Tms></jms>] [False]
[29.10.2015 11:24:32:895922 W. Europe Standard Time] 00000027 d UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
ParseFolderJms() : folder as string = <jms><Dst>queue://SV2098743/LQ.CORE.EVENTS</Dst><Exp></Exp><Pri></Pri><Dlv>2</Dlv><Cid>1ade73268824414b8473c95ae93f7a57</Cid><Rto></Rto><Gid></Gid><Seq></Seq><Tms>1445934282747</Tms></jms>
[29.10.2015 11:24:32:901923 W. Europe Standard Time] 00000027 > UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase method=ParseFolderToPropertyNodes(StringBuilder) [:] org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
entry [<Dst>queue://SV2098743/LQ.CORE.EVENTS</Dst><Exp></Exp><Pri></Pri><Dlv>2</Dlv><Cid>1ade73268824414b8473c95ae93f7a57</Cid><Rto></Rto><Gid></Gid><Seq></Seq><Tms>1445934282747</Tms>]
[29.10.2015 11:24:32:903923 W. Europe Standard Time] 00000027 d UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
ParseFolderToPropertyNodes(), Adding node values [Dst] [queue://SV2098743/LQ.CORE.EVENTS] []
[29.10.2015 11:24:32:905923 W. Europe Standard Time] 00000027 d UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
ParseFolderToPropertyNodes(), Adding node values [Exp] [] []
[29.10.2015 11:24:32:906923 W. Europe Standard Time] 00000027 d UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
ParseFolderToPropertyNodes(), Adding node values [Pri] [] []
[29.10.2015 11:24:32:908924 W. Europe Standard Time] 00000027 d UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
ParseFolderToPropertyNodes(), Adding node values [Dlv] [2] []
[29.10.2015 11:24:32:910924 W. Europe Standard Time] 00000027 d UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
ParseFolderToPropertyNodes(), Adding node values [Cid] [1ade73268824414b8473c95ae93f7a57] []
[29.10.2015 11:24:32:911924 W. Europe Standard Time] 00000027 d UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
ParseFolderToPropertyNodes(), Adding node values [Rto] [] []
[29.10.2015 11:24:32:913924 W. Europe Standard Time] 00000027 d UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
ParseFolderToPropertyNodes(), Adding node values [Gid] [] []
[29.10.2015 11:24:32:915924 W. Europe Standard Time] 00000027 d UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
ParseFolderToPropertyNodes(), Adding node values [Seq] [] []
[29.10.2015 11:24:32:916924 W. Europe Standard Time] 00000027 d UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
ParseFolderToPropertyNodes(), Adding node values [Tms] [1445934282747] []
[29.10.2015 11:24:32:918925 W. Europe Standard Time] 00000027 < UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase method=ParseFolderToPropertyNodes(StringBuilder) [:] org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
exit
[29.10.2015 11:24:32:920925 W. Europe Standard Time] 00000027 > UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase method=ExpandRefs(String) [:] org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
entry [queue://SV2098743/LQ.CORE.EVENTS]
[29.10.2015 11:24:32:922925 W. Europe Standard Time] 00000027 < UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase method=ExpandRefs(String) [:] org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
exit [queue://SV2098743/LQ.CORE.EVENTS]
[29.10.2015 11:24:32:923925 W. Europe Standard Time] 00000027 d UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
ParseJmsFolder(), PROP_DESTINATION_NAME  [queue://SV2098743/LQ.CORE.EVENTS]
[29.10.2015 11:24:32:925925 W. Europe Standard Time] 00000027 d UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
ParseJmsFolder(), PROP_EXPIRATION_NAME  [0]
[29.10.2015 11:24:32:926925 W. Europe Standard Time] 00000027 d UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
ParseJmsFolder(), PROP_PRIORITY_NAME  [0]
[29.10.2015 11:24:32:928926 W. Europe Standard Time] 00000027 d UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
ParseJmsFolder(), PROP_DELIVERYMODE_NAME  [1]
[29.10.2015 11:24:32:929926 W. Europe Standard Time] 00000027 > UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase method=ExpandRefs(String) [:] org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
entry [1ade73268824414b8473c95ae93f7a57]
[29.10.2015 11:24:32:930926 W. Europe Standard Time] 00000027 < UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase method=ExpandRefs(String) [:] org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
exit [1ade73268824414b8473c95ae93f7a57]
[29.10.2015 11:24:32:933926 W. Europe Standard Time] 00000027 d UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
ParseJmsFolder(), PROP_CORRELATIONID_NAME  [1ade73268824414b8473c95ae93f7a57]
[29.10.2015 11:24:32:934926 W. Europe Standard Time] 00000027 d UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
ParseJmsFolder(), PROP_REPLYTO_NAME  []
[29.10.2015 11:24:32:935926 W. Europe Standard Time] 00000027 > UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase method=ExpandRefs(String) [:] org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
entry []
[29.10.2015 11:24:32:979931 W. Europe Standard Time] 00000027 < UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase method=ExpandRefs(String) [:] org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
exit []
[29.10.2015 11:24:32:981931 W. Europe Standard Time] 00000027 X UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
System.NullReferenceException: Object reference not set to an instance of an object.
   at IBM.XMS.Client.WMQ.Messages.WmqMessageBase.ExpandRefs(String input)
   at IBM.XMS.Client.WMQ.Messages.WmqMessageBase.ParseJmsFolder(String input, Boolean persistenceFromMD)
[29.10.2015 11:24:32:993932 W. Europe Standard Time] 00000027 < UOW= source=IBM.XMS.Client.WMQ.Messages.WmqMessageBase method=ParseJmsFolder() [:] org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
exit
[29.10.2015 11:24:32:995932 W. Europe Standard Time] 00000027 X UOW= source=IBM.XMS.Client.WMQ.WmqReceiveMarshal org=IBM prod=WebSphere component=Message Service Client for .NET thread=[1 : 0]
System.NullReferenceException: Object reference not set to an instance of an object.
   at IBM.XMS.Client.WMQ.Messages.WmqMessageBase.ParseJmsFolder(String input, Boolean persistenceFromMD)
   at IBM.XMS.Client.WMQ.WmqReceiveMarshal.ConstructProviderMessageFromRFH2(Int32 messageBodyStyle)

我们的合作伙伴建议在 XMS.NET 中尝试一些有关 JMS 行为的设置,但我们尝试的所有选项都以相同的错误告终。

这是我们的配置代码:

factory.SetStringProperty(XMSC.WMQ_HOST_NAME, ".....com");
            factory.SetIntProperty(XMSC.WMQ_PORT, 1417);
            factory.SetStringProperty(XMSC.WMQ_CHANNEL, "....");
            factory.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT);
            factory.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, "....");
            factory.SetIntProperty(XMSC.WMQ_BROKER_VERSION, XMSC.WMQ_BROKER_UNSPECIFIED); 

...

var session = queueConnection.CreateSession(false, AcknowledgeMode.ClientAcknowledge);
            var queue = session.CreateQueue("....");
            queue.SetIntProperty(XMSC.WMQ_MESSAGE_BODY, XMSC.WMQ_MESSAGE_BODY_JMS);
            var subscriber = session.CreateConsumer(queue);

编辑:

这是导致问题的示例消息

count=1412

        offset        : 0 1 2 3  4 5 6 7  8 9 A B  C D E F
0x00000000 (       0) : 52464820 00000002 00000108 00000111 : RFH........
0x00000010 (      16) : 000004b8 4d515354 52202020 00000000 : ..?MQSTR.......
0x00000020 (      32) : 000004b8 00000020 3c6d6364 3e3c4d73 : ..?....<mcd><Ms
0x00000030 (      48) : 643e6a6d 735f7465 78743c2f 4d73643e : d>jms_text</Msd>
0x00000040 (      64) : 3c2f6d63 643e2020 000000bc 3c6a6d73 : </mcd>.....?<jms
0x00000050 (      80) : 3e3c4473 743e7175 6575653a 2f2f5356 : ><Dst>queue://SV
0x00000060 (      96) : 32303938 3734332f 4c512e43 4f52452e : 2098743/LQ.CORE.
0x00000070 (     112) : 4556454e 54533c2f 4473743e 3c457870 : EVENTS</Dst><Exp
0x00000080 (     128) : 3e3c2f45 78703e3c 5072693e 3c2f5072 : ></Exp><Pri></Pr
0x00000090 (     144) : 693e3c44 6c763e32 3c2f446c 763e3c43 : i><Dlv>2</Dlv><C
0x000000a0 (     160) : 69643e31 61646537 33323638 38323434 : id>1ade732688244
0x000000b0 (     176) : 31346238 34373363 39356165 39336637 : 14b8473c95ae93f7
0x000000c0 (     192) : 6135373c 2f436964 3e3c5274 6f3e3c2f : a57</Cid><Rto></
0x000000d0 (     208) : 52746f3e 3c476964 3e3c2f47 69643e3c : Rto><Gid></Gid><
0x000000e0 (     224) : 5365713e 3c2f5365 713e3c54 6d733e31 : Seq></Seq><Tms>1
0x000000f0 (     240) : 34343539 33343238 32373437 3c2f546d : 445934282747</Tm
0x00000100 (     256) : 733e3c2f 6a6d733e 48347349 41414141 : s></jms>H4sIAAAA
0x00000110 (     272) : 41414141 414a5656 57335061 4f68442b : AAAAAJVVW3PaOhD+
0x00000120 (     288) : 4b347a37 31706e45 4e787744 4939524a : K4z71pnENxwDI9RJ
0x00000130 (     304) : 4b47307a 49595135 70706670 53306659 : KG0zIYQ5ppfpS0fY
0x00000140 (     320) : 69394667 79315353 51386d76 50797362 : i9Fgy1SSQ8mvPysb
0x00000150 (     336) : 4579416b 74432b4a 64766662 5a532f66 : EyAktC+JdvfbZS/f
0x00000160 (     352) : 72736d48 50336e57 65675370 65434836 : rsmHP3nWegSpeCH6
0x00000170 (     368) : 6c6e7670 57433051 635a4677 6b666174 : lnvpWC0QcZFwkfat
0x00000180 (     384) : 72394e50 46783272 70545154 4363734b : r9NPFx2rpTQTCcsK
0x00000190 (     400) : 41583172 41387236 51496c51 586d2f34 : AX1rA8r6QIlQXm/4
0x000001a0 (     416) : 43454c66 67314973 68526147 45617148 : CELfg1IshRaGEaqH
0x000001b0 (     432) : 36723631 30487256 732b3331 656e305a : 6r610HrVs+31en0Z
0x000001c0 (     448) : 46336b4f 386d6e47 784e4b38 37626951 : F3kO8mnGxNK87biQ
0x000001d0 (     464) : 59412f77 5436526c 47657453 77746266 : YA/wT6RlGetSwtbf
0x000001e0 (     480) : 6f6d5437 2b674973 41556e4a 644c4d43 : omT7+gIsAUnJdLMC
0x000001f0 (     496) : 36684337 2b6b386d 6b75644d 62753567 : 6hC7+k8mkudMbu5g
0x00000200 (     512) : 59335237 55754e32 2b394559 6e675679 : Y3R7UuN2+9EYngVy
0x00000210 (     528) : 62334957 4f687052 78334852 73685052 : b3IWOhpRx3HRshPR
0x00000220 (     544) : 7773564e 71626841 384d4d4b 4a4e4e59 : wsVNqbhA8MMKJNNY
0x00000230 (     560) : 4f35304d 2f347365 78722b75 78365068 : O50M/4sexr+ux6Ph
0x00000240 (     576) : 352b4859 4f4a7843 56633452 2f433678 : 5+HYOJxCVc4R/C6x
0x00000250 (     592) : 53544175 71467344 397a5145 79354f51 : STAuqFsD9zQEy5OQ
0x00000260 (     608) : 56664462 684c7059 54656837 5635324f : VfDbhLpYTeh7V52O
0x00000270 (     624) : 31323637 37566d6e 48667078 4e324451 : 12677VmnHfpxN2DQ
0x00000280 (     640) : 39656368 43304a69 482b4c4a 7a576f4a : 9echC0JiH+LJzWoJ
0x00000290 (     656) : 51744451 63377975 467a6a64 304f6d36 : QtDQc7yuFzjd0Om6
0x000002a0 (     672) : 5164736e 39745a41 76745844 4d755532 : Qdsn9tZAvtXDMuU2
0x000002b0 (     688) : 547a4a59 4d434567 6f772f6a 30653134 : TzJYMCEgow/j0e14
0x000002c0 (     704) : 69444733 3871346a 54566533 346b3252 : iDG38q4jTVe34k2R
0x000002d0 (     720) : 594f7455 4d775144 54364761 70327239 : YOtUMwQDT6Gap2r9
0x000002e0 (     736) : 5562796e 73656c39 53366832 6231776b : Ubynsel9S6h2b1wk
0x000002f0 (     752) : 4d4a4441 4e435257 79347876 57706e71 : MJDANCRWy4xvWpnq
0x00000300 (     768) : 62694531 646f556a 655a4136 4a6b534e : biE1doUjeZA6JkSN
0x00000310 (     784) : 4f484263 41303858 756d3935 316f346f : OHBcA08Xum951o4o
0x00000320 (     800) : 37664e45 6955376b 31775441 4c413843 : 7fNEiU7k1wTALA8C
0x00000330 (     816) : 7250334c 51716132 68384f32 66397950 : rP3LQqa2h8O2f9yP
0x00000340 (     832) : 6f6e6742 4f627667 776e4133 4e765153 : ongBObvgwnA3NvQS
0x00000350 (     848) : 6d4d3942 62554676 67753072 78484e4b : mM9BbUFvgu0rxHNK
0x00000360 (     864) : 77666d55 4a6b7a71 44556162 7654616c : wfmUJkzqDUabvTal
0x00000370 (     880) : 72594777 70516178 4c455843 30776934 : rYGwpQaxLEXC0wi4
0x00000380 (     896) : 7070376a 42686575 632b4746 4c616662 : pp7jBheuc+GFLafb
0x00000390 (     912) : 63344e65 32373930 6e614472 58335775 : c4Ne2790naDrX3Wu
0x000003a0 (     928) : 726f6839 4443644d 53456741 36596f4d : roh9DCdMSEgA6YoM
0x000003b0 (     944) : 3237304a 4b785743 3568716b 42703656 : 270JKxWC5hqkBp6V
0x000003c0 (     960) : 49715866 30667843 53576177 52736b38 : IqXf0fxCSWawRsk8
0x000003d0 (     976) : 63614d78 715a3149 73424c46 6b576544 : caMxqZ1IsBLFkWeD
0x000003e0 (     992) : 477a2b61 44712b4a 33536a51 386d2b38 : Gz+aDq+J3SjQ8m+8
0x000003f0 (    1008) : 50635154 344d4b63 45633141 4a494b72 : PcQT4MKcEc1AJIKr
0x00000400 (    1024) : 6a7a6834 6f566241 63524453 2f4c4a48 : jzh4oVbAcRDS/LJH
0x00000410 (    1040) : 37484f51 6b7a464b 6d49484d 7564625a : 7HOQkzFKmIHMudbZ
0x00000420 (    1056) : 4731454f 5165666a 44496f5a 4d777630 : G1EOQefjDIoZMwv0
0x00000430 (    1072) : 6438446a 6550644d 4c6b486a 68527a6d : d8DjePdMLkHjhRzm
0x00000440 (    1088) : 6a47636e 34687742 58765766 4645712f : jGcn4hwBXvWfFEq/
0x00000450 (    1104) : 3556375a 582f5765 5167627a 2b684363 : 5V7ZX/WeQgbz+hCc
0x00000460 (    1120) : 6735414d 55713778 614a7070 525a7270 : g5AMUq7xaJppRZrp
0x00000470 (    1136) : 556c456b 36776b74 79657444 57562f4e : UlEk6wktyetDWV/N
0x00000480 (    1152) : 526d6930 64386962 6e66594f 3156777a : Rmi0d8ibnfYO1Vwz
0x00000490 (    1168) : 4f555043 6773534e 4b2f5554 78637635 : OUPCgsSNK/UTxcv5
0x000004a0 (    1184) : 556b6b45 79334855 54306850 634f6d31 : UkkEy3HUT0hPcOm1
0x000004b0 (    1200) : 30495634 5034326d 37794b45 7a434442 : 0IV4P42m7yKEzCDB
0x000004c0 (    1216) : 4838364a 6659445a 392f446f 6764457a : H86JfYDZ9/DogdEz
0x000004d0 (    1232) : 75787776 6670616a 4f6e734f 45675364 : uxwvfpajOnsOEgSd
0x000004e0 (    1248) : 73307742 346c3561 794d7273 374c5938 : s0wB4l5ayMrs7LY8
0x000004f0 (    1264) : 374e572b 53466256 4357435a 4b4d3279 : 7NW+SFbVCWCZKM2y
0x00000500 (    1280) : 5539384a 77363644 2b33696b 4a327554 : U98Jw66D+3ikJ2uT
0x00000510 (    1296) : 4b484956 4b573969 37497559 61727777 : KHIVKW9i7IuYarww
0x00000520 (    1312) : 2b564573 71585655 30745a43 4867745a : +VEsqXVU0tZCHgtZ
0x00000530 (    1328) : 50617261 69643249 524b306b 596a436d : Paraid2IRK0kYjCm
0x00000540 (    1344) : 67314562 67656836 62436b59 4463534c : g1Ebgeh6bCkYDcSL
0x00000550 (    1360) : 36334c2b 5a4e5a45 4748596a 38453237 : 63L+ZNZEGHYj8E27
0x00000560 (    1376) : 61554b43 51657954 352f3335 6b31422f : aUKCQeyT5/35k1B/
0x00000570 (    1392) : 412b7a6a 4c7a6e39 48393774 66794954 : A+zjLzn9H97tfyIT
0x00000580 (    1408) : 43414141                            : CAAA
4

1 回答 1

1

发件人应用程序是 JMS(或 XMS)应用程序还是他们手工制作 JMS 标头?您使用的是哪个版本的 XMS .NET?使用 RFHUtil,

我发送了一条消息,其中包含您在上面提供的 JMS 文件夹数据,我看到 XMS .NET V8.0 工作正常。我还必须将消息类型设置为 jms_bytes。所以我想知道发件人应用程序是否正确设置了消息类型。如果没有消息类型,应用程序在接收消息时会出现类型转换错误。

于 2015-10-30T03:15:46.210 回答