Author |
Message
|
Sam Uppu |
Posted: Mon Mar 16, 2009 5:47 pm Post subject: |
|
|
 Yatiri
Joined: 11 Nov 2008 Posts: 610
|
PeterPotkay wrote: |
MCASUER is used on Cluster Receiver channels.
PUTAUT = CTX is a waste of time and false security. |
Thanks Peter. In the MCAUSER field of cluster receiver channel (QM.PARIS), shall I use the App1 or App2 id?.
P.S.: App1 is connected to source QMgr, QM.LONDON and App2 is connected to destination QMgr, QM.PARIS.
Thanks. |
|
Back to top |
|
 |
bruce2359 |
Posted: Mon Mar 16, 2009 5:53 pm Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
Quote: |
In the MCAUSER field of cluster receiver channel (QM.PARIS), shall I use the App1 or App2 id?. |
Use an ID with low security; which means NOT an mqm-group id, but an ID with just enough to put messages in destination queues. _________________ 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 |
|
 |
Sam Uppu |
Posted: Tue Mar 17, 2009 6:37 am Post subject: |
|
|
 Yatiri
Joined: 11 Nov 2008 Posts: 610
|
bruce2359 wrote: |
Quote: |
In the MCAUSER field of cluster receiver channel (QM.PARIS), shall I use the App1 or App2 id?. |
Use an ID with low security; which means NOT an mqm-group id, but an ID with just enough to put messages in destination queues. |
Both the ids- App1 & App2 are not part of mqm group. The destination queue(cluster queue) is defined on QM.PARIS Qmgr and the source application(with user id: App1) is trying t put message onto Cluster queue defined on QM.PARIS by connecting to source QMgr-QM.LONDON. The destination application(with user id: App2) is going to pull the message from the Cluster queue.
Now on the server where QM.PARIS is running, we have only the user-App2 and there is no user App1 defined.
As the messages are coming in with App1 in MQMD, I am not sure whether we need to se the App1 or App2 in the MCAUSER of Cluster receiver channel on QM.PARIS.
Question:
Can we set the user id in MCAUSER of cluster receiver channel though the id doesn't exist on that server?. In this case App1.
Thanks. |
|
Back to top |
|
 |
bruce2359 |
Posted: Tue Mar 17, 2009 6:43 am Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
Quote: |
Question:
Can we set the user id in MCAUSER of cluster receiver channel though the id doesn't exist on that server?. In this case App1. |
You need to set MCAUSER on the clusrcvr channel to an ID that has authority to put messages in the appropriate queues.
Any ID with such authority will work; and there need be no relationship between what qmgr sent the message and the qmgr that received the message.
MCAUSER just needs to be an ID known to the security (OAM or whatever) on the receiving qmgr, and have appropriate authority. _________________ 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 |
|
 |
Sam Uppu |
Posted: Tue Mar 17, 2009 10:13 am Post subject: |
|
|
 Yatiri
