この節には、Message Queue 3.7 UR1 の既知の問題についてのリストが含まれています。次の内容について説明します。
現時点のバグ、その状態、および回避策の一覧については、Java Developer ConnectionSM メンバーは、http://bugs.sun.com/bugdatabase/index.jsp で Java Developer Connection Web サイトの「Bug Parade」ページを参照してください。新しいバグを報告する前に、このページをチェックしてください。すべての Message Queue バグがリストされているわけではありませんが、このページはある問題が報告済みかどうかを知りたい場合に活用できます。
Java Developer Connection のメンバーになるのは無料ですが、登録が必要です。Java Developer Connection のメンバーになる方法についての詳細は、Sun の「For Developers」Web ページを参照してください。
新しいバグの報告や機能に関する要求を行うには、imq-feedback@sun.com 宛てに電子メールメッセージを送信してください。
SSL を使用した接続サービスでは現在、自己署名サーバー証明書、つまりホスト信頼モードしかサポートしていません。
HTTP トランスポートを使用している JMS クライアントが、Ctrl-C の使用などにより突然終了した場合、ブローカがクライアント接続や関連するすべてのリソースを解放するまでに、およそ 1 分かかります。
この 1 分の間にクライアントのほかのインスタンスが起動し、同じクライアント ID、永続サブスクリプション、またはキューを使おうとした場合、そのインスタンスは「クライアント ID はすでに使用されています」の例外を受け取ります。この例外は、上記で説明した終了プロセスの副作用にすぎません。およそ 1 分経過後にクライアントが起動すると、問題は発生しません。
Message Queue 3.7 UR1 では、LDAP サーバーをユーザーリポジトリとして使用するためのブローカ構成例は、 config.properties のコメント領域に示されています。default.properties ファイルの LDAP ユーザーリポジトリの例は、コメントアウトされています。
以前に、default.properties ファイルに指定された LDAP ユーザーリポジトリプロパティーの例のプロパティー値を使用した場合は、使用している JMS アプリケーションクライアントは JMS 接続を作成しようとしたときに、セキュリティー例外を受け取ります。これは、Message Queue 3.7 UR1 にアップグレードしたあとに起こります。
JMS クライアントが Message Queue 3.7 UR1 ブローカへの接続を作成しようとすると、ブローカログでエラーとなり、JMS クライアントは次の例外を受け取ります。
SecurityException. 20/Aug/2004:11:16:41 PDT] ERROR [B4064]: Ldap repository ldap property .uidattr not defined for authentication type basic:com.sun.messaging.jmq.auth.LoginException: [B4064]: Ldap repository ldap property .uidattr not defined for authentication type basic
回避策: 『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 7 章「セキュリティーの管理」の指示に従い、ブローカプロパティー imq.user_repository.ldap.uidattr を設定します。
次の項目はブローカクラスタの使用に関連しています。
このリリースでは、フル接続のブローカクラスタのみサポートされています。つまり、クラスタ内のすべてのブローカは、そのクラスタ内のほかのブローカと相互に直接やり取りする必要があります。imqbrokerd -cluster コマンド行引数を使用してブローカを接続する場合は、そのクラスタ内のすべてのブローカが含まれていることを確認してください。
クラスタの一部であるブローカに接続されているクライアントは、現在 QueueBrowser を使用して該当するクラスタ内のリモートブローカにあるキューを検索することはできません。クライアントが検索できるのは、直接接続されているブローカにあるキューの内容のみです。クライアントは引き続き、クラスタ内のブローカのすべてのキューにメッセージを送信したり、キューのメッセージを消費したりできます。この制限によって影響を受けるのは参照だけです。
ブローカクラスタでマスターブローカを使用しない場合、クラスタに追加されているブローカによって保存された持続性の情報は、クラスタ内のほかのブローカには伝播されません。
ブローカクラスタで、開始していないリモート接続へのメッセージをブローカがキューに入れます (バグ ID 4951010)。
回避策: いったんその接続が開始すると、メッセージはコンシューマによって受信されます。コンシューマの接続が閉じている場合、メッセージは別のコンシューマへ再配信されます。
次に示す問題は Message Queue の管理および設定に関係するものです。
Windows コンピュータで CLASSPATH に二重引用符が含まれている場合、imqadmin および imqobjmgr ユーティリティーはエラーをスローします (バグ ID 5060769)。
回避策: このエラーメッセージは無視してかまいません。ブローカはすべてのエラーの通知コンシューマを正しく処理します。このエラーは、システムの信頼性には影響を与えません。
すべての Solaris および Windows スクリプトで、-javahome オプションが、値に空白文字が含まれると動作しません (バグ ID 4683029)。
javahome オプションは Message Queue コマンドおよびユーティリティーで使用し、使用する代替の Java 2 互換のランタイムを指定します。ただし、代替の Java 2 互換のランタイムへのパスには、空白文字を含めることはできません。次に例を示します。
Windows の場合 C:/jdk 1.4
Solaris の場合: /work/java 1.4
回避策: Java ランタイムを、空白文字が含まれない場所またはパスにインストールします。
imqQueueBrowserMaxMessagesPerRetrieve 属性は、クライアントランタイムがキュー送信先の内容を検索するときに一度に取得することのできるメッセージの最大数を指定します。クライアントアプリケーションは常に、キューにあるすべてのメッセージを取得します。そのため、imqQueueBrowserMaxMessagesPerRetrieve 属性は、キューにあるメッセージを分割してクライアントランタイムに配信する方法に影響します。つまり、複数の小さいメッセージと少数の大きなチャンクのどちらに分割するかを指定します。この属性は、参照されるメッセージの合計数には影響しません。この属性の値を変更するとパフォーマンスに影響が出る可能性はありますが、クライアントアプリケーションの取得するデータ量が変動することはありません (バグ ID 6387631)。
次に示す問題は Message Queue ブローカに影響します。
Windows 2000 で HTTPS createQueueConnection が例外をスローする場合があります (バグ ID 4953348)。
回避策: 接続を再試行します。
Ctrl-C を使用してブローカをシャットダウンする場合、ストアが閉じられたあとにトランザクションがクリーンアップされることがあります (バグ ID 49344466)。
メッセージまたはトランザクションの処理中にブローカがシャットダウンされた場合、「ストアが閉じられた後に、ストアメソッドがアクセスされました。」という内容のエラーをブローカが表示することがあります。
回避策: このエラーメッセージは無視してかまいません。ブローカはすべてのエラーの通知コンシューマを正しく処理します。このエラーは、システムの信頼性には影響を与えません。
送信先が破棄された場合、コンシューマが孤立します (バグ ID 5060787)。
送信先が破棄された場合、アクティブコンシューマが孤立します。いったんコンシューマが孤立すると、送信先が再作成された場合でもメッセージを受信しなくなります。
回避策: ありません。
JMSMessageID を使用したメッセージ選択が機能しません (バグ ID 6196233)。
次のセレクタを変更します。
JMSMessageID = "ID:message-id-string"
次のように変更します。
JMSMessageID IN (’ID:message-id-string’, ’message-id-string’)
Message Queue 3.7 UR1 には、スタンドアロン製品が含まれていません。このリリースでは、Java Enterprise System インストーラを使用して Message Queue をインストールする必要があります。手順については、『Sun Java System インストールガイド』を参照してください。
Message Queue の menu->Index に製品マニュアルの URL と『Read Me First』ファイルの場所が間違って示されます (バグ ID 6515574)。
説明 Windows の「スタート」メニューで Message Queue エントリからマニュアルを選択すると、古いマニュアルが表示されます。
回避策: http://docs.sun.com/app/docs/coll/1661.1 からマニュアルにアクセスします。
「コントロール パネル」の「プログラムの追加と削除」に Message Queue ではなく Sun Java Enterprise System が表示されます。
Config_MQ.txt ファイルに不正な情報が含まれています。次の項目では、エラーの一部が修正されています。
Message Queue で「自動設定」オプションと「手動設定」オプションが使用できず、管理者パスワードを設定するオプションが存在しません。
「自動設定」オプションで、Message Queue ブローカ Windows サービスが自動的にインストールされ開始されます。
「手動設定」オプションで、Windows サービスとして開始することなく、Message Queue ブローカをインストールできます。
空き容量が不十分なディスクにインストールしようとすると、わかりづらいエラーメッセージが表示されます。たとえば、次のようなメッセージです。「Error: -1603 Fatal error during installation.」
インストール中に mq/bin がパスに追加されません (バグ ID 6515557)。
説明 Windows のコマンドプロンプトからは Message Queue の実行ファイルを見つけることができません。たとえば、imqcmd と入力すると次のエラーが発生します。「'imqcmd' is not recognized as an internal or external command, operable program or batch file.」
回避策: install-MQ-directory/bin を含むように PATH 変数を編集するか、install-MQ-directory/bin ディレクトリからアプリケーションを実行します。
Message Queue のインストールでは、共有コンポーネントの自動インストールがサポートされません。
回避策: JDK Version 1.6.0 (1.6.0 の SOAP コンポーネント) を使用するか、Windows に Application Server をインストールすると、SOAP 共有コンポーネントがインストールされます。