| 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: 20768 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 | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | 
		    
		   |