|  | 
 
  
    | RSS Feed - WebSphere MQ Support | RSS Feed - Message Broker Support |  
 
  
	|    |  |  
  
	| put/get with correlation ID | « View previous topic :: View next topic » |  
  	| 
		
		
		  | Author | Message |  
		  | jmac | 
			  
				|  Posted: Mon Oct 08, 2001 11:11 am    Post subject: |   |  |  
		  |  Jedi Knight
 
 
 Joined: 27 Jun 2001Posts: 3081
 Location: EmeriCon, LLC
 
 | 
			  
				| I am trying to put a message on a queue with a correlation ID, then get the reply message with the same correlation ID.  I am not having any luck.  My code is basically this: 
 MQMessage message = new MQMessage();
 
 message.userId = m_strMQUserID;
 message.writeString(msgPart1.toString());
 if ( m_boolAwaitReply )
 {
 message.replyToQueueManagerName = m_strQueueManagerReply;
 message.replyToQueueName = m_strQueueReply;
 m_strCorrelID = "1111111111111111111111111111111111";
 message.correlationId = m_strCorrelID.getBytes();
 }
 MQPutMessageOptions pmo = new MQPutMessageOptions( );
 //  The SET_IDENTITY_CONTEXT allows you to specify a userid other than
 //  the logged on user
 pmo.options =  MQC.MQPMO_SET_IDENTITY_CONTEXT ;
 
 // put the message on the queue
 this.xmlQueue.put(message, pmo);
 
 ********  Now the get:
 
 MQMessage currentMessage = new MQMessage();
 m_strCorrelID = "1111111111111111111111111111111112";
 currentMessage.correlationId = m_strCorrelID.getBytes();
 MQGetMessageOptions gmo = new MQGetMessageOptions( );
 gmo.options      = MQC.MQGMO_WAIT;
 gmo.waitInterval = MQC.MQWI_UNLIMITED;
 mqwfQ.get( currentMessage, gmo );
 
 
 ------------------
 As you can see I have intentionally changed the correlid.  I would expect that this should now wait forever, since there is no message with that particular correlation ID.  IT DOES NOT, I get the reply.  Obviously I am doing something silly, I just cant see it.
 
 THANKS
 
 
 _________________
 John McDonald
 SYSCOM Inc.
 IBM Certified Solutions Expert -
 MQSeries Workflow
 
 [ This Message was edited by: jmac on 2001-10-08 12:13 ]
 
 [ This Message was edited by: jmac on 2001-10-08 12:14 ]
 |  |  
		  | Back to top |  |  
		  |  |  
		  | bduncan | 
			  
				|  Posted: Mon Oct 08, 2001 11:42 am    Post subject: |   |  |  
		  | Padawan
 
 
 Joined: 11 Apr 2001Posts: 1554
 Location: Silicon Valley
 
 | 
			  
				| John, You are specifying what value you want to match against, but it doesn't look like you are instructing the queue manager to actually match against CorrelId on the MQGET. Here is an exerpt from the Application Programming Reference:
 
 For the  MQGET  call, MsgId is one of the five fields that can be used to select a particular message to be retrieved from the queue. Normally the MQGET call returns the next message on the queue, but if a particular message is required, this can be obtained by specifying one or more of the five selection criteria, in any combination; these fields are:
 
 MsgId
 CorrelId
 GroupId
 MsgSeqNumber
 Offset
 
 The application sets one or more of these field to the values required, and then sets the corresponding MQMO_* match options in the MatchOptions field in MQGMO to indicate that those fields should be used as selection criteria. Only messages that have the specified values in those fields are candidates for retrieval. The default for the MatchOptions field (if not altered by the application) is to match both the message identifier and the correlation identifier.
 
 
 So I think if you just specify MQMO_MATCH_CORREL_ID in the MatchOptions field of the MQGMO structure, you should get the message you requested.
 
 
 
 _________________
 Brandon Duncan
 IBM Certified MQSeries Specialist
 MQSeries.net forum moderator
 
 [ This Message was edited by: bduncan on 2001-10-08 12:42 ]
 |  |  
		  | Back to top |  |  
		  |  |  
		  | jmac | 
			  
				|  Posted: Mon Oct 08, 2001 1:10 pm    Post subject: |   |  |  
		  |  Jedi Knight
 
 
 Joined: 27 Jun 2001Posts: 3081
 Location: EmeriCon, LLC
 
 | 
			  
				| Brandon: 
 Added the following line to my get code...
 
 
 gmo.matchOptions = MQC.MQMO_MATCH_CORREL_ID;
 
 
 THANKS.... I new it would be a simple fix.
 
 
 |  |  
		  | Back to top |  |  
		  |  |  
		  |  |  |  
  
	|    |  | Page 1 of 1 |  
 
 
  
  	| 
		
		  | 
 
 | You cannot post new topics in this forum You cannot reply to topics in this forum
 You cannot edit your posts in this forum
 You cannot delete your posts in this forum
 You cannot vote in polls in this forum
 
 |  |  |  |