Author |
Message
|
Crisps |
Posted: Mon Apr 17, 2006 11:54 am Post subject: 2001 : MQRC_ALIAS_BASE_Q_TYPE_ERROR |
|
|
Newbie
Joined: 17 Apr 2006 Posts: 1
|
Hi,
I am having some trouble with MQ when using alias queues. Here is the rough setup I am using
QA.SEND --> alias Q points to QR.SEND
QR.SEND --> remote Q, point to another queue manager (clustered)
Whe I try and open the QR.SEND Q in my program everything works fine, however when I try to open the alias Q I get reason code 2001.
If you change the setup so that the alis Q uses a base Q then it also works fine.
Any Idea why this might be?
Thanks, |
|
Back to top |
|
 |
kevinf2349 |
Posted: Mon Apr 17, 2006 12:04 pm Post subject: |
|
|
 Grand Master
Joined: 28 Feb 2003 Posts: 1311 Location: USA
|
You may need to post the output from a display of the queues for us to help you.
Are you sure you have the queue names specified correctly? (Especially check the case) |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Apr 17, 2006 4:36 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
MQRC_ALIAS_BASE_Q_TYPE_ERROR
You should never alias a queue that is not defined locally to the qmgr you are connected to.
If you need to alias a clusterq, connect to the qmgr the clusterq resides on, create the alias (like you would for a non clustered q) and share said alias in the cluster.
Note I would not create a clustered alias if the base q is not clustered. Didn't say it wasn't possible but I have never attempted it.
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
HubertKleinmanns |
Posted: Wed Apr 19, 2006 11:23 pm Post subject: |
|
|
 Shaman
Joined: 24 Feb 2004 Posts: 732 Location: Germany
|
fjb_saper wrote: |
MQRC_ALIAS_BASE_Q_TYPE_ERROR
You should never alias a queue that is not defined locally to the qmgr you are connected to.
If you need to alias a clusterq, connect to the qmgr the clusterq resides on, create the alias (like you would for a non clustered q) and share said alias in the cluster.
Note I would not create a clustered alias if the base q is not clustered. Didn't say it wasn't possible but I have never attempted it.
Enjoy  |
fjb_saper,
I disagree, it is a very common method, to create a clustered alias q which points to a clustered, not locally defined q. When you use overlapping clusters, than you also need to define an alias q, defined in cluster 1, which points to another q (alias, local, remote), which is defined in cluster 2. In this case you may have an alias q, which points to another alias q on another system.
With the scenario above I connect several different clusters without having any remote q definition. BUT regard, that an alias, wich point to a base queue defined not locally, MUST BE defined with DEFBIND(NOTFIXED)
Oterwise, when a base q is already clustered, why do yo want to create a clustered alias too? _________________ Regards
Hubert |
|
Back to top |
|
 |
EddieA |
Posted: Thu Apr 20, 2006 7:06 am Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
Quote: |
In this case you may have an alias q, which points to another alias q on another system |
No. An Alias can never point to another alias. This is one of the conditions that cause the error the OP encountered.
Cheers, _________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
LuisFer |
Posted: Thu Apr 20, 2006 10:29 am Post subject: |
|
|
 Partisan
Joined: 17 Aug 2002 Posts: 302
|
EddieA wrote: |
Quote: |
In this case you may have an alias q, which points to another alias q on another system |
No. An Alias can never point to another alias. This is one of the conditions that cause the error the OP encountered.
Cheers, |
I have an QA(NSK) pointed to a Cluster QA(6 z/OS QMgrs) working fine.
Code: |
8 : DIS QA(AP2.REAL.ACQUIRER.ATM.PET) ALL
AMQ8409: Display Queue details.
DESCR(Encolar TX al IMS via Bridge-OTMA - ACQUIRER.ATM)
TARGQ(IMS1NSKQ01IN) CLUSTER( )
CLUSNL( ) QUEUE(AP2.REAL.ACQUIRER.ATM.PET)
ALTDATE(2003-11-22) ALTTIME(02.25.58)
GET(ENABLED) PUT(ENABLED)
DEFPRTY(0) DEFPSIST(NO)
SCOPE(QMGR) DEFBIND(NOTFIXED)
TYPE(QALIAS)
MQSC >DIS QCLUSTER(IMS1NSKQ01IN) ALL
9 : DIS QCLUSTER(IMS1NSKQ01IN) ALL
AMQ8409: Display Queue details.
DESCR(Encolar tx al IMS via bridge-OTMA(TANDEM))
CLUSTER(IMSNSK) QUEUE(IMS1NSKQ01IN)
CLUSQMGR(QC41) QMID(QC41.B5E65FBB6EE48868)
CLUSDATE(2003-10-19) CLUSTIME(05.46.15)
ALTDATE(2006-04-17) ALTTIME(03.55.51)
CLUSQT(QALIAS) TYPE(QCLUSTER)
PUT(ENABLED) DEFPRTY(0)
DEFPSIST(NO) DEFBIND(NOTFIXED)
......
|
|
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Apr 20, 2006 2:28 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Quote: |
Otherwise, when a base q is already clustered, why do yo want to create a clustered alias too? |
Geographic separation. Make sure that what gets posted to the ALIAS queue only hits part of the cluster. ( set up 5 instances of a queue in the cluster and only create a clustered alias for 3 of them. Post to the clustered alias)
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
Paul D |
Posted: Mon Aug 14, 2006 7:11 pm Post subject: |
|
|
 Master
Joined: 16 May 2001 Posts: 200 Location: Green Bay Packer Country
|
Can I get some clarification on this thread. I'm trying to use an alias queue method for securing a clustered queue. This is as recommended in the MQ Clustering Manual v5.3, pages 82 and 83.
Quote: |
It is possible to avoid the need to give general access to all cluster resources and
+Put access to the transmit queue. You do this by defining alias or remote queue
definitions on your machine which resolve to queues in the cluster, and giving the
appropriate authority for access to these instead of the cluster transmit queue. For
example, suppose there is a queue called Q1 in the clusters to which your queue
manager CORK belongs. If you
DEFINE QALIAS(Q1) TARGQ(Q1) DEFBIND(NOTFIXED)
and then
setmqaut -m CORK -t qmgr -p GUEST +connect
setmqaut -m CORK -t queue -n Q1 -p GUEST -all +put
The user GUEST would only be able to send messages to the cluster queue Q1.
Note that it is not possible to use the same technique for a queue manager alias,
because this requires access to the underlying
SYSTEM.CLUSTER.TRANSMIT.QUEUE queue. |
I have the "client side" alias queue as a non-clustered queue on CORK and the "service side" clustered queue on another queue manager in the cluster. I still get the 2001 error. I've tried this with both the alias queue as not clustered and also clustered. Both produce the 2001. Any ideas as to what I'm missing? _________________ Thanks!!!
Paul D |
|
Back to top |
|
 |
Paul D |
Posted: Thu Aug 17, 2006 5:40 am Post subject: |
|
|
 Master
Joined: 16 May 2001 Posts: 200 Location: Green Bay Packer Country
|
We just figured this out. The alias can certainly open a clustered queue that exists in the QM's cluster. Also, that alias queue does not need to be clustered. We just needed to make sure the open options on the MQOPEN call specified not fixed. That got rid of the 2001 for us. _________________ Thanks!!!
Paul D |
|
Back to top |
|
 |
|