Joined: 11 Nov 2008 Posts: 610
|
bruce2359 wrote: |
Quote: |
Question:
Can we set the user id in MCAUSER of cluster receiver channel though the id doesn't exist on that server?. In this case App1. |
You need to set MCAUSER on the clusrcvr channel to an ID that has authority to put messages in the appropriate queues.
Any ID with such authority will work; and there need be no relationship between what qmgr sent the message and the qmgr that received the message.
MCAUSER just needs to be an ID known to the security (OAM or whatever) on the receiving qmgr, and have appropriate authority. |
I used App2 on the cluster receiver's MCAUSER on QM.PARIS(destination) and sent a message from source Qmgr-QM.LONDON. PUTAUT is DEF.
I see the following:
On QM.LONDON logs(source QMgr):
03/17/09 12:52:02 - Process(2485.56) User(mqm) Program(amqrmppa)
AMQ9506: Message receipt confirmation failed.
EXPLANATION:
Channel 'TO.PARIS' has ended because the remote queue manager did not accept the
last batch of messages.
ACTION:
The error log for the channel at the remote site will contain an explanation of
the failure. Contact the remote Systems Administrator to resolve the problem.
----- amqrmrca.c : 787 --------------------------------------------------------
03/17/09 12:52:02 - Process(2485.56) User(mqm) Program(amqrmppa)
AMQ9999: Channel program ended abnormally.
EXPLANATION:
Channel program 'TO.PARIS' ended abnormally.
ACTION:
Look at previous error messages for channel program 'TO.PARIS' in the error files
to determine the cause of the failure.
On QM.PARIS the cluster receiver channel is inactive in the logs I see the below thing:
03/17/09 12:45:02 - Process(29519.3 User(mqm) Program(amqrmppa)
AMQ9557: Queue Manager User ID initialization failed.
EXPLANATION:
The call to initialize the User ID failed with CompCode 2 and Reason 2035.
ACTION:
Correct the error and try again.
----- amqrmtra.c : 3706 -------------------------------------------------------
03/17/09 12:45:02 - Process(29519.3 User(mqm) Program(amqrmppa)
AMQ9999: Channel program ended abnormally.
EXPLANATION:
Channel program 'TO.PARIS' ended abnormally.
ACTION:
Look at previous error messages for channel program 'TO.PARIS' in the error files
to determine the cause of the failure.
I provided the permissions for the user-App2 on Qmgr-QM.PARIS (connect) and for the queue-put/get/browse.
Let me know if I am going inthe wrong direction.
Thanks. |
|
Back to top |
|
 |
bruce2359 |
Posted: Tue Mar 17, 2009 10:19 am Post subject: |
|
|
 Poobah
Joined: 05 Jan 2008 Posts: 9469 Location: US: west coast, almost. Otherwise, enroute.
|
If memory serves, you need to add +setall to the ID you specified as MCAUSER ID on clusrvcr channel.
Please read this on some additional security for MCAUSER: http://t-rob.net/2008/07/08/websphere-mq-security-heats-up/ _________________ 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 |
|
 |
Sam Uppu |
Posted: Tue Mar 17, 2009 12:32 pm Post subject: |
|
|
 Yatiri
Joined: 11 Nov 2008 Posts: 610
|
Thanks Bruce. I added +setall for the Qmgr and also for the queues and now I am able to send the messages.
Thanks for your help. |
|
Back to top |
|
 |
Sam Uppu |
Posted: Wed Mar 18, 2009 10:54 am Post subject: |
|
|
 Yatiri
Joined: 11 Nov 2008 Posts: 610
|
Sam Uppu wrote: |
Thanks Bruce. I added +setall for the Qmgr and also for the queues and now I am able to send the messages.
Thanks for your help. |
This is working when the QMgr name is not provided to send the message. If the application wants to send the message to aparticular QMgr within the cluster by specifying the QMgr name its not working and the application is getting 2035 error(authorization failed).
Quote: |
private String qManager = "QM.LONDON"; // define name of queue manager to connect to.
private String qName = "TESTQ.QM2";
// Now specify the queue that we wish to open,
// and the open options...
QQueue req_queue = qMgr.accessQueue(qName,
openOptions,"QM.PARIS", null, null); |
Can you please let me know on this. I even refered this one also(T.Rob's comments): http://www.mqseries.net/phpBB2/viewtopic.php?t=43469&postdays=0&postorder=asc&start=0
Not sure whether we can access a cluster queue by specifying the Qmgr name without being the app id in mqm group or by providing permissions to S.C.T.Q.
Thanks. |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Mar 18, 2009 3:27 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
You can send a message to a cluster queue by providing a way to alias and resolve to the cluster queue on the sending qmgr. All you need for the app is to have put permission to the alias defined on the sender qmgr.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
vandi |
Posted: Wed Mar 18, 2009 3:39 pm Post subject: |
|
|
Acolyte
Joined: 13 Dec 2008 Posts: 67
|
What if the source app wants to send the msg to a specific queue on a specific QMgr?.
Thanks. |
|
Back to top |
|
 |
Sam Uppu |
Posted: Wed Mar 18, 2009 3:44 pm Post subject: |
|
|
 Yatiri
Joined: 11 Nov 2008 Posts: 610
|
fjb_saper wrote: |
You can send a message to a cluster queue by providing a way to alias and resolve to the cluster queue on the sending qmgr. All you need for the app is to have put permission to the alias defined on the sender qmgr.
Have fun  |
Thanks FJ.
I am able to send message to a cluster queue by providing an Alias queue if there is no QMgr name is provided inside the call:
Queue req_queue = qMgr.accessQueue(CLUSTERQ,
openOptions, null, null, null);...in this case NO QMgr name is provided and able to send the message via Alias queue name.
Question:
If the QMgr name is provided to send the message to a desired cluster queue on a desired QMgr:
QQueue req_queue = qMgr.accessQueue(CLUSTERQ,
openOptions,"QM.PARIS", null, null);...in this case the cluster queue is CLUSTERQ on QMgr-QM.PARIS.
In this case, I am getting 2035 error.
Note: On the destination QMgr(QM.PARIS) and Queue(TESTQ.QM2) permissions are provided for the App2 id. App1 user id(with which the source app) is putting the msgs doesn't exists on QM.PARIS server.
Let me know your thoughts.
Thanks. |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Mar 18, 2009 3:48 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Typically I don't use Alias queues QA for cluster queues I use alias queues QR. They just allow you to resolve to a QC.
If you then have a cluster alias it makes things even more fun...
However if you have to direct the message to a specific qmgr you will probably need a qr set up with the specific qmgr as rqmname.
The other interesting fact is that if the qmgr is the only one in the cluster to physically host the cluster queue it makes no difference...
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
Sam Uppu |
Posted: Wed Mar 18, 2009 4:01 pm Post subject: |
|
|
 Yatiri
Joined: 11 Nov 2008 Posts: 610
|
fjb_saper wrote: |
Typically I don't use Alias queues QA for cluster queues I use alias queues QR. They just allow you to resolve to a QC.
If you then have a cluster alias it makes things even more fun...
However if you have to direct the message to a specific qmgr you will probably need a qr set up with the specific qmgr as rqmname.
The other interesting fact is that if the qmgr is the only one in the cluster to physically host the cluster queue it makes no difference...
Enjoy  |
In my case, the cluster queue resides on multiple QMgrs. The application wants to send the messages to a particular cluster queue onto a specific QMgr.
Not sure how to achieve this.
Thanks for your thoughts. |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Mar 18, 2009 4:10 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Sam Uppu wrote: |
In my case, the cluster queue resides on multiple QMgrs. The application wants to send the messages to a particular cluster queue onto a specific QMgr.
Not sure how to achieve this.
Thanks for your thoughts. |
A simple qr will do. IIRC you do not need to fill in the xmitq as the destination qmgr is part of the cluster.
def qr(mydest) rname(clusterqname) rqmname(QM.PARIS)
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Mar 18, 2009 4:23 pm Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
fjb_saper wrote: |
Sam Uppu wrote: |
In my case, the cluster queue resides on multiple QMgrs. The application wants to send the messages to a particular cluster queue onto a specific QMgr.
Not sure how to achieve this.
Thanks for your thoughts. |
A simple qr will do. IIRC you do not need to fill in the xmitq as the destination qmgr is part of the cluster.
def qr(mydest) rname(clusterqname) rqmname(QM.PARIS)
Have fun  |
FJ, I think the question is more about using a Reply To QMgr.
In this case, the sending app may not have control over the name put into ReplyToQMgr, and the replying app can't decide to use anything other than the value put in.
A QR is certainly the needed choice, but not with a name anything other than "QM.PARIS".
def qr (QM.PARIS) rname() rqmname(QM.PARIS) cluster(clusname) |
|
Back to top |
|
 |
|