JMS API は、Java EE アプリケーションおよびコンポーネントで、メッセージの作成、送信、受信、および読み取りを可能にするメッセージング標準です。この API によって、緩やかに結合され、信頼性が高く、非同期の分散通信が可能となります。
一般的に、Enterprise Server の JMS メッセージングのサポートや、特にメッセージ駆動型 Bean のサポートでは、「JMS プロバイダ」が必要です。Enterprise Server は、Sun GlassFish メッセージキュー ソフトウェアをネイティブの JMS プロバイダとして使用し、透過的な JMS メッセージングのサポートを提供します。このサポートは、Enterprise Server では「JMS サービス」と呼ばれます。JMS で必要になるのは最低限の管理のみです。JMS クライアントが JMS 管理対象オブジェクトにはじめてアクセスするときに、クライアントの JVM が Enterprise Server から JMS 構成を受け取ります。
JMS リソースはコネクタの一種です。Message Queue は、「コネクタモジュール」によって Enterprise Server と統合されます。コネクタモジュールはリソースアダプタとも呼ばれ、Java EE Connector Architecture Specification 1.6 で定義されています。Enterprise Server に配備されるすべての Java EE コンポーネントは、コネクタモジュールによって統合された JMS プロバイダを使用して、JMS メッセージを交換します。JMS リソースが Enterprise Server に作成されるときに、コネクタリソースがバックグラウンドで作成されます。JMS 操作はそれぞれコネクタのランタイムを呼び出し、Message Queue コネクタモジュールをバックグラウンドで使用します。Enterprise Server は JMS 接続を自動的にプールします。
すべての JMS 接続で使用されるプロパティーを設定できます。これらのプロパティーを実行時に更新する場合は、プロパティーの更新後に作成された接続ファクトリのみに、更新した値が適用されます。既存の接続ファクトリは元のプロパティー値のままになります。ほとんどの値は、Enterprise Server を再起動して有効にする必要があります。手順については、「ドメインの再起動」を参照してください。Enterprise Server を再起動せずに更新できるプロパティーは、デフォルト JMS ホストだけです。
Message Queue は、Enterprise Server に LOCAL、REMOTE、または EMBEDDED のモードで統合できます。これらのモードは、JMS の type 属性で表されます。
「LOCAL モード」。Enterprise Server は、デフォルト JMS ホストとして指定された Message Queue ブローカを起動または停止します。Message Queue プロセスは、Enterprise Server プロセスとは別の仮想マシンで開始されます。Enterprise Server はブローカに追加ポートを提供し、ブローカはこのポートを使用して RMI レジストリを起動します。このポート番号は、そのインスタンス用に設定された JMS ポートの番号に 100 を足した値になります。たとえば、JMS ポート番号が 37676 である場合、この追加ポートの番号は 37776 になります。
LOCAL モードでは、「起動引数」属性を使用して Message Queue ブローカの起動パラメータを指定します。
「REMOTE モード」。type 属性が REMOTE に設定されている場合は、Message Queue ブローカを Enterprise Server から独立して起動および停止する必要があります。Message Queue のツールを使用して、ブローカを設定および調整する必要があります。この状況では、Enterprise Server は外部で設定されたブローカを使用するか、ブローカクラスタを使用します。「REMOTE」 の type 属性はクラスタ環境にもっとも適しています。
REMOTE モードでは、Message Queue のツールを使用して、Message Queue ブローカの起動パラメータを指定する必要があります。「起動引数」属性は無視されます。
「EMBEDDED モード」 (デフォルト)。JMS の type 属性が EMBEDDED に設定されている場合、Enterprise Server と JMS ブローカは同じ仮想マシンに共存します。JMS サービスは、Enterprise Server によってインプロセスで起動され管理されます。
EMBEDDED モードでは、JMS 操作はネットワークスタックの処理を省略するため、パフォーマンスが最適化されます。
Message Queue の管理については、『Sun GlassFish Message Queue 4.4 Administration Guide 』を参照してください。