次に示す問題は メッセージキュー ブローカに影響します。
持続データストアがあまりにも多くの送信先を開く場合、ブローカがアクセス不可能になります。(バグ 4953354)
回避方法: この状態はブローカがシステムのオープンファイル記述子の制限に達したことが原因です。Solaris や Linux では、ulimit コマンドを使って、ファイル記述子の制限を増やします。
送信先が破棄された場合、コンシューマが孤立します。(バグ 5060787)
送信先が破棄された場合、アクティブコンシューマが孤立します。いったんコンシューマが孤立すると、送信先が再作成された場合でもメッセージを受信しなくなります。
HTTP 接続サービスを使用している JMS クライアントが、Ctrl-C の使用などにより突然終了した場合、ブローカがクライアント接続や関連するすべてのリソースを解放するまでに、およそ 1 分かかります。
この 1 分の間にクライアントのほかのインスタンスが起動し、同じ ClientID、永続サブスクリプション、またはキューを使おうとした場合、そのインスタンスは「クライアント ID はすでに使用されています」の例外を受け取ります。このことは実際の問題ではなく、上記の終了処理の結果にすぎません。およそ 1 分経過後にクライアントが起動すると、すべて問題なく動作します。
データストアに MySQL データベースを使用している場合、1M バイトを超えるメッセージを格納すると、「クエリーのパケットが大きすぎます...」という SQLException がスローされます。(バグ 6682815)
回避方法:--max_allowed_packet オプションでデフォルトの 1M バイトより大きい値を設定して MySQL サーバーを起動します。たとえば、次の値を使用します。
--max_allowed_packet=60M
高可用性共有データストアに MySQL データベースを使用している場合、MySQL ストレージエンジンを NDBCLUSTER として設定する機構が必要です。(バグ 6691394)
回避方法: ブローカの config.properties ファイルに、次のプロパティー値を追加します (『Sun GlassFish Message Queue 4.4 Administration Guide』の「Enhanced Clusters: JDBC Configuration Properties 」を参照)。
imq.persist.jdbc.mysql.tableoption=EMGINE=NDBCLUSTER
Oracle の 9i (JDBC 9.2.0.x) ドライバを使用する場合、ブローカが「Failed to persist property...」という例外をスローします。(バグ 6626825)
回避方法: Oracle の 10g (JDBC 10.2.0.x) ドライバを使用します。ブローカはこのドライバに対して最適化されます。
imq.persist.jdbc.derby.table.MYCONSTATE41.index.IDX2=CREATE INDEX &(index) ON $(name) (MESSAAGE_ID)
データストアに Java DB データベースを使用している場合、メッセージを格納すると、「要求された時間内に例外を取得できませんでした」という SQLException がスローされます。(バグ 6691394)
回避方法: ブローカの config.properties ファイルに次のプロパティー値を設定します。
imq.persist.jdbc.derby.table.MYCONSTATE41.index.IDX2=CREATE INDEX &(index) ON $(name) (MESSAAGE_ID)