Version 3.7 UR1
Part No. 820-0486
このリリースノートには、Sun Java™ System Message Queue 3.7 UR1 のリリース時点で得られる重要な情報が含まれています。ここでは、新機能、拡張機能、既知の問題、制限事項などについて説明します。Message Queue を使用する前に、このドキュメントをよくお読みください。
このリリースノートの最新版は、Sun Java System Message Queue ドキュメント Web サイトから入手できます。ソフトウェアをインストールおよび設定する前だけでなく、それ以降も定期的にこの Web サイトをチェックして、最新のリリースノートと製品マニュアルを確認してください。
このリリースノートは、次の節で構成されています。
このマニュアル内で参照している第三者の URL は、追加の関連情報を提供します。
このマニュアル内で引用する第三者の Web サイトの可用性について Sun は責任を負いません。こうしたサイトやリソース上の、またはこれらを通じて利用可能な、コンテンツ、広告、製品、その他の素材について、Sun は推奨しているわけではなく、Sun はいかなる責任も負いません。こうしたサイトやリソース上の、またはこれらを経由して利用可能な、コンテンツ、製品、サービスを利用または信頼したことに伴って発生した (あるいは発生したと主張される) いかなる損害や損失についても、Sun は一切の責任を負いません。
日付 |
変更点 |
---|---|
2006 年 8 月 |
このマニュアルの初回リリース。 |
2007 年 2 月 |
このマニュアルの最終リリース。 |
Sun Java System Message Queue は、多くの機能を備えるメッセージサービスで、Java Messaging Specification (JMS) 1.1 に準拠する信頼性の高い非同期メッセージングを提供します。Message Queue では、JMS 仕様を超える機能も用意され大規模企業のシステム配備のニーズにも対応できるようになっています。
Message Queue 3.7 UR1 は Message Queue 3.6 の保守リリースです。バグ修正およびいくつかの小さな機能拡張が含まれます。この節では、次の内容について説明します。
Message Queue 3.7 UR1 に含まれる新機能は次のとおりです。
以降の節で、これらの機能について説明しています。
製品の出荷の効率化を図るため、Sun Java Message Queue の Platform Edition および Enterprise Edition を結合します。Message Queue 3.7 UR1 以降、単一の版のみが利用可能となり、スタンドアロンで配布される場合の機能制限が取り除かれています。これにより、より簡単にこの製品をご利用いただけるようになります。
版を結合することで Message Queue は Solaris Enterprise System とより協調でき、Enterprise Edition の広範囲におよぶ機能を永続的に使用する権利を、サポートや保守、賠償のない状態で提供できます。以前のリリースと同様、サポートおよび保守サービス用にいくつかのライセンスオプションを引き続き提供します。Message Queue は引き続き、Java Enterprise System および Application Platform Suite とともにパッケージ化されます。http://www.sun.com のオンラインストアを確認するか、販売担当者にご連絡いただき、ニーズに最適なオプションをお選びください。次の表は、Message Queue の新しい単一版へのアップグレードのパスを示します。
表 1–2 Message Queue 3.7 UR1 へのアップグレードのパス
以前の版 |
アップグレードのパス |
コメント |
---|---|---|
Platform Edition |
Sun Java System Message Queue 3.7 UR1 |
3.7 UR1の顧客はすべての機能 (Platform および Enterprise) を利用できます。ライセンスを購入すると、サポートオプションを利用できます。 |
Enterprise Edition |
Sun Java System Message Queue 3.7 UR1 |
機能の変更はありません。各種ライセンスおよびサポートのオプションを利用できます。 |
Platform Edition サポート契約 |
Enterprise Edition サポート契約へのアップグレード |
以前のリリースの Platform Edition 用の既存のサポート契約は、引き続き更新されます。以前の Platform Edition リリースに対して新しい Platform Edition 契約が発行されることはありません。 |
Enterprise Edition サポート契約 |
変更なし |
既存の契約は引き続き更新されます。新しい契約が発行されます。 |
次の表は、さまざまな Message Queue 製品の出荷元の変更を示します。
表 1–3 Message Queue 製品の出荷元の変更点
製品 |
以前の出荷元 |
新しい出荷元 |
コメント |
Open Message Queue |
該当なし |
Sun ダウンロードセンター製品ページ |
スタンドアロンのダウンロード。コミュニティーのサポートのみ。サポート契約は利用できません。 |
Message Queue Platform Edition |
Message Queue 製品ページ経由の Sun ダウンロードセンター |
利用できなくなりました |
Platform と Enterprise の機能を結合した単一版の Message Queue のみが利用できます。 |
Message Queue Enterprise Edition 試用版 (Platform Edition 経由) |
Message Queue 製品ページ経由の Sun ダウンロードセンター |
試用版ライセンスは不要になりました |
不要になりました |
Message Queue Enterprise Edition 90 日試用版 (Java Enterprise System ダウンロードまたは CD 経由) |
バージョン 3 GA (2006 年 3 月) 以前の Java Enterprise System ダウンロードセンター |
Solaris Enterprise System ダウンロードセンター |
Solaris Enterprise System ライセンス。製品ライセンスがある場合は、サポートオプションを利用できます。(90 日試用版ライセンスは不要になりました。) |
Java Enterprise System 経由で出荷された、SunStore、CD、個別のライセンス、Java Enterprise System ライセンス、Suite ライセンス経由の Message Queue Enterprise Edition |
Java Enterprise System または Suite ダウンロードセンター、メディア |
Solaris Enterprise System または Suite ダウンロードセンター、メディアフルフィルメント |
変更なし。 |
新しい関数: MQGetDestinationName()
MQGetDestinationName (const MQDestinationHandle destinationHandle, MQString * destinationName); |
この関数は、送信先の名前を取得するために使用します。戻り値の destinationName はコピーで、呼び出し元が MQFreeString() 関数を呼び出すことで解放を担当します。
パラメータ
名前を取得したい送信先へのハンドル。
名前の出力パラメータ。
この関数は、reply-to パターンを使用する場合に便利です。MQGetMessageReplyTo 関数を使用するとメッセージの送信先へのハンドルを取得できます。次に MQGetDestinationName を使用して、その送信先の名前を取得できます。送信先の名前を取得したら、名前に基づいてメッセージを処理できます。
新しい列挙値: MQ_MESSAGE
新しい MQMessageType と MQ_MESSAGE を使用すると、C クライアントはタイプが Message である JMS メッセージを、他の Message Queue クライアント (C と Java の両方) と交換することができます。
typedef enum _MQMessageType {MQ_TEXT_MESSAGE = 0, MQ_BYTES_MESSAGE = 1, MQ_MESSAGE = 3, MQ_UNSUPPORTED_MESSAGE = 2} MQMessageType; |
MQ_MESSAGE タイプは、ヘッダーとプロパティーはあるが、メッセージ本体が存在しないメッセージを識別します。このタイプのメッセージを作成するには、MQCreateMessage () 関数を使用します。
新しいコネクションプロパティー MQ_UPDATE_RELEASE_PROPERTY は、Message Queue のインストールバージョンに対する更新リリースバージョンを指定します。MQGetMetaData() 関数を使用してバージョン情報を取得します。
Message Queue では、パフォーマンスを向上するために持続ストア の形式に 2 つの変更が加えられました。1 つはファイルストアに対する変更で、もう 1 つは JDBC ストアに対する変更です。
ファイルストア内のトランザクション情報
ディスク I/O を軽減し、JMS トランザクションのパフォーマンスを向上させるために、Message Queue ファイルベースの持続ストア内に格納されているトランザクション状態情報の形式が変更されました。
Oracle JDBC ストア
以前のバージョンの Message Queue では、Oracle で使用されるストアスキーマでは、メッセージデータを格納するために LONG RAW データ型が使用されていました。Oracle 8 では、Oracle によって BLOB データ型が導入され、LONG RAW 型は使用されなくなりました。Message Queue 3.7 UR1 では、パフォーマンスとサポート性を向上するために、データ型が BLOB に変更されました。
これらの変更がストアの互換性にも影響するため、ストアバージョンが 350 から 370 に変更されました。Message Queue 3.7 UR1 は、JDBC の持続ストアとファイルベースの持続ストアの両方で、古い 200 および 350 バージョンから 370 バージョンへの持続ストアの自動変換をサポートしています。imqbrokerd を最初に起動したときに、ユーティリティーが古いバージョンのストアを検出した場合、古いストアはそのままで、ストアを新しい形式に移行します。
このアップグレードをロールバックする必要のある場合は、Message Queue 3.7 UR1 をいったんアンインストールして、以前実行していたバージョンを再インストールします。ストアの古いコピーはそのまま残っているので、ブローカはストアの古いコピーを実行できます。
Message Queue のハードウェアおよびソフトウェア要件は、『Sun Java Enterprise System インストールガイド』で提供されています。
ゾーンは、マシン上で個別の環境を提供し、それぞれのアプリケーションを論理的に分離する Solaris コンテナのテクノロジです。ゾーンを使用すると、Solaris オペレーティングシステムのインスタンス内で仮想的なオペレーティングシステム環境を作成できます。アプリケーションを異なるゾーンで実行すると、同じマシン上で異なるインスタンスまたは異なるバージョンのアプリケーションを実行でき、同時に集中型の管理および効率的なリソースの共有が可能になります。
この節は、ゾーンの簡単な説明および Message Queue 3.7 UR1 での使用法について説明します。
ゾーン環境には、大域ゾーンおよび 1 つ以上の非大域ゾーンが含まれます。Solaris 10 が最初にインストールされた時点では、1 つの大域ゾーンのみがシステムにインストールされます。管理者は大域ゾーンの子としてほかの非大域ゾーンを作成できます。各ゾーンは Solaris を実行する独立したシステムのように見えます。各ゾーンは、それぞれ独自の IP アドレス、システム設定、実行中のアプリケーションのインスタンス、およびファイルシステムの領域を所有します。
大域ゾーンには、非大域ゾーンで共有することが可能なリソースが含まれます。これにより特定の管理機能を集中させることができます。たとえば、大域ゾーンにインストールしたパッケージは、すべての既存の非大域ゾーンで使用または伝達可能です。これにより、インストール、アップグレードおよびアンインストールなどのライフサイクル管理を集中化できます。同時に、非大域ゾーンが提供する分離機能によってセキュリティーが向上し、同じアプリケーションの異なる設定を行なったインスタンスまたは異なるバージョンを同一マシン上で実行できます。
非大域ゾーンは、完全ルートゾーンまたは疎ルートゾーンのどちらかになります。アプリケーション用にどちらの環境を選択するかは、管理制御とリソースの最適化のバランスをどのように判断するかによって異なります。
完全ルートゾーンには、大域ゾーン上のファイルシステムの読み取り/書き込み可能なコピーが含まれます。大域ゾーンにインストールされたパッケージは、レジストリ情報とともに完全ルートゾーンに自動的にコピーされます。リソースが犠牲になりますが、管理制御は最大となります。
疎ルートゾーンには、大域ゾーンのファイルシステムの一部の読み取り/書き込み可能なコピーが含まれますが、その他のファイルシステムは読み取り専用のファイルシステムとしてマウントされます。大域ゾーンにインストールされたパッケージは、読み取り専用ファイルシステムおよびレジストリ情報の自動同期を使用して、疎ルートゾーンで利用できます。疎ルートゾーンでは、集中的な管理が犠牲になりますが、リソースの共有は最適化されます。
Java Enterprise System を構成するコンポーネントはいくつかの共有コンポーネントに依存しているため、ゾーンで作業する場合にはいくつかの制限事項があります。ゾーン環境では、共有コンポーネントは次の規則に従います。
ゾーン内のすべての共有コンポーネントは、同じバージョンの JES である必要があります。この要件により、3 つの点に影響します。
共有コンポーネントの異なるバージョンをインストールしたい場合は、それぞれのバージョンを別々のゾーンに常駐させる必要があります。
ゾーン内で 1 つの共有コンポーネントをアップグレードまたはあとのバージョンをインストールする場合、すべての共有コンポーネントをアップグレードする必要があります。
大域ゾーンに共有コンポーネントをインストールする場合、非大域ゾーンの共有コンポーネントを必要に応じてアップグレードすることに注意する必要があります。
疎ルートゾーン内のファイルシステムは読み取り専用のため、共有コンポーネントは疎ルートゾーンにインストールできません。代わりに、大域ゾーンにインストールする必要があります。共有コンポーネントに依存する製品コンポーネントは、まず大域ゾーンにインストールしてから非大域ゾーンに伝達する必要があります。
Java Enterprise System のコンポーネント製品であるためこれらの要件は Message Queue のインストールに影響し、そのためにゾーンの使用にも制限があります。
Message Queue 製品は /usr ディレクトリにインストールされるため、最初に大域ゾーンでインストールまたはアップグレードする必要があります。
Message Queue が大域ゾーンにインストールされた場合、すべての非大域ゾーンに伝達されます。Message Queue を大域ゾーンにインストールしたあと、同じバージョンのMessage Queue がすべてのゾーンにインストールされます。任意のゾーンにログインしてコマンド pkginfo -l SUNWiqu を実行すると、大域ゾーンと同じバージョンがインストールされているのが確認できます。インスタンス、および /var と /etc ディレクトリに保持される設定データを共有しないため、各ゾーンで独立した Message Queue ブローカのインスタンスを実行できます。(ほかの Java Enterprise System コンポーネントの大部分は、大域ゾーンにインストールされても伝達されません。)
Message Queue は非大域ゾーンに伝達されるため、大域インスタンスが永久的に非大域ゾーン内のインストール場所にリンクされます。したがって、大域ゾーン内の Message Queue をアンインストールまたはアップグレードした場合は、非大域ゾーン内で実行中のインスタンスに影響します。このために生じる可能性のある予期しない結果を次に示します。
Message Queue 3.7 UR1 を大域ゾーンにインストールします。これにより Message Queue 3.7 UR1 パッケージはすべての非大域ゾーンにもインストールされます。
完全ルートゾーン内の Message Queue 3.7 UR1 をアンインストールします。そのあと、完全ルートゾーンに Message Queue 3.6 をインストールします。
これで異なるゾーンに異なるバージョンの Message Queue が実行されます。この設定が便利な場合もあります。
Message Queue 3.7 UR1 を大域ゾーンからアンインストールします。これにより Message Queue は、完全ルートゾーン内の Message Queue 3.6 インスタンスを含むすべてのゾーンからアンインストールされます。
大域ゾーン内の Message Queue のインストールまたはアンインストールは階層的に行われることに常に注意してください。
次の 2 つの事例は、異なるゾーンに Message Queue の異なるインスタンスおよび異なるバージョンをインストールする方法を説明します。
Message Queue を Solaris 10、Solaris 10U1、または Solaris 10U2 の完全ルートゾーンにインストールする場合は、最初に Lockhart を大域ゾーンでアップグレードする必要があります。詳細は、バグ 645030 の回避策を参照してください。
大域ゾーンにインストールしたいバージョンの Message Queue をインストールします。
これらのバージョンは、既存の非大域ゾーンに伝達されます。さらに追加の非大域ゾーンを作成する場合は、Message Queue はこれらのゾーンにも伝達されます。(疎ルートゾーンと同様、完全ルートゾーンに異なるインスタンスをインストールできますが、疎ルートゾーンを使用するとより効率的なディスク領域およびリソースの使用が可能になります)。
Message Queue を他のすべての非大域ゾーンに伝達させる場合は、この時点でゾーンを作成します。
それぞれの非大域ゾーンで Message Queue のインスタンスを実行します。
Message Queue を大域ゾーンからアンインストールします。
複数の完全ルートゾーンを作成し、各ゾーンが /usr ディレクトリを共有しないよう、ゾーンの作成時に次の指令を使用します
remove inherit-pkg-dir dir=/usr
それぞれの完全ルートゾーンに異なるバージョンの Message Queue をインストールします。
大域ゾーンでインストールまたはアンインストールされる Message Queue は、完全ルートゾーンで実行中のすべてのインスタンスおよびバージョンの Message Queue に影響することに留意してください。
「今回のリリースで修正されたバグ」では、Message Queue 3.7 UR1 で修正されたバグを説明しています。
表 1–4 Message Queue 3.7 UR1 で修正されたバグ
バグ番号 |
説明 |
---|---|
6193884 |
Message Queue は、メッセージの表示に非アスキー文字を必要とするロケールで文字化けメッセージを syslog に出力します。 |
6251450 |
クラスタのシャットダウン時、 connectList に ConcurrentModificationException が発生します。 |
6252763 |
java.nio.HeapByteBuffer.putLong/Int に java.nio.BufferOverflowException が発生します。 |
6260076 |
Oracle ストレージを使用すると、起動後に発行される最初のメッセージが遅くなります。 |
6260814 |
JMSXUserID 上のセレクタ処理が、常に false と評価されてしまいます。 |
6264003 |
キューブラウザにコミットされていないメッセージが表示されます。 |
6271876 |
消費されていないメッセージを含むコンシューマを閉じようとすると、接続フロー制御が正しく動作しなくなります。 |
6284769 |
QueueBrowser で、各列挙について新しいブラウザを作成して閉じた場合でもメモリーリークが発生します。 |
6294767 |
Message Queue ブローカがネットワークソケットを開く場合、そのネットワークソケット上に SO_REUSEADDR を設定する必要があります。 |
6304043 |
ブローカは、clientID が共有非持続性サブスクリプションに対して null ではないことを検証しません。 |
6307056 |
txn ログがパフォーマンス上のボトルネックになっています。 |
6320138 |
Message Queue C API では reply-to ヘッダーからキューの名前を決定することができません。 |
6320325 |
Solaris 上に JDK 1.4 と JDK 1.5 の両方がインストールされている場合、ブローカが JDK 1.5 より前に JDK 1.4 を検出してしまうことがあります。 |
6321117 |
マルチブローカクラスタの初期化で java.lang.NullPointerException が発生します。 |
6330053 |
サブスクライバからトランザクションをコミットしている場合、JMS クライアントランタイムで java.lang.NoClassDefFoundError が発生します。 |
6340250 |
C-API で MESSAGE タイプをサポート。 |
6351293 |
Derby データベースへのサポートを追加。 |
6381693 |
コンシューマのブローカが再起動したあと、リモートコンシューマに再配信されたメッセージの JMSRedelivered フラグが false に設定されます。 |
6388049 |
不完全な XA transaction トランザクションをクリーンアップできません。 |
6403958 |
コンシューマベースのフロー制御プロトコルを追加し、複数のレシーバに対して負荷分散を許可します。 |
6405393 |
デッドメッセージキューがもっとも古い、持続性のないメッセージを削除しようとしたときに、ブローカエラーが発生します。 |
6406862 |
ブローカエラー、監視送信先エラー: mq.metrics.destination.queue.Name のあとで、送信先を監視できません。 |
6415068 |
AS 8.1 UR2、JMS Message Queue 用の汎用リソースアダプタでトランザクションの復旧が失敗します。 |
6421781 |
次の構文を使用したブローカへの接続のサポート —b mqtcp://hostName:portNumber/serviceName |
6423696 |
Session.rollback が、COMMIT REPLY エラーのあとで消費されたメッセージを実際にロールバックしません。 |
この節には、製品の主要マニュアルには含まれていない最新の情報が含まれています。この節の内容は、次のとおりです。
インストール前の指示および Solaris、Linux、および HPUX プラットフォーム上の Java Enterprise System にバンドルされている Message Queue 製品のインストールに関連するその他すべての情報については、『Sun Java Enterprise System インストールガイド』を参照してください。
Solaris、Linux、HPUX および Windows プラットフォーム上の Java Enterprise System の一部としての Message Queue へのアップグレードに関連するアップグレードおよび移行の指示については、『Sun Java Enterprise System Upgrade and Migration Guide』を参照してください。
この節では、Message Queue 3.7 UR1 の互換性の問題を説明しています。
Message Queue で使用される多くのインタフェースは、時間の経過につれて変更される可能性があります。『Sun Java System Message Queue 3.7 UR1 管理ガイド』の付録 B「Message Queue インタフェースの安定度」では、インタフェースをそれらの安定性に従って分類しています。安定性に優れるインタフェースほど、製品の後継バージョンで変更される可能性は低くなります。
Message Queue の次回のメジャーリリースでは、クライアントがこのリリースとの互換性がなくなるような変更が導入される可能性があります。この情報は、このような変更に備えて準備しておくことができるようにするため、ここに記載されています。
Sun Java System Message Queue の一部としてインストールされる各ファイルの場所が変更される可能性があります。これによって、特定の Message Queue ファイルの現在の場所に依存する既存のアプリケーションの動作が中断する可能性があります。
3.5 以前のブローカは、これより新しいブローカのクラスタ内では動作できなくなる可能性があります。
今後のリリースでは、Message Queue クライアントは 1.3 より前のバージョンの JDK を使用できなくなる可能性があります。
次の節では、小さな訂正または追加以外の Message Queue のマニュアルの更新および変更について説明します。
『Sun Java System Message Queue 3.7 UR1 Developer’s Guide for C Clients』が更新され、MQGetDestinationName 関数、MQ_Message メッセージタイプ、および接続プロパティー MQ_UPDATE_RELEASE_PROPERTY の追加が反映されるようになりました。
『Sun Java System Message Queue 3.7 UR1 Developer’s Guide for Java Clients』が更新され、セキュリティー保護されたクライアントの設定および自動再接続時に発生した例外をクライアントが処理する方法についての情報が含まれるようになりました。
『Sun Java System Message Queue 3.7 UR1 管理ガイド』が更新され、ブローカのデータベーステーブルおよび固定ポートを使用するブローカの設定についての情報が提供されるようになりました。
この節には、Message Queue 3.7 UR1 の既知の問題についてのリストが含まれています。次の内容について説明します。
現時点のバグ、その状態、および回避策の一覧については、Java Developer Connection™ メンバーは、Java Developer Connection Web サイトの「Bug Parade」ページを参照してください。新しいバグを報告する前に、このページをチェックしてください。すべての Message Queue バグがリストされているわけではありませんが、このページはある問題が報告済みかどうかを知りたい場合に活用できます。
http://bugs.sun.com/bugdatabase/index.jsp
Java Developer Connection のメンバーになるのは無料ですが、登録が必要です。Java Developer Connection のメンバーになる方法についての詳細は、Sun の「For Developers」Web ページを参照してください。
新しいバグの報告や機能に関する要求を行うには、imq-feedback@sun.com 宛てにメールを送信してください。
SSL を使用した接続サービスでは現在、自己署名サーバー証明書、つまりホスト信頼モードしかサポートしていません。
HTTP トランスポートを使用している JMS クライアントが、Ctrl-C の使用などにより突然終了した場合、ブローカがクライアント接続や関連するすべてのリソースを解放するまでに、およそ 1 分かかります。
この 1 分の間にクライアントのほかのインスタンスが起動し、同じ ClientID、永続サブスクリプション、またはキューを使おうとした場合、そのインスタンスは「クライアント 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 6377527)。
この問題の原因の 1 つとして、接続が切断されたブローカのアドレスがループバック IP アドレス (127.0.0.1) として解決されていることが考えられます。
回避策 ブローカのアドレスがループバック IP アドレスとして解決されないようにします。
ブローカクラスタで、開始しないリモート接続へのメッセージをブローカがキューに入れる (バグ 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 ブローカに影響します。
imqbrokerd —license コマンドが、日付の古いまたは重複した情報を表示する。このコマンドは、もうサポートされていない試用版ライセンスについての情報を表示し (バグ ID 6489711)、無制限ライセンスについての重複した情報を表示します (バグ ID 6441015)。
回避策 これらは表面的な問題で、回避策は必要ありません。
ブローカはデッドメッセージキューのデフォルトの制限 (1000 メッセージ) を守らず、ブローカのメモリーがなくなるまでデッドメッセージキューにメッセージを追加し続けます。(バグ ID 6502744)
回避策 デッドメッセージキューの制限を 1001、または 1000 以外の任意の値に設定し直します。
Windows 2000 で HTTPS createQueueConnection が例外をスローする場合がある (バグ ID 4953348)
回避策 接続を再試行します。
Ctrl-C を使用してブローカをシャットダウンする場合、ストアが閉じられたあとにトランザクションがクリーンアップされることがある (バグ ID 49344466)。
メッセージまたはトランザクションの処理中にブローカがシャットダウンされた場合、「ストアが閉じられたあとに、ストアメソッドがアクセスされました。」という内容のエラーをブローカが表示することがあります。
回避策 エラーメッセージは無視できます。ブローカはコンシューマへのエラーの通知を正しく処理します。このエラーは、システムの信頼性には影響を与えません。
持続ストアがあまりにも多くの送信先を開く場合、ブローカがアクセス不可能になる (バグ ID 4953354)。
回避策 この状態はブローカがシステムのオープンファイル記述子の制限に達したことが原因です。Solaris や Linux では、ulimit コマンドを使って、ファイル記述子の制限を増やします。
送信先が破棄された場合、コンシューマが孤立する (バグ ID 5060787)。
送信先が破棄された場合、アクティブコンシューマが孤立します。いったんコンシューマが孤立すると、送信先が再作成された場合でもメッセージを受信しなくなります。
回避策 この問題には、回避策がありません。
JMSMessageID を使用したメッセージ選択が機能しない (バグ ID 6196233)。
回避策 次のセレクタを変更します。
JMSMessageID = "ID:message-id-string"
次のように変更します。
JMSMessageID IN (’ID:message-id-string’, ’message-id-string’)
Message Queue のキューブラウザが、コミットされていないメッセージも表示する (バグ ID 6264003)。
キューの内容を検索するとき、キューブラウザの列挙に、トランザクション内で生成されたがまだコミットされていないメッセージが表示されることがあります。
回避策 この問題には、回避策がありません。
コミット中にブローカがクラッシュしたあと、メッセージが利用できない (Bug ID 6467874)。
ごくまれなケースですが、ブローカのクラッシュ中にトランザクション内のメッセージをコンシューマが利用できなくなる場合があります。具体的にはごくまれに、コミットの処理中にメッセージが持続ストア内に取り残されることがあります。この状況が発生した場合、クラッシュ後にブローカを起動すると次のメッセージが表示されます。
[06/Sep/2006:10:11:11 PDT] ERROR [B2085]: Loading Destination q0 [Queue] failed. Messages stored on that destination will not be available.: > com.sun.messaging.jmq.jmsserver.util.BrokerException: The message 8-129.145.180.87(b8:8b:26:15:41:26)-38998-1157562551217 has an associated acknowledgement list already.
回避策 この問題には、回避策がありません。
Message Queue 3.7 UR1 のベータリリースには、スタンドアロン製品はありません。このリリースでは、Java Enterprise System インストーラを使用して Message Queue をインストールしてください。方法については『Sun Java System インストールガイド』を参照してください。
Sun Java System Message Queue 3.7 UR1 には、バイナリ形式で使用および配布可能な次のファイルのセットが含まれています。
jms.jar |
libmqcrt.so (UNIX) |
imq.jar |
libmqcrt.so (HPUX) |
imqxm.jar |
mqcrt1.dll (Windows) |
fscontext.jar |
|
さらに、LICENSE ファイルおよび COPYRIGHT ファイルも再配布できます。
このメディアの出版後にリリースされたアクセシビリティーを入手する場合は、請求に応じて Sun から提供される 508 条に関する製品評価資料を参照し、使いやすいソリューションの配備にもっとも適したバージョンを調べてください。最新バージョンのアプリケーションは、http://sun.com/software/javaenterprisesystem/get.html にあります。
アクセシビリティーに対する Sun の取り組みについては、http://sun.com/access を参照してください。
Sun Java System Message Queue で問題が発生した場合は、次のいずれかの方法でカスタマサポートにお問い合わせください。
Sun ソフトウェアサポートサービス http://www.sun.com/service/sunone/software
このサイトには、ナレッジベース、オンラインサポートセンター、ProductTracker へのリンクと保守プログラムおよびサポートの連絡先電話番号へのリンクがあります。
保守契約を結んでいるお客様の場合は、専用ダイヤルをご利用ください。
最善の問題解決のため、サポートに連絡する際には次の情報をご用意ください。
問題が発生する状況と、実行処理への影響を含む問題の説明。
マシンのタイプ、OS のバージョン、および製品のバージョン (問題に関連している可能性のあるパッチやその他のソフトウェアを含む)
問題を再現するために用いた詳細な手順。
すべてのエラーログまたはコアダンプ。
次のサイトでは、Sun Java System Message Queue フォーラムが利用できます。
http://swforum.sun.com/jive/forum.jspa?forumID=24
ご参加を歓迎いたします。
Java Technology Forums には、関連する JMS のフォーラムがあります。
弊社では、マニュアルの改善に努めており、お客様からのコメントおよびご忠告をお受けしております。
コメントを送るには、http://docs.sun.com にアクセスして「コメントの送信」をクリックしてください。このオンラインフォームでは、マニュアルのタイトルと Part No. もご記入ください。Part No. は、マニュアルのタイトルページか先頭に記述されている 7 桁または 9 桁の番号です。このマニュアルのタイトルは『Sun Java System Message Queue 3.7 UR1 リリースノート』で、Part No. は 820-0486 です。
次のインターネットのサイトで、Sun Java System の情報を参照できます。
関連文書
プロフェッショナルサービス
ソフトウェア製品およびサービス
Software Support Services
サポートおよびナレッジベース
Sun サポートおよびトレーニングサービス
コンサルティングおよびプロフェッショナルサービス
開発者向けの情報
Sun 開発者サポートサービス
ソフトウェアトレーニング