Sun Java System Message Queue 3.7 UR1 技術の概要

機能リスト

表 B–1 Message Queue の機能

機能 

説明と参照情報 

管理ツール 

Message Queue サービスは、GUI ツールとコマンド行ツールを備えており、これらのツールによって、送信先、トランザクション、永続サブスクリプション、管理対象オブジェクトストア、ユーザーリポジトリ、JDBC 準拠のデータストア、およびサーバー証明書を管理することができます。 

参照情報

「管理ツール」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 1 章「Administrative Tasks and Tools」

認証 

ブローカへの接続を要求するユーザーを認証します。

Message Queue サービスを使用して、ユーザーの名前とパスワードをユーザーリポジトリに格納されている値と比較して検証することにより、ユーザーがブローカに接続できるようにします。リポジトリとして Message Queue に付属している単層型ファイルリポジトリを使用することも、LDAP リポジトリ (LDAP v2 または v3 プロトコル) を使用することもできます。 

使用手順

  1. ユーザーリポジトリを作成するかデフォルトのインスタンスを使用します。

  2. imqusermgr ツールを使用してリポジトリに値を入力します。

参照情報

「認証と承認」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 7 章「Managing Security」

承認 

ユーザーによる特定の操作の実行を承認します。

Message Queue サービスを使用して、ユーザーおよびユーザーのグループが実行できる操作を指定するアクセス制御プロパティーファイルを作成することができます。ブローカは、クライアントによって、コネクションの作成、プロデューサの作成、コンシューマの作成、またはキューの参照を要求されたときにこのファイルを確認します。 

使用手順

ブローカインスタンス用に自動的に作成されたアクセス制御プロパティーファイルを編集します。 

参照情報

「認証と承認」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 7 章「Managing Security」

自動再接続 

管理者は、コネクションファクトリ管理対象オブジェクトに対してコネクションの属性を設定し、コネクションに障害が発生した場合に自動再接続できるようにします。再接続は、同じブローカに対して行うか、クラスタが使用されている場合はクラスタ内の別のブローカに対して行うことができます。再接続の試行回数と試行の間隔を指定することができます。クラスタ化されたブローカの場合は、ブローカのリストを反復する回数および特定の順序でリストを反復するかどうかを指定することもできます。

参照情報

「コネクションサービス」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 8 章「Managing Administered Objects」

ブローカクラスタ 

管理者は、ブローカインスタンスをブローカクラスタにグループ化することで、数多くのブローカインスタンスの間でクライアントコネクションとメッセージ配信のバランスを取ることができます。

使用手順

  1. クラスタ内の各ブローカのクラスタ設定プロパティーを指定します。この操作は、設定ファイルを使用するか、各ブローカのプロパティーを設定することで実行できます。

  2. マスターブローカがある場合は、マスターブローカを起動します。

  3. クラスタ内のほかのブローカを起動します。

参照情報

第 4 章「ブローカクラスタ」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 9 章「Working With Broker Clusters」

ブローカの設定 

管理者は、ブローカのプロパティーを設定して、Message Queue サービスのパフォーマンスを調整できます。調整するプロパティーには、ルーティングサービス、持続サービス、セキュリティー、監視、管理対象オブジェクトの管理が含まれます。 

参照情報

第 3 章「Message Queue サービス」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 4 章「Configuring a Broker」

C クライアントサポート 

C クライアントは Message Queue メッセージングサービスを使用して、メッセージを送受信することができます。C API により、旧バージョンの C アプリケーションと C++ アプリケーションを JMS ベースのメッセージに加えることができます。 

Message Queue の C API は、標準 JMS 機能のほとんどに対応する C クライアントランタイムによってサポートされています。ただし、例外は管理対象オブジェクト、マップ、ストリーム、メッセージ本体のタイプ、分散トランザクション、およびキューブラウザを使用する場合です。C クライアントランタイムも、Message Queue のエンタープライズ機能のほとんどをサポートしません。

参照情報

「Java クライアントと C クライアント」

『Sun Java System Message Queue 3.7 UR1 Developer’s Guide for C Clients 』

圧縮されたメッセージ 

