Author |
Message
|
beth_carlin |
Posted: Mon Apr 09, 2007 8:31 am Post subject: Please confirm if this is a limitation of WebSphere MQSeries |
|
|
Acolyte
Joined: 08 Jun 2004 Posts: 64
|
I am able to use sender and receiver channels to xfer messages from queue manager A (on server 1) to queue manager B (on server 2).
but I cannot xfer messages from queue manager A (on server 1) to queue manager A (on server 2). In the second case, the two queue managers have the same name (therefore , the channel name is the same also). Please confirm if this is a limitation of WebSphere MQSeries V6 ?
I appreciate your support.
Beth |
|
Back to top |
|
 |
Vitor |
Posted: Mon Apr 09, 2007 9:06 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Wy would you want to have 2 queue managers of the same name on 2 different boxes?
It'd make your life so much more complex. Even if it worked.
If you explain your requirement a bit more, there may be another way to achieve your aim? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Michael Dag |
Posted: Mon Apr 09, 2007 9:28 am Post subject: Re: Please confirm if this is a limitation of WebSphere MQSe |
|
|
 Jedi Knight
Joined: 13 Jun 2002 Posts: 2607 Location: The Netherlands (Amsterdam)
|
beth_carlin wrote: |
In the second case, the two queue managers have the same name (therefore , the channel name is the same also). Please confirm if this is a limitation of WebSphere MQSeries V6 ? |
it's not a limitation of MQ, it's a limitation of your naming convention i.e. if you are using something like fromQMgr/toQmgr as channel name...
I agree with Vitor, why on earth do you want to have 2 QMgrs with the same name, within the same environment. _________________ Michael
MQSystems Facebook page |
|
Back to top |
|
 |
beth_carlin |
Posted: Mon Apr 09, 2007 11:05 am Post subject: Re: Please confirm if this is a limitation of WebSphere MQSe |
|
|
Acolyte
Joined: 08 Jun 2004 Posts: 64
|
Thanks you for your responses,
I already checked with an IBM I/T specialist about the second case and the specialist said that he is not sure if it can be done using the recommended naming conv for channel name.
He is trying to confirm with MQ IBM Support that bez the channel name is the same (fromQMgr.toQmgr ) therefore, it cannot be done xfering msgs
between two queue mgrs with same name using sender/receiver. However, he said that he cannot find anything in the IBM doc that said this is a limitation and he is not a mq admin type person.
IBM Support told the IBM I/T specialist that they are also trying to confirm with IBM Hursley if it is a limitation.
So in the meantime, I thought I check with the experts here.
In our environments, there is no cluster qmgr. There is no automatic fail over. There are 2 servers (one main and one backup) with same qgmr
and queues. The plan is this. There will be a scheduled cron job to send queues' data from primary server to backup server via the channels.
All the Java MQ Client apps access the primary server. If the primary server goes down, the operation team only needs to change the host name
of the backup server to be the primary server. And there will be no change for all the Java MQ Client applications.
This is of course dependent on if xfering as described above is possible.
There are some workarounds but they are not convenient. I am new here and I don't know why it was designed this way but It's not my job
to fix the design. It's my job to get this working with same qmgr name. If you know a way to do this, please let me know. If it is truly a limitation
with the channel naming convention and there is absolutely no way to xfer msgs using sender/receiver for 2 qmgrs having the same name, please
also let me know so I can inform my team lead to start working on the workaround.
Last edited by beth_carlin on Mon Apr 09, 2007 6:09 pm; edited 1 time in total |
|
Back to top |
|
 |
Michael Dag |
Posted: Mon Apr 09, 2007 11:14 am Post subject: |
|
|
 Jedi Knight
Joined: 13 Jun 2002 Posts: 2607 Location: The Netherlands (Amsterdam)
|
a naming convention is not in the product, it is a convention to name your channels.
you can call the channel from QMgrA to QMgrA simply CHANNEL_AA and it will work...  _________________ Michael
MQSystems Facebook page |
|
Back to top |
|
 |
kevinf2349 |
Posted: Mon Apr 09, 2007 12:13 pm Post subject: |
|
|
 Grand Master
Joined: 28 Feb 2003 Posts: 1311 Location: USA
|
Whilst it is possible to name the channel anything you want to and transfer messages it is still not a good design to have identically named queue managers in the same network and even more so when they are connected to a common queue manager.
Frankly I am amazed that an IBM specialist wouldn't know that channel names can be anything you want (within the usual MQ naming limitations). You could call one 'cat' and the one 'dog' if you really wanted....but not at my shop  |
|
Back to top |
|
 |
Michael Dag |
Posted: Mon Apr 09, 2007 1:07 pm Post subject: |
|
|
 Jedi Knight
Joined: 13 Jun 2002 Posts: 2607 Location: The Netherlands (Amsterdam)
|
Michael Dag wrote: |
a naming convention is not in the product, it is a convention to name your channels.
you can call the channel from QMgrA to QMgrA simply CHANNEL_AA and it will work...  |
using the same QmgrnameA in the remote Queue definition to QmgrA does not seem to work. Replace the QmgrA with QmgrBackup and on the remote queuemanager define a QmgrAlias for QmgrBackup to QmgrA
tested this configuration using channel name TO.BACKUP and it works _________________ Michael
MQSystems Facebook page |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Apr 09, 2007 1:13 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Right, you can't address messages to a remote qmgr that has the same name as the local qmgr.
How's the name resolution supposed to know which one you mean?
You might, possibly, be able to put the QMID into the Remote QMgr name... but probably not. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Michael Dag |
Posted: Mon Apr 09, 2007 1:32 pm Post subject: |
|
|
 Jedi Knight
