Author |
Message
|
geoffbland |
Posted: Wed May 16, 2007 8:10 am Post subject: Phantom Messages. |
|
|
Newbie
Joined: 09 May 2007 Posts: 5
|
Has any one had a problem with "phantom" messages appearing on queues? About 1 in 500 messages I get either consists of entirely nulls (/0) or random mix up of previously received messages.
Typically we receive messages in batches of 10-50 of them and the "phantom" message appears before them.
So we may have something like this (4th="phantom")...
Time Data retrieved by readString()
21:18:02 <?xml version="1.0"?><amessage id="123"><some_data>...</some_data></amessage>
21:18:02 <?xml version="1.0"?><amessage id="124"><some_data>...</some_data></amessage>
21:18:02 <?xml version="1.0"?><amessage id="125"><some_data>...</some_data></amessage>
21:39:02 <?xml version="1.0"?><amessage id="125"><some_data>...</some_data></amessage> ome_data></amessage> sage> /amessage> ata></amessage>
21:39:02 <?xml version="1.0"?><amessage id="126"><some_data>...</some_data></amessage>
21:39:02 <?xml version="1.0"?><amessage id="127"><some_data>...</some_data></amessage>
Now the weird thing, our processing will rollback the "phantom" message so I'd expect to receive it again when I next do a get() but I don't it just "disappears".
The message options I am using are (MQC.MQGMO_NO_WAIT | MQC.MQGMO_SYNCPOINT | MQC.MQGMO_CONVERT | MQC.MQGMO_FAIL_IF_QUIESCING). No exceptions are thrown. On the "phantom" message a MQRC_NO_MSG_AVAILABLE is NOT indicated and getCurrentDepth() returns a number above zero.
MQ is 6.0.2.0. |
|
Back to top |
|
 |
Michael Dag |
Posted: Wed May 16, 2007 8:20 am Post subject: |
|
|
 Jedi Knight
Joined: 13 Jun 2002 Posts: 2607 Location: The Netherlands (Amsterdam)
|
I would put some debug code around the put's and the get's to see what goes in and what comes out... _________________ Michael
MQSystems Facebook page |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed May 16, 2007 7:33 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
usually a true "phantom" message appears in the qdepth but is not gettable.
I have experienced 2 types of phantom messages.
a) the ones that disappear on QMGR recycle
b) the ones that survive a QMGR recycle.
In case of b) they are mostly due to prepare commit (XA) which was followed by a disconnect. That transaction can be force committed or rolled back and should show up in dspmqtrn...
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
geoffbland |
Posted: Wed May 16, 2007 10:52 pm Post subject: |
|
|
Newbie
Joined: 09 May 2007 Posts: 5
|
Micheal - the sending code is from a third party whom we can't add debugging code to (but may be causing the problem). We have debugging code on the get()s - that's where the data above comes from.
fjb_saper, in your example, which "end" is the prepare/disconnect happening at, I assume you mean at the sender end? So what you are saying is that they prepare but never commit/rollback then do a disconnect. I can see the third party sender doing that - but have no control over their code.
How would I cope with what they are doing if they are unwilling to change their code? |
|
Back to top |
|
 |
Michael Dag |
Posted: Wed May 16, 2007 11:15 pm Post subject: |
|
|
 Jedi Knight
Joined: 13 Jun 2002 Posts: 2607 Location: The Netherlands (Amsterdam)
|
geoffbland wrote: |
How would I cope with what they are doing if they are unwilling to change their code? |
since you are able to reproduce the problem, but don't get any coorporation from the third party, to see if the problem is caused by their software, I would escalate to mgmt and demand assistance in analysing this problem... _________________ Michael
MQSystems Facebook page |
|
Back to top |
|
 |
|