Java クライアントは、送信するメッセージをクライアントランタイムで圧縮するように、メッセージプロパティーを設定することができます。コンシューマ側のランタイムは、メッセージを解凍してからコンシューマに配信します。メッセージの圧縮によって実際にパフォーマンスが向上するかどうかを判断するために使用できる追加のプロパティーが用意されています。

参照情報

「メッセージ本体」

『Sun Java System Message Queue 3.7 UR1 Developer’s Guide for Java Clients』「Managing Message Size」

設定可能な持続性 

管理者は、Message Queue に付属しているファイルベースの持続ストアを使用するか、Oracle 8i などの JDBC 準拠のデータベースを使用するようにブローカを設定することができます。

使用手順

ファイルシステム持続ストレージまたは JDBC 準拠ストレージに関連するブローカのプロパティーを設定します。 

参照情報

「持続サービス」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』「Configuring a Persistent Data Store」

設定可能な物理的な送信先 

管理者は、送信先を作成するときに物理的な送信先のプロパティーを設定することによって、いくつかのメッセージング動作を定義することができます。すべての送信先に対して、次の動作を設定できます (コンシュームされていないメッセージの最大数またはそのようなメッセージで使用可能な最大メモリー量、メモリーの制限に達した場合にブローカで拒否するメッセージ、プロデューサとコンシューマの最大数、最大メッセージサイズ、1 回のバッチで配信されるメッセージの最大数、送信先がローカルのコンシューマにのみ配信できるかどうか、送信先上のデッドメッセージをデッドメッセージキューに移動できるかどうか)。 

参照情報

「送信先とルーティングサービス」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 6 章「Managing Physical Destinations」

接続の ping 

管理者は、コネクションファクトリーの属性を設定して、クライアントランタイムからブローカへの ping 操作の頻度を指定することができます。これにより、クライアントは、失敗したコネクションを前もって検出することができます。

参照情報

「コネクションサービス」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』「Connection Services」

デッドメッセージキュー 

Message Queue メッセージサービスは、期限切れになったかまたはブローカが処理できなかったメッセージを保持するためのデッドメッセージキューを作成します。キューの内容を調べて、システムのパフォーマンスを監視、調整、または問題を解決することができます。

参照情報

「送信先とルーティングサービス」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 6 章「Managing Physical Destinations」

HTTP コネクション 

Java クライアントは、ブローカへの HTTP コネクションを作成することができます。

HTTP トランスポートにより、ファイアウォールを通過してメッセージを配信できます。Message Queue は、Web サーバー環境で実行される HTTP トンネルサーブレットを使用して、HTTP の仕組みを実装しています。クライアントによってプロデュースされるメッセージは、クライアントランタイムによって HTTP 要求としてラップされ、HTTP を介し、ファイアウォールを通過してトンネルサーブレットに配信されます。トンネルサーブレットは HTTP 要求から JMS メッセージを抽出し、そのメッセージを TCP/IP 経由でブローカに配信します。 

使用手順

  1. HTTP トンネルサーブレットを Web サーバー上に配備します。

  2. ブローカの httpjms コネクションサービスを設定し、ブローカを起動します。

  3. HTTP コネクションを設定します。

  4. ブローカへの HTTP コネクションを取得します。(Java クライアントのみ。)

参照情報

「ブローカへの接続」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の付録 C「HTTP/HTTPS Support」

対話型の監視 

管理者は、imqcmd metrics コマンドを使用して、ブローカをリモートから監視することができます。監視するデータには、JVM メトリックス、ブローカメッセージのフロー、コネクション、コネクションリソース、メッセージ、送信先メッセージのフロー、送信先リソースの使用状況が含まれます。

参照情報

「監視サービス」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 10 章「Monitoring a Broker」

J2EE リソースアダプタ 

Message Queue によって提供されるリソースアダプタを、J2EE 準拠のアプリケーションサーバーにプラグインすることができます。J2EE にはアプリケーションサーバー内で実行される分散コンポーネントが信頼性の高い非同期メッセージを使用して対話できるという要件があり、Message Queue を JMS プロバイダとして使用することによって、アプリケーションサーバーはこの要件を満たすことができます。

