|
Problem(Abstract) |
When MQ is configured to be "open to the world" when
accessing the alias, but
closed when going after the fully resolved name, the stand alone JMS
application works, but MDB failed to start. The following error messages
appeared in the log during websphere application server start up:
com.ibm.mq.MQException: MQJE001: Completion Code 2, Reason 2035
at com.ibm.mq.MQQueueManager.accessQueue(MQQueueManager.java:1527) |
|
Symptom |
|
|
|
 |
|
Cause |
The cause of the problem is that when websphere attempts
to open the Queue Destination, one of the first things it does is to
determine if the queue is a local or alias queue. If the queue is a local
queue, the application server simply tries to open it. However, if the
queue is an alias queue, WebSphere will try and resolve the alias to
ensure the underlying local queue actually exists. If the alias queue is
successfully resolved, WebSphere will attempt to open this queue rather
than the alias. This means the security credentials passed in via
WebSphere are checked against the local queue, rather than
the alias. So if the MQ is configured to only allow accessing the alias
not the fully resolved name, the MDB will fail to start.
This behavior is different for the stand-alone JMS applications. If a
stand-alone JMS application attempts to open a connection to a Queue
Destination which resolves to an alias queue, the JMS classes will simply
open the alias queue. No attempt is made to resolve the alias and use the
underlying local queue. In this situation, the security credentials passed
in via the application are checked against the alias queue. That is why
the stand alone JMS application will work in the same configuration. |
|
|
Resolving the
problem |
The connection consumers will use the Alias queue to
actually get the messages but the Queue Agent needs to have browse access
to the local queue. This meant that changing the security on the local
queue to allow the user id used by websphere "browse" authority should
resolve the issue. |
|
|
|
|
Cross Reference information |
Segment |
Product |
Component |
Platform |
Version |
Edition |
Application Servers |
Runtimes for Java Technology |
Java SDK |
|
|
|
|
|
|