ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » Mainframe, CICS, TXSeries » Mainframe S/390 matching on MSG_ID or CORREL_ID

Post new topic  Reply to topic
 Mainframe S/390 matching on MSG_ID or CORREL_ID « View previous topic :: View next topic » 
Author Message
Amazer
PostPosted: Sun Jun 26, 2011 4:38 am    Post subject: Mainframe S/390 matching on MSG_ID or CORREL_ID Reply with quote

Novice

Joined: 10 Feb 2009
Posts: 24

Hi,

I am sending a request from the Mainframe to the broker which is on a Windows platform. The response is received in another queue on the mainframe which I am trying to match with the request msg-id or correl-id.

The mainframe is running MQ ver 5.2 and the broker is ver 6.1 with MQ ver 7.0. I am using COBOL on the mainframe. When I specified the following:
COMPUTE MQGMO-OPTIONS = MQGMO-WAIT +
MQGMO-ACCEPT-TRUNCATED-MSG +
MQGMO-FAIL-IF-QUIESCING.
and
COMPUTE MQGMO-MATCHOPTIONS = MQMO-MATCH-CORREL-ID

and tried the GET command with a wait of 60 secs, I did not receive a matching response. I checked that the msg-id and correl-ids were same by displaying the hex code in my application log. I also tried matching on msg-id. That too failed. Then I tried just getting the response from the queue (without any matching parameters), but that too gives me a 2033 error.

It waits the full one minute and does not return any response even though there is a response in the queue!!

What have I missed out?

Please advise.

- Amazer
Back to top
View user's profile Send private message
Amazer
PostPosted: Sun Jun 26, 2011 4:45 am    Post subject: Reply with quote

Novice

Joined: 10 Feb 2009
Posts: 24

When I wanted to get the first response from the queue, I moved the following as well:

MOVE MQMI-NONE TO MQMD-MSGID.
MOVE MQCI-NONE TO MQMD-CORRELID.

COMPUTE MQGMO-MATCHOPTIONS = MQMO-NONE.

Still didn't help.

- Amazer
Back to top
View user's profile Send private message
bruce2359
PostPosted: Sun Jun 26, 2011 4:54 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9469
Location: US: west coast, almost. Otherwise, enroute.

Amazer wrote:
When I wanted to get the first response from the queue, I moved the following as well:

MOVE MQMI-NONE TO MQMD-MSGID.
MOVE MQCI-NONE TO MQMD-CORRELID.

COMPUTE MQGMO-MATCHOPTIONS = MQMO-NONE.

Still didn't help.

- Amazer

Try omitting the COMPUTE MQGMO-MATCHOPTIONS = MQMO-NONE statement to see if your app successfully gets a (any) message.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
Amazer
PostPosted: Sun Jun 26, 2011 9:54 pm    Post subject: Reply with quote

Novice

Joined: 10 Feb 2009
Posts: 24

I tried that but that didn't work as well.

Thanks.

- Amazer


Last edited by Amazer on Mon Jun 27, 2011 12:03 pm; edited 2 times in total
Back to top
View user's profile Send private message
zpat
PostPosted: Sun Jun 26, 2011 10:31 pm    Post subject: Reply with quote

Jedi Council

Joined: 19 May 2001
Posts: 5866
Location: UK

Step 1 - examine the request and response message on the queue with MO71 (or explorer) - ensure they really are as you expect before they are consumed (mark the queue get inhibited to trap them).

Not just the same value in both id fields (not actually necessary) but response using the msgid from your request message, and not a new one (for setting the correlid).

Step 2 - ensure your receiving program clears the MQMD.msgid field before trying to MQGET match on correlid. In the "old days", setting either of these two values caused matching to occur. Set the value to be matched in the MQMD.correlid field before doing the MQGET.

Step 3- remove any unconditional gets, you want this to work with multiple requesters at the same time (in case you ever need this).

Step 4 - index the queue by correlid if you have a lot of multiple usage.

Step 5 - make sure response messages have an expiry value (maybe 30 minutes) so that orphaned ones do not hang around forever.
Back to top
View user's profile Send private message
Amazer
PostPosted: Sun Jun 26, 2011 11:28 pm    Post subject: Reply with quote

Novice

Joined: 10 Feb 2009
Posts: 24

Thanks to all for your valuable comments.

I found the problem. I had forgotten to commit after the PUT operation.

- Amazer
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » Mainframe, CICS, TXSeries » Mainframe S/390 matching on MSG_ID or CORREL_ID
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.