|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
![Reply to topic](templates/DAJ_Glass/images/lang_english/reply.gif) |
|
PCFMessageAgent.send returns MQRC_NOT_AUTHORIZED Error |
« View previous topic :: View next topic » |
Author |
Message
|
ekoks |
Posted: Thu Mar 31, 2016 6:20 am Post subject: PCFMessageAgent.send returns MQRC_NOT_AUTHORIZED Error |
|
|
Newbie
Joined: 22 Feb 2016 Posts: 5
|
Hello,
I'm writing a .NET application which requires s list of queues in a specific queuemanager.
However when I use PCFMessageAgent to send the request for the Q names, I receive an error MQRC_NOT_AUTHORISED.
My code:
Code: |
Try
PCFMessageAgent = New PCF.PCFMessageAgent("APOLLOP")
attrs = {MQC.MQCA_Q_NAME, MQC.MQCA_Q_DESC,
MQC.MQIA_CURRENT_Q_DEPTH,
MQC.MQIA_Q_TYPE,
MQC.MQCA_REMOTE_Q_MGR_NAME,
MQC.MQCA_REMOTE_Q_NAME}
requestMessage = New PCF.PCFMessage(PCF.CMQCFC.MQCMD_INQUIRE_Q_NAMES)
requestMessage.AddParameter(New PCF.MQCFST(MQC.MQCA_Q_NAME, "APOLLO.0001.LQ"))
requestMessage.AddParameter(New PCF.MQCFIN(MQC.MQIA_Q_TYPE, MQC.MQQT_LOCAL))
requestMessage.AddParameter(New PCF.MQCFIL(PCF.CMQCFC.MQIACF_Q_ATTRS, attrs))
response = PCFMessageAgent.Send(requestMessage)
qNames = response(0).GetStringListParameterValue(MQC.MQCACF_Q_NAMES)
For i = 0 To qNames.Length - 1
System.Console.WriteLine("Queue " & i & " : " & qNames(i))
Next
Catch e As Exception
Console.WriteLine("Exception Occurred: MQ Error - " & e.Message)
End Try
|
A colleague of me wrote a Java program with the Java Class library on the same queue manager and he isn't getting any error.
It seems that the .NET library is working slightly different than the Java library
Anybody any idea ?
The queuemanager error log states that I need the INQ permission to inquire the Q names. However, the Java version is working with the sames user on the same Q manager.
AMQERR01.LOG:
AMQ8077: Entity 'ek90698@nedcar' has insufficient authority to access object
'SYSTEM.DEFAULT.MODEL.QUEUE'.
EXPLANATION:
The specified entity is not authorized to access the required object. The
following requested permissions are unauthorized: inq
ACTION:
Ensure that the correct level of authority has been set for this entity against
the required object, or ensure that the entity is a member of a privileged
group.
Please help. |
|
Back to top |
|
![](templates/DAJ_Glass/images/spacer.gif) |
mqjeff |
Posted: Thu Mar 31, 2016 6:30 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
The error is clear. The user in question doesn't have the permissions needed.
It's likely that the Java program is not supplying any user at all.
It's a much better idea to apply channel security and user mapping than to grant permissions to the user in question. _________________ chmod -R ugo-wx / |
|
Back to top |
|
![](templates/DAJ_Glass/images/spacer.gif) |
hughson |
Posted: Tue May 03, 2016 1:07 am Post subject: Re: PCFMessageAgent.send returns MQRC_NOT_AUTHORIZED Error |
|
|
![](images/avatars/810794940518bb946528b3.jpg) Padawan
Joined: 09 May 2013 Posts: 1916 Location: Bay of Plenty, New Zealand
|
ekoks wrote: |
The queuemanager error log states that I need the INQ permission to inquire the Q names. However, the Java version is working with the sames user on the same Q manager.
AMQERR01.LOG:
AMQ8077: Entity 'ek90698@nedcar' has insufficient authority to access object
'SYSTEM.DEFAULT.MODEL.QUEUE'.
EXPLANATION:
The specified entity is not authorized to access the required object. The
following requested permissions are unauthorized: inq
ACTION:
Ensure that the correct level of authority has been set for this entity against
the required object, or ensure that the entity is a member of a privileged
group. |
Be very clear, the queue manager error log is reporting a problem about your access to the reply queue, and not about the authorization to issue the PCF command. In order to create a temporary dynamic reply queue (to receive the response messages from the command server which list the queue you are PCF Inquiring) your application is first opening the model queue SYSTEM.DEFAULT.MODEL.QUEUE which is the way to create the temporary dynamic queue. This action would normally only require DSP and GET authority.
ekoks wrote: |
A colleague of me wrote a Java program with the Java Class library on the same queue manager and he isn't getting any error.
It seems that the .NET library is working slightly different than the Java library. |
I agree that it seems the .NET library is also trying to do an MQINQ on the model queue, perhaps there is some additional information that those libraries required that the Java equivalent did not use.
Since you are using these wrapper functions, PCFMessageAgent, you do not have complete control over these things. There are two options for you.- Grant the INQ authority to that one model queue that is being used for the reply queue. This is not a big exposure.
- Raise a PMR with IBM to ask them why there is a difference.
Cheers
Morag _________________ Morag Hughson @MoragHughson
IBM MQ Technical Education Specialist
Get your IBM MQ training here!
MQGem Software |
|
Back to top |
|
![](templates/DAJ_Glass/images/spacer.gif) |
|
|
![Reply to topic](templates/DAJ_Glass/images/lang_english/reply.gif) |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|