Why doesn’t the following create the LOCAL quue definition? I see a remote queue definition with the name REMOTE_QUEUE? Do I need to create another DEFINE QLOCAL for LOCAL_QUEUE?
DEFINE QREMOTE (LOCAL_QUEUE) RNAME (REMOTE_QUEUE)
RQMNAME(REMOTE_QUEUE_MANAGER) XMITQ(REMOTE_QUEUE_MANAGER) REPLACE
When you issue
DEFINE QREMOTE(LOCAL_QUEUE)you are making a routing entry that tells WMQ “any time someone on this QMgr opens a queue namedLOCAL_QUEUEthen instead, use these values for the queue name, the QMgr name and, if specified, resolve to this XMitQ”. This entry shows up when you list all the defined queues but it isn’t a queue that can hold messages. The only way to create a queue that can hold messages isDEFINE QLOCAL.The next step is to define the actual target queue where messages can land. Defining the QRemote on the local QMgr does not also define the QLocal on the target QMgr. To do that, you would need to sign onto the target QMgr with Explorer or connect on the command line using
runmqscand issue theDEFINE QLOCAL(REMOTE_QUEUE)there.It is a bit unfortunate that your example used names like
REMOTE_QUEUEbecause onREMOTE_QUEUE_MANAGERit is actually a QLocal.FYI – totally unrelated but you might want to consider using dots as name separators like
REMOTE.QUEUEinstead ofREMOTE_QUEUEsince WMQ recognizes these as node separators and authorization wildcards respect them.