WebSphere App Server 7 から JMS 接続を作成しようとしていますが、引き続き JMSWMQ2013 (MQ 理由コード 2035) が返されます。これは明らかに認証の問題であり、他にも多くの同様の報告が見られる ので、一般的な問題について大まかな考えを持っています。
チャネルの正確な構成について、運用チームからのフィードバックを待っていますが、それまでの間、非常に不可解な観察結果が 1 つあります。WebSphere の JAAS 認証を使用してユーザー ID を提供すると、常にJMSWMQ2013
エラーが発生します。ただし、JMS キュー接続ファクトリの への呼び出しに同じcreateQueueConnection()
ユーザー ID を明示的に渡すと、認証エラーは発生しません。
正直なところ、両方の手法が一貫して動作することを期待していました。JAAS を使用して JMS キュー接続ファクトリーの資格情報を提供する際に見逃している微妙な点はありますか?
編集: を使用して WAS で JMS トレースを有効にし*=info: JMSApi=all: JMSServer=all: Messaging=all: JMS_WASTraceAdapter=all: com.ibm.mq.*=all: jmsApi=all
、出力を 1 行ずつ比較しました。
JAAS を使用すると、WAS インスタンスが実行されているユーザー ID をJmsXAQueueConnectionImpl
実際に呼び出していることがわかります (これは、チャネルの で定義されているユーザーではありません)。WMQConnection.getProcessUserId()
MCAUSER
それはすべて非常に奇妙です... JAAS認証エントリをまったく取得していないようです。私の QCF は間違いなく DefaultPrincipalMapping のマッピング構成エイリアスで CLIENT トランスポートを使用していますが、何らかの理由で JAAS ユーザー ID の代わりにプロセスのユーザー ID を使用しています。
ありがとう。クレイグ