使用手順

アダプタの属性を設定することによってアダプタを設定します。 

参照情報

「J2EE アプリケーションサーバーのサポート 」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 17 章「JMS Resource Adapter Property Reference」

JNDI サービスプロバイダのサポート 

クライアントは、JNDI API を使用して管理対象オブジェクトを検索することができます。 

管理者は、imqobjmgr ユーティリティーを使用して、JNDI を使用してアクセス可能なオブジェクトストア内の管理対象オブジェクトの追加、一覧表示、更新、および削除を行うことができます。

参照情報

「管理ツール」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 8 章「Managing Administered Objects」

LDAP サーバーのサポート 

管理者は、LDAP サーバーを使用して、管理対象オブジェクトの保存および認証と承認に必要なユーザー情報を保存することができます。デフォルトでは、Message Queue では、このデータ用のファイルベースストレージを用意しています。 

管理対象オブジェクト用に使用するには

  1. ベンダーによって提供されているツールを使用して、ユーザーリポジトリの値の入力と管理を行います。

  2. LDAP 関連のブローカプロパティーを設定します。

  3. 管理ユーザーのアクセス制御を設定します。

参照情報

「セキュリティーサービス」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 7 章「Managing Security」

ユーザーリポジトリ用にするには

  1. ベンダーによって提供されているツールを使用して、LDAP サーバーを設定します。

  2. LDAP 関連のブローカプロパティーを設定して、初期コンテキストとストアの場所を定義します。

  3. LDAP サーバーの動作のセキュリティー保護に関連する LDAP 関連のブローカプロパティーを設定します。

参照情報

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 7 章「Managing Security」

メモリーリソース管理 

管理者は、次の動作を設定することができます。

  1. 送信先のプロパティーを設定して、プロデューサの最大数、メッセージの最大サイズ、および任意のメッセージの最大サイズを指定できます。

  2. 送信先のプロパティーを設定してメッセージフローを制御します。

  3. 送信先のプロパティーを設定して各送信先のメッセージフローを管理します。

  4. ブローカのプロパティーを設定して、そのブローカのすべての送信先のメッセージ制限を指定します。

  5. ブローカのプロパティーを設定して、ブローカがさらに深刻な状況に陥ったときに、メモリーの過負荷を避けるためのアクションを実行できるように、使用可能なシステムメモリーのしきい値を指定します。実行されるアクションは、メモリーリソースの状態によって異なります。

参照情報

「送信先とルーティングサービス」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 4 章「Configuring a Broker」

メッセージ圧縮 

開発者は、送信する前にクライアントランタイムでメッセージを圧縮するようにメッセージヘッダーのプロパティーを設定することができます。クライアントランタイムは、メッセージを解凍してからコンシューマに配信します。

参照情報

「メッセージプロパティー」

『Sun Java System Message Queue 3.7 UR1 Developer’s Guide for Java Clients』「Message Compression」

クライアントに対するメッセージフローの制御 

管理者または開発者は、接続を設定して、さまざまなフロー制限と測定手段を指定してペイロードメッセージとコントロールメッセージの衝突を最小限に抑え、これによりメッセージのスループットを最大限に高めることができます。

使用手順

コネクションファクトリ管理対象オブジェクトのフロー制御属性を設定するか (管理者)、コネクションファクトリのフロー制御プロパティーを設定します (開発者)。 

参照情報

「コネクションファクトリとコネクション」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』「Connection Services」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』「Connection Factory Attributes」

メッセージベースの監視 API 

Java クライアントは監視 API を使用してカスタム監視アプリケーションを作成することができます。監視アプリケーションは、特殊なトピック送信先からメトリックスメッセージを取得するコンシューマです。

使用手順

  1. メトリックス監視クライアントを作成します。

  2. ブローカのプロパティーを設定して、ブローカのメトリックスメッセージプロデューサを設定します。

  3. メトリックストピック送信先のアクセス制御を設定します。

  4. 監視クライアントを起動します。

参照情報

「監視サービス」

『Sun Java System Message Queue 3.7 UR1 Developer’s Guide for Java Clients』の第 4 章「Using the Metrics Monitoring API」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 10 章「Monitoring a Broker」

