Author |
Message
|
Boomn4x4 |
Posted: Fri Aug 24, 2012 5:51 am Post subject: Alias queue to a cluster queue |
|
|
Disciple
Joined: 28 Nov 2011 Posts: 172
|
I am trying to hop a message through 3 QMGRs with one PUT. To a remote queue, to an alias queue, to a local queue. The alias queue and local queue are shared in a cluster.
If I put a test message onto the remote queue on the first QMGR, it goes into the DLQ on the second QMGR. If I put a test message on the Alias queue on the second QMGR, it goes into the DLQ on the third QMGR.
Any idea what I am doing wrong, or if this is even possible. I read in the documentation that:
"A local queue (see Defining a local queue).
A local definition of a remote queue (see Creating a local definition of a remote queue).
A topic."
Does this NOT include a queue shared in a cluster? |
|
Back to top |
|
 |
Vitor |
Posted: Fri Aug 24, 2012 5:54 am Post subject: Re: Alias queue to a cluster queue |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Boomn4x4 wrote: |
Does this NOT include a queue shared in a cluster? |
Potentially not; you may need more work to get name resolution in a cluster as you want it.
Your first step should be to examine the DLH to see why they ended up on the DLQ (i.e. what made them undeliverable). This will lead you to what additional objects you need.
My initial guess (and I emphasise guess) is you need a cluster alias as well. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Aug 24, 2012 6:03 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Okay, so - QMGRA - hosts QREMOTE and is not in the cluster
- QMgrC hosts QLOCAL, and is in the cluster
QmgrB and QmgrC are both in the cluster.
QMGR B is the man-ager in the middle.
The QREMOTE specifies RQNAME(MyQueueAlias) and RQMNAME(QMGRB).
The QALIAS specifies TARGET(MyQueueLocal).
Is the QALIAS defined on QmgrB, or not? It sounds like it is. It shouldn't be.
It should be defined on QmgrC and point to the local queue, and the local queue should NOT be shared in the cluster.
Last edited by mqjeff on Fri Aug 24, 2012 6:05 am; edited 1 time in total |
|
Back to top |
|
 |
Boomn4x4 |
Posted: Fri Aug 24, 2012 6:04 am Post subject: Re: Alias queue to a cluster queue |
|
|
Disciple
Joined: 28 Nov 2011 Posts: 172
|
Vitor wrote: |
Your first step should be to examine the DLH to see why they ended up on the DLQ (i.e. what made them undeliverable). This will lead you to what additional objects you need.
My initial guess (and I emphasise guess) is you need a cluster alias as well. |
Thank you... didn't even know the error was in the DLH..
Getting MQRC_ALIAS_BASE_Q_TYPE_ERROR
Documentation says :
"An MQOPEN or MQPUT1 call was issued specifying an alias queue as the destination, but the BaseQName in the alias queue definition resolves to a queue that is not a local queue, a local definition of a remote queue, or a cluster queue."
... so, that would lead me to believe that the cluster queue should work fine. And the alias is pointed to, what I believe to be a correct clustered queue.
Back to the head scratching.... |
|
Back to top |
|
 |
exerk |
Posted: Fri Aug 24, 2012 6:07 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
Just for clarity, are you trying to?
QMGR_A (non-clustered) -> QMGR_B (gateway in cluster) -> QMGR_C (in cluster) _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys. |
|
Back to top |
|
 |
bruce2359 |
Posted: Fri Aug 24, 2012 6:12 am Post subject: Re: Alias queue to a cluster queue |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
Boomn4x4 wrote: |
Vitor wrote: |
Your first step should be to examine the DLH to see why they ended up on the DLQ (i.e. what made them undeliverable). This will lead you to what additional objects you need.
My initial guess (and I emphasise guess) is you need a cluster alias as well. |
Thank you... didn't even know the error was in the DLH..
Getting MQRC_ALIAS_BASE_Q_TYPE_ERROR
Documentation says :
"An MQOPEN or MQPUT1 call was issued specifying an alias queue as the destination, but the BaseQName in the alias queue definition resolves to a queue that is not a local queue, a local definition of a remote queue, or a cluster queue."
... so, that would lead me to believe that the cluster queue should work fine. And the alias is pointed to, what I believe to be a correct clustered queue.
Back to the head scratching.... |
This means precisely and exactly that the object name on the 3rd qmgr is a QAlias without a valid target queue attribute. _________________ I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live. |
|
Back to top |
|
 |
Vitor |
Posted: Fri Aug 24, 2012 6:12 am Post subject: Re: Alias queue to a cluster queue |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Boomn4x4 wrote: |
Back to the head scratching.... |
Stop scratching for a moment, and read @mqjeff's post. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Boomn4x4 |
Posted: Fri Aug 24, 2012 6:14 am Post subject: |
|
|
Disciple
Joined: 28 Nov 2011 Posts: 172
|
exerk wrote: |
Just for clarity, are you trying to?
QMGR_A (non-clustered) -> QMGR_B (gateway in cluster) -> QMGR_C (in cluster) |
Yes
bruce2359 wrote: |
This means precisely and exactly that the object name on the 3rd qmgr is a QAlias without a valid target queue attribute. |
The object on the 3rd qmgr is a local queue shared in a cluster with the 2nd qmgr. |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Aug 24, 2012 6:15 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
If you want to use a QALIAS, it has to be on the same qmgr as the object it points to.
If you want to define an object on QMGRB, it has to be a QREMOTE. |
|
Back to top |
|
 |