Joined: 13 Jun 2002 Posts: 2607 Location: The Netherlands (Amsterdam)
|
it doesn't matter what you use as RQMNAME, as long as it matches the name of the QREMOTE on the other end that resets the RQMNAME back to QMgrA
or were you thinking of something without QmgrAlias applied? _________________ Michael
MQSystems Facebook page |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Apr 09, 2007 1:38 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
I was speculating that one might be able to use the QMID directly, and not as an alias.
I doubt it will work. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Michael Dag |
Posted: Mon Apr 09, 2007 1:56 pm Post subject: |
|
|
 Jedi Knight
Joined: 13 Jun 2002 Posts: 2607 Location: The Netherlands (Amsterdam)
|
|
Back to top |
|
 |
beth_carlin |
Posted: Mon Apr 09, 2007 2:59 pm Post subject: i got 2087 invalid remote q mgr name |
|
|
Acolyte
Joined: 08 Jun 2004 Posts: 64
|
Hellow Michael,
Thanks you for help...I ran these two scripts and when I tried to xfer msg from serv1 to serv2 , I got 2087 ...invalid qmgr name
/* for one server */
def qlocal(QmgrA) like(SYSTEM.DEFAULT.LOCAL.QUEUE) replace share usage(xmitq);
def channel(QmgrB.TO.QmgrA) chltype(SDR) trptype(tcp) conname('server1hostname(1414)') +
xmitq(QmgrA) replace descr('QmgrB to QmgrA sender channel');
def channel(QmgrA.TO.QmgrB) chltype(rcvr) trptype(tcp) replace;
def qremote('TO.QmgrA') like(SYSTEM.DEFAULT.REMOTE.QUEUE) xmitq(QmgrA) +
replace rname('FROM.QmgrB') rqmname('TESTWMQGRV6');
def qlocal('FROM.QmgrA') replace;
end
/* for the second server */
def qlocal(QmgrB) like(SYSTEM.DEFAULT.LOCAL.QUEUE) replace share usage(xmitq);
def channel(QmgrA.TO.QmgrB) chltype(SDR) trptype(tcp) conname('server2hostname(1414)') +
xmitq(QmgrB) replace descr('QmgrA to QmgrB sender channel ');
def channel(QmgrB.TO.QmgrA) chltype(rcvr) trptype(tcp) replace;
def qremote('TO.QmgrB') like(SYSTEM.DEFAULT.REMOTE.QUEUE) xmitq(QmgrB) +
replace rname('FROM.QmgrA') rqmname('TESTWMQGRV6');
def qlocal('FROM.QmgrB') replace;
end
Last edited by beth_carlin on Mon Apr 09, 2007 6:07 pm; edited 2 times in total |
|
Back to top |
|
 |
kevinf2349 |
Posted: Mon Apr 09, 2007 4:57 pm Post subject: |
|
|
 Grand Master
Joined: 28 Feb 2003 Posts: 1311 Location: USA
|
Which one failed or were both scripts run against the same queue manager? If the latter it won't work. You can't have channels with the same name even if they are different types of channels. This is because of the way that the MQ Objects are stored. They are keyed on the Object name. Type is a bit setting in the actual object itself. It is a little like trying to have a duplicate key in a database when the setting only allow for unique keys.
You could change the name of the channel. Channel names are meaningless to the application.
To be honest I don't think what you are trying to do will work. The problem will come when the queue manager tries to resolve the remote queue manager name.
What are you trying to achieve? Fail over? Workload balancing? Message duplication? There will probably be a far better way of doing what you want without having duplicate queue manager names in the network. |
|
Back to top |
|
 |
beth_carlin |
Posted: Mon Apr 09, 2007 6:15 pm Post subject: Re: i got 2087 invalid remote q mgr name |
|
|
Acolyte
Joined: 08 Jun 2004 Posts: 64
|
Hello Michael,
I read more about qmgr alias..It's working THANKS YOU
/* I added this */
def qremote(qmgrsev2) QMNAME(TESTWMQV6)
....
...
...
/* and */
def qremote(..)
replace rname.......... rqmname('qmgrsev2'); |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Apr 09, 2007 6:27 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
jefflowrey wrote: |
Right, you can't address messages to a remote qmgr that has the same name as the local qmgr.
How's the name resolution supposed to know which one you mean?
You might, possibly, be able to put the QMID into the Remote QMgr name... but probably not. |
You handle this quite easily with aliases.
On qmgr A create a remote alias (B) for the other qmgr A (A')
On qmgr A' create a remote alias (C) for the other qmgr A (A)
On qmgr A create a local alias C for A
On qmgr A' create a local alias B for A'
Now to send from A to A' send from A to B
To send from A' to A send from A' to C.
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|