Author |
Message
|
ramesh.govindaswamy |
Posted: Thu Jun 22, 2006 1:41 am Post subject: To communicate with a queue manager outside the cluster |
|
|
Apprentice
Joined: 25 Oct 2005 Posts: 42
|
Hi,
I am new to MQSeries So please bear with me.I am trying to communicate with a queue manager outside the cluster, one or more queue managers inside the cluster must act as a gateway.I am having QM1 in m/c1 and QM2,QM3 in m/c2.All Qmgrs comes under cluster and here QM1 and QM2 are Repoistary Qmgrs and QM3 is a gateway Qmgr.I am having CLUSQ1 in both QM1 and QM2 and through gateway qmgr i am able to put messages in the CLUSQ1.Here i am able to achieve load balancing.
Now i have created QM4 in m/c1 and it's not in cluster and qremote definiton for CLUSQ1 was created using cmd:
DEFINE QREMOTE(CLUSQ1) RNAME(CLUSQ1) RQMNAME(QM2) XMITQ(QM3)
and also i have created sender/receiver channel in QM4 to communicate with QM3.
When an application at QM4 issues an MQPUT call to put a message to CLUSQ1 the below exception occurs.
<<MQException thrown is : com.ibm.mq.MQException: MQJE001: Completion Code 2, Reason 2196>>
I have set only MQC.MQOO_OUTPUT in open options.
Please any one help me to solve this problem. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jun 22, 2006 1:58 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
For clarification, the sender/receiver in QM4 that points to QM3 is servicing the xmitq QM3 isn't it? I ask as reason code 2196 = MQRC_UNKNOWN_XMIT_Q and you don't refer to it. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
ramesh.govindaswamy |
Posted: Thu Jun 22, 2006 2:05 am Post subject: |
|
|
Apprentice
Joined: 25 Oct 2005 Posts: 42
|
Sorry vitor,
I couldn't able to understand. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jun 22, 2006 2:17 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
ramesh.govindaswamy wrote: |
Sorry vitor,
I couldn't able to understand. |
As well as defining the sender/receiver channels, have you defined an xmitq called QM3?
If you still couldn't able to understand, please post the definitions of the sender and receiver channels in QM4 that communicate with QM3  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
ramesh.govindaswamy |
Posted: Thu Jun 22, 2006 2:42 am Post subject: |
|
|
Apprentice
Joined: 25 Oct 2005 Posts: 42
|
On QM4 I have created the following sender/reciever channel.
DEFINE CHANNEL(QM4.SDR) CHLTYPE(SDR) XMITQ(TRANQ3) CONNAME('<ip(port)>') DESCR('Sender channel for queue manager QM4')
DEFINE CHANNEL(QM4.RCVR) CHLTYPE(RCVR) DESCR('Receiver channel for queue manager QM4')
DEFINE QLOCAL(TRANQ3) USAGE(XMITQ)
So i have to put TRANQ3 in the XMITQ of QREMOTE defintion .Am i right?
DEFINE QREMOTE(CLUSQ1) RNAME(CLUSQ1) RQMNAME(QM2) XMITQ(QM3) |
|
Back to top |
|
 |
vennela |
Posted: Thu Jun 22, 2006 2:53 am Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
Also for this kind of clustering do not give RQMNAME.
DEFINE QREMOTE(CLUSQ1) RNAME(CLUSQ1) XMITQ(TRANQ3) |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jun 22, 2006 3:09 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
ramesh.govindaswamy wrote: |
On QM4 I have created the following sender/reciever channel.
DEFINE CHANNEL(QM4.SDR) CHLTYPE(SDR) XMITQ(TRANQ3) CONNAME('<ip(port)>') DESCR('Sender channel for queue manager QM4')
DEFINE CHANNEL(QM4.RCVR) CHLTYPE(RCVR) DESCR('Receiver channel for queue manager QM4')
DEFINE QLOCAL(TRANQ3) USAGE(XMITQ)
So i have to put TRANQ3 in the XMITQ of QREMOTE defintion .Am i right?
DEFINE QREMOTE(CLUSQ1) RNAME(CLUSQ1) RQMNAME(QM2) XMITQ(QM3) |
I don't see what you mean by "I have put TRANQ3 in the XMITQ of QREMOTE definition". I think this is where your "unknown xmitq error is coming from"....  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
ramesh.govindaswamy |
Posted: Thu Jun 22, 2006 4:06 am Post subject: |
|
|
Apprentice
Joined: 25 Oct 2005 Posts: 42
|
Thanz all...
Now the 2196 error has solved.
When an application at QM4 issues an MQPUT call to put a message to CLUSQ1,all the messages were got stored in TRANQ3.It's not get routed to QM1 or QM2 through Gateway Qmgr.Actually i want to achieve load balancing
What could be the problem?
Please any one help me to solve this problem |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jun 22, 2006 4:13 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
ramesh.govindaswamy wrote: |
all the messages were got stored in TRANQ3. |
If all the messages are sitting in the xmitq, the channel's gone funny IMHO...
Have you changed the remote queue definition as vennela suggested? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
ramesh.govindaswamy |
Posted: Thu Jun 22, 2006 4:28 am Post subject: |
|
|
Apprentice
Joined: 25 Oct 2005 Posts: 42
|
The thing is if I create QRemote with RQMNAME(QM1) then all the messages are routed to QM1 alone.(No load balancing occurs)
DEFINE QREMOTE(CLUSQ1) RNAME(CLUSQ1) RQMNAME(QM1) XMITQ(TRANQ3)
If I create QRemote with RQNAME(QM3)(ie Gateway Qmgr) then message are not ruouted to QM1 or QM2 but channel is up and running.
DEFINE QREMOTE(CLUSQ1) RNAME(CLUSQ1) RQMNAME(QM3) XMITQ(TRANQ3)
If I create QRemote with out RQNAME() then it's throwing Exception
<<MQJE001: Completion Code 2, Reason 2087>> |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jun 22, 2006 5:01 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
ramesh.govindaswamy wrote: |
If I create QRemote with RQNAME(QM3)(ie Gateway Qmgr) then message are not ruouted to QM1 or QM2 but channel is up and running.
DEFINE QREMOTE(CLUSQ1) RNAME(CLUSQ1) RQMNAME(QM3) XMITQ(TRANQ3)
|
So in this situation your messages sit on the xmitq and are not transmitted, are not placed on any dead letter queues, just sit there unmoving even though the channel is up and running? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
ramesh.govindaswamy |
Posted: Thu Jun 22, 2006 5:12 am Post subject: |
|
|
Apprentice
Joined: 25 Oct 2005 Posts: 42
|
All the messages were moved to Dead Lead Q. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jun 22, 2006 7:53 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
What is the reason code given in the dead letter header??  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
vennela |
Posted: Thu Jun 22, 2006 7:56 am Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
I have one suggestion
Why not name the XMITQ same as the REMOTE QMGR
On QM4 create a XMITQ called QM3
Alter the channel to use the new XMITQ |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Jun 22, 2006 10:11 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
If you are moving messages from a non clustered qmgr to a cluster gateway qmgr and want load balancing, set up a cluster alias on the gateway. This should do it.
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|