2011-06-15 17 views
1

私たちのアプリケーションはSun Solarisシステム上で動作し、ローカルWebSphere MQインストールを持っています。アプリケーションは、バインディング・モードを使用してキュー・マネージャーに接続します。ローカルキューにメッセージを送信しようとすると、JNDIバインディングは正常ですが、javax.jms.JMSSecurityException: MQJMS2013: invalid security authentication supplied for MQQueueManagerエラーが発生します。調査の結果、認証に使用される資格情報(ユーザーID)は、アプリケーションが実行されているユーザーと大文字と小文字が区別されないことが判明しました。ユーザーIDは一致しますが、大文字と小文字は区別されません。デフォルトでは、アプリケーションが実行されているユーザーは認証のために渡されますが、ここでは大文字と小文字を区別しない一致が失敗しています。アプリケーションサーバーはWebLogicです。任意の入力を感謝します。UnixでのWebSphere MQセキュリティ認証例外

答えて

0

ローカル・キューをオープンするには、アプリケーションを最初にキュー・マネージャーに正常に接続しておく必要があります。リモート・キューのエラーは接続エラーです。そのため、キュー・マネージャーにも到達しません。これは、異なる接続ファクトリを使用していることと、2番目の接続ファクトリでは接続パラメータにいくつかの違いがあることを示しています。最初のステップは、それらの相違を調整することです。

また、MQJMS2013セキュリティー・エラーは多くの場合、実際にはMQの問題ではありません。たとえば、管理対象オブジェクトをLDAPに格納する人がいれば、認証エラーが発生します。ファイルシステムベースのJNDIを使用する人にとって、OSファイルのパーミッションは同じことを引き起こす可能性があります。しかし、実際のWMQの問題(このように見える)の場合、リンクされた例外にはMQ理由コード(MQRC = 2035など)が含まれます。 MQ(またはそれに関係なくすべてのJMSトランスポート)の問題をよりよく診断できるようにするには、リンクされた例外を印刷する習慣を払うことが必要です。

この入力に基づいてこの問題を解決できない場合は、リンクされた例外を印刷して取得した管理オブジェクト定義と理由コードの詳細を質問に反映させることをおすすめします。

0

QueueConnectionFactoryでcreateQueueConnection()を使用して接続を作成していましたが、createQueueConnection( ""、 "")メソッドを使用して問題を解決しました。 unix userid(webA)は大文字と小文字を区別し、アプリケーションは大文字と小文字を区別しないuserid(weba)でMQで認証しようとしていましたが、MQキューマネージャは接続試行を拒否していました。アプリケーションが大文字小文字を区別しないuserid(weba)を先に送信していた理由を教えてください。

ありがとう、 Arun