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 » General Discussion » Problem with SYTEM.COMMAND.REPLY.MODEL queue

Post new topic  Reply to topic
 Problem with SYTEM.COMMAND.REPLY.MODEL queue « View previous topic :: View next topic » 
Author Message
mqrules
PostPosted: Wed Feb 08, 2006 10:42 am    Post subject: Problem with SYTEM.COMMAND.REPLY.MODEL queue Reply with quote

Centurion

Joined: 01 Jun 2005
Posts: 100
Location: US

Hi all,

Z/OS MQ 5.3.

I have 2 qmgrs MQA1 and MQA2. they are not clustered. There are sdr-rcvr channels between them. Transmission queues are Persistent. As there are a lot of orphaned qmgr.CSQOREXX.* permanent reply queues on both qmgrs, I modified the SYSTEM.COMMAND.REPLY.MODEL from PERM to TEMP dynamic. After this change I could not get to MQA2 via MQA1 and vice versa in CSQOREXX (by putting an "*" in the 'Action Queue Manger " filed. Reply messages from the commands went to the DLQ with the reason being that Persistent messages could not be put on Temp Dynamic queue. I figured the utility program inherits the persistence of the xmit queue (which is persistent).

I tried to do some testing in the test environment. I was expecting that if I changed the Default persistence to non-persistent, I will be OK. However, I don't have 2 qmgrs in the test environent that are not clustered. So, here is the environmnet I did the testing:

QMB1 and QMB2 are in a cluster. They also have the point-to-point channels:
On QMB1: SDR channel : QMB1.QMB2
xMIT Q: QMB2 (Default persistence is Persistent)

On QMB2: SDR channel : QMB2.QMB1
xMIT Q: QMB1 (Default persistence is Persistent)

SCTQs are also Persistent.

In this scenario, I expected the manually defined channels to be used (as opposed ot the cluster ones).I modified the SYSTEM.COMMAND.REPLY.MODEL from PERM to TEMP dynamic on both qmgrs. This change had no impact, in that, in CSQOREXX I can get to one qmgr from the other (by putting an "*" the "Action queue manager" field of the panel). How come? I expected the reply messages to go to the DLQ? I think I am missing something. Any ideas would be much appreciated.

TIA

mr
Back to top
View user's profile Send private message
HubertKleinmanns
PostPosted: Wed Feb 08, 2006 10:55 am    Post subject: Reply with quote

Shaman

Joined: 24 Feb 2004
Posts: 732
Location: Germany

What you use is Request / Reply. In such cases the reply messages are addressed to a QMgr somewhere in the network. In a MQ cluster environment a QMgr "knows" about other cluster QMgrs because of the cluster mechanism. So MQ decides, which way to go, to reach the target QMgr.

For example you could create a remote queue without having a manually defined XmitQ and MQ will put the message to the cluster XmitQ.

Does this answer your question?
_________________
Regards
Hubert
Back to top
View user's profile Send private message Visit poster's website
mqrules
PostPosted: Wed Feb 08, 2006 11:06 am    Post subject: Reply with quote

Centurion

Joined: 01 Jun 2005
Posts: 100
Location: US

Hubert,

This is in the mainframe CSQOREXX panels where you admin the objects. Forinstance you connect to MQB1 and specify Target qmgr = MQB1, and Action Qmgr = *. Becasue there are channels in between MQB1 and MQB2, when I want to say display qlocals I specify Obejct Type= Qlocal, Obejct Name= *, and I get all the qlocals for both MQB1 and MQB2.

MR
Back to top
View user's profile Send private message
HubertKleinmanns
PostPosted: Wed Feb 08, 2006 11:31 am    Post subject: Reply with quote

Shaman

Joined: 24 Feb 2004
Posts: 732
Location: Germany

MR,

the CSQOREXX panels first create a dynamic queue. Then the panels set up a command message and add the dynamic queue into the ReplyToQmgr field of the MQMD. This command message has to be send to the target QMgr and put to the queue SYSTEM.COMMAND.INPUT. A command server (or however it's named on z/OS) has to read this message, to execute the command and put the output to the reply queue (the dynamic queue above). This answer is a reply message and though it's addressed first to the origin QMgr (where you run your ISPF panel). MQ finds a way (cluster channel), because both QMgrs are member of the same cluster. When the message arrives on the origin QMgr, it is put to the dynamic queue created above.

You have a timeout, which is set in your CSQOREXX panel, which defines, how long the panel waits for the reply message. If this timeout exceeds before the answer arrives, the reply queue will be deleted (when it is temporary dynamic) and the request is put to the DLQ. If the queue is permanent dynamic, the queue will stay alive and the requests are put to this queue - but nobody is interessted to read these messages.
_________________
Regards
Hubert
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General Discussion » Problem with SYTEM.COMMAND.REPLY.MODEL queue
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.