複数のコンシューマへのキューの配信 

クライアントは特定のキューに対して複数のコンシューマを登録することができます。

管理者は、アクティブコンシューマの最大数、キューのバックアップコンシューマの最大数を指定することができます。ブローカは、メッセージを登録コンシューマに分配することができるので、コンシューマ間で負荷が分散され、システムの拡張性が維持されます。 

使用手順

物理的な送信先のプロパティー maxNumActiveConsumers maxNumBackupConsumers を設定します。

参照情報

「ポイントツーポイントメッセージング」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 15 章「Physical Destination Property Reference」

信頼性の高いデータ持続 

絶対的な信頼性を確保するために、imq.persist.file.sync.enabled プロパティーを true に設定することで、オペレーティングシステムがデータを必ず同期的に書き込むようにすることができます。この同期化により、システム障害によるデータの損失をなくすことができますが、パフォーマンスは低下します。これで、データは失われなくなりますが、この時点でデータがクラスタ化されたブローカで共有されていないため、クラスタ内のほかのブローカはデータを利用できません。システムが再び稼動したときに、ブローカは確実に操作を再開することができます。

参照情報

「持続サービス」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』「Persistence Properties」

セキュリティー保護コネクション 

クライアントは、TCP/IP および HTTP トランスポートでの SSL (Secure Socket Layer) 標準を使用してメッセージ送信をセキュリティー保護することができます。これらの SSL ベースのコネクションサービスでは、クライアントとブローカ間で送信されるメッセージを暗号化することができます。 

SSL のサポートは、自己署名サーバー証明書に基づいています。Message Queue は、非公開 / 公開キーを生成するユーティリティーを備え、自己署名証明書に公開キーを埋め込みます。証明書はブローカへのコネクションを要求しているクライアントに渡され、クライアントはこの証明書を使用して暗号化されたコネクションを設定します。

使用手順

  1. 自己署名付き証明書または署名済み証明書を生成します。

  2. セキュリティー保護サービスを有効にします。

  3. ブローカを起動します。

  4. クライアントのセキュリティーコネクションのプロパティーを設定し、クライアントを実行します。

参照情報

「ブローカへの接続」

「セキュリティーサービス」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 7 章「Managing Security」

『Sun Java System Message Queue 3.7 UR1 Developer’s Guide for C Clients』「Working With Secure Connections」

SOAP サポート 

クライアントは、SOAP (XML) メッセージを受信し、それらのメッセージを JMS メッセージとしてラップし、JMS メッセージと同じように Message Queue を使用して交換することができます。

クライアントは、特殊なサーブレットを使用して SOAP メッセージを受信し、ユーティリティークラスを使用して SOAP メッセージを JMS メッセージとしてラップすることができます。さらに別のユーティリティークラスを使用して SOAP メッセージを JMS メッセージから抽出することができます。クライアントは標準の SAAJ ライブラリを使用して、SOAP メッセージをアセンブルまたは逆アセンブルすることができます。 

参照情報

「SOAP メッセージの処理」

『Sun Java System Message Queue 3.7 UR1 Developer’s Guide for Java Clients』の第 5 章「Working with SOAP Messages」の「Working With SOAP Message」

スレッド管理 

管理者は、特定のコネクションサービスに割り当てられるスレッドの最大数と最小数を指定することができます。管理者はまた、共有スレッドモデルを使用して、コネクションサービスのスループットを増加させることができるかどうかを決定できます。これにより、アイドル状態のコネクションに割り当てられているスレッドをほかの接続で使用できます。

使用手順

コネクションサービスのスレッド関連プロパティーを設定します。 

参照情報

「スレッドプール管理」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 4 章「Configuring a Broker」

調整可能なパフォーマンス 

管理者は、ブローカのプロパティーを設定して、メモリーの使用状況、スレッド処理リソース、メッセージのフロー、コネクションサービス、信頼性パラメータ、およびメッセージのスループットとシステムのパフォーマンスに影響を与えるほかの要素を調整できます。

参照情報

「監視サービス」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』「Monitoring Services」

『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 11 章「Analyzing and Tuning a Message Service」