bruce2359 |
Posted: Fri Aug 24, 2012 6:31 am Post subject: Re: Alias queue to a cluster queue |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
Boomn4x4 wrote: |
If I put a test message onto the remote queue on the first QMGR, it goes into the DLQ on the second QMGR. If I put a test message on the Alias queue on the second QMGR, it goes into the DLQ on the third QMGR.
|
Sorry, I misread.
Please read about name resolution in the WMQ InfoCenter (or the equivalent manuals). Name resolution takes every time your app (or the qmgr, on behalf of your app) encounters an object name.
Thus, on the first qmgr, the queue you name must match a local object definition. The same thing takes place when the message arrives on the second and third qmgr.
Look at the ReasonCode in the DLH on whichever qmgr the message ends up in the DLQ. The ReasonCode needs to be resolved on that qmgr with an appropriate object definition. _________________ I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live. |
|
Back to top |
|
 |
Boomn4x4 |
Posted: Fri Aug 24, 2012 6:39 am Post subject: |
|
|
Disciple
Joined: 28 Nov 2011 Posts: 172
|
mqjeff wrote: |
If you want to use a QALIAS, it has to be on the same qmgr as the object it points to.
If you want to define an object on QMGRB, it has to be a QREMOTE. |
Thank you, that's what I needed to hear. I changed the QALIAS to a QREMOTE and (and set up the channels) and I'm working as desired.
So, if I'm understanding all of this correctly, there is 0 value in having a cluster in this scenario? In that QALIAS's don't work in clusters? |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Aug 24, 2012 6:41 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Boomn4x4 wrote: |
So, if I'm understanding all of this correctly, there is 0 value in having a cluster in this scenario? In that QALIAS's don't work in clusters? |
You are failing to understand this correctly.
As I said, IF YOU WANT to use a QALIAS, it must be on the same queue manager that it points to.
As I said, IF the QALIAS is defined on QMGRB, it should not be. It should be defined on QMGRC and the QLOCAL should *not* be shared in the cluster.
As I said, IF YOU WANT to define an object on QmgrB, it MUST be a Qremote.
You can slice this bread in several ways. You've merely chosen to try to stack a piece sliced lengthwise against a piece sliced width-wise, and that leaves you with jelly on your hands. |
|
Back to top |
|
 |
exerk |
Posted: Fri Aug 24, 2012 6:42 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
Boomn4x4 wrote: |
So, if I'm understanding all of this correctly, there is 0 value in having a cluster in this scenario? In that QALIAS's don't work in clusters? |
QALIAS does work in a cluster, but the target queue has to be resolvable from the queue manager containing it if the TARGQ is not local...
EDIT: ...and I can see that what I've put is contradictory to what mqjeff put, so to prevent any further confusion I'll now shut up! _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys.
Last edited by exerk on Fri Aug 24, 2012 6:44 am; edited 1 time in total |
|
Back to top |
|
 |
bruce2359 |
Posted: Fri Aug 24, 2012 6:43 am Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
Boomn4x4 wrote: |
mqjeff wrote: |
If you want to use a QALIAS, it has to be on the same qmgr as the object it points to.
If you want to define an object on QMGRB, it has to be a QREMOTE. |
Thank you, that's what I needed to hear. I changed the QALIAS to a QREMOTE and (and set up the channels) and I'm working as desired.
So, if I'm understanding all of this correctly, there is 0 value in having a cluster in this scenario? In that QALIAS's don't work in clusters? |
Clusters provide the opportunity to have multiple destination queues (with the same name). Clusters allow for an object definition to be shared with all qmgrs in a cluster.
QAlias definitions work fine in clusters. QRemote definitions work fine in a cluster. QLocal definitions work fine in a cluster.
Please read about name resolution. Cluster object definitions are part of the search to resolve names. _________________ I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live. |
|
Back to top |
|
 |
Vitor |
Posted: Fri Aug 24, 2012 6:44 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Boomn4x4 wrote: |
So, if I'm understanding all of this correctly, there is 0 value in having a cluster in this scenario? In that QALIAS's don't work in clusters? |
If all you're trying to do is hop the message from A->B->C then no, I doubt a cluster adds much to that scenario. The prevaling assumption is that A is outside the cluster, B is the gateway to the cluster and C is the internal target. Otherwise your topology doesn't make apparent sense.
Clusters are intended for other things, hence they don't add to a multi-hop point to point scenario. A cluster would be great if the target was C, D, E, F or one of a number of other possibles in a workload balancing solution. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
|