Java Message Service

このセクションでは、JRun 管理者のための JMS (Java Message Service) に関する注意事項について説明します。デフォルトの JRun JMS プロバイダを使用する方法、代わりに SonicMQ JMS を使用する方法、およびファクトリと送信先を設定する方法について説明します。

JMS プロバイダの選択は、jrun.xml ファイルの設定によって制御されます。このファイルでは、JRun のデフォルトの JMS プロバイダを使用するか、または SonicMQ などのサードパーティの JMS プロバイダを使用するかを指定します。jrun.xml ファイルは、次のサービスを使用して JMS プロバイダを定義します。

JMSAdapter サービスと JMSServiceWrapper サービスを変更するには、jrun.xml ファイルをテキストエディタで変更します。

メモ:  JMS の管理とプログラミングの補足情報については、JMS リソースやこのマニュアルの例を使用する以外に、JMS に関する専門書を使用して取得することもできます。このマニュアルの序章に、これらの書籍のリストが記載されています。

デフォルトの JMS プロバイダの使用

jrun.xml ファイルおよび JMC で設定した内容の他に、SERVER-INF/jrun-jms.xml ファイルを使用して、JRun のデフォルトの JMS プロバイダの動作を制御します。jrun-jms.xml ファイルを変更するにはテキストエディタを使用します。JMC は使用しません。

jrun-jms.xml ファイルには、パーシスタンス設定とサーバ設定があります。

パーシスタンスマネージャ設定

デフォルトの JMS プロバイダは、次のパーシスタンスマネージャをサポートしています。
パーシスタンスタイプ
説明
File (デフォルト)
JRun では、独自のプロトコルを使用してメッセージを SERVER-INF/jms ディレクトリに保管します。
DBMS
JRun では、メッセージテーブル、ハンドルテーブル、コンシューマテーブル、および送信先テーブルを使用して、メッセージをリレーショナルデータベースに保管します。DBMS を使用したパーシスタンスを使用するには、SERVER-INF/jms ディレクトリにあるスクリプトを使用して、サイト固有のデータベースにデータベーステーブルを設定します。さらに、jrun-jms.xml ファイルにデータソースを定義する必要があります。このデータソースには、同じ JRun サーバにある既存のデータソースと同じ名前を使用することはできません。

パーシスタンスタイプは、jrun-jms.xml ファイルの active-adapter-type 要素によってfile または rdbm に指定されます。必要に応じ、cache 要素を使用して、JMS プロバイダがメッセージをキャッシュするかどうかを制御できます。さらに、transact 要素を使用して、DBMS プロバイダがトランザクション機能を使用するかどうかを指定することもできます。これらの要素の他には通常、jrun-jms.xml ファイルの要素を変更することはありません。

JMS サーバ設定

jrun-jms.xml ファイルには、次の要素もあります。
要素
説明
transport
JMS プロバイダで使用するトランスポートメカニズムを指定します。RMI または intraVM です。これらは、JMC が表示するキュー接続ファクトリとトピック接続ファクトリの設定です。
connection-factory
デフォルトの JMS プロバイダのキュー接続ファクトリとトピック接続ファクトリの設定を指定します。
scheduler
内部使用。この要素は変更しないでください。
message-manager
キャッシュ設定とスレッド設定を指定します。
garbage-collection
ガーベッジコレクション設定を、秒単位で指定します。
destinations
システム送信先。この要素は変更しないでください。
JNDI 設定
クライアントが InitialContext コンストラクタの Properties オブジェクトに渡す必要があるプロパティと値を指定します。JRun サーバをリモートクライアントで
使用している場合は、PROVIDER_URL を localhost や 127.0.0.1 ではなく、その JRun サーバの実際のホスト名と JNDI ポート番号に変更する必要があります。

JRun での他の JMS プロバイダの使用

JRun では、付属の JMS プロバイダの代わりに、サードパーティの JMS プロバイダを使用できます。JMS プロバイダを切り替えるには、JRun サーバの jrun.xml ファイルの関連セクションを編集します。

メモ:  JRun は、SonicMQ のバージョン 3.5 を使用して検証されています。他のバージョンの SonicMQ はサポートされておらず、SonicMQ 3.5 だけが JRun 4.0 で現在サポートされているサードパーティの JMS プロバイダです。

SonicMQ の使用

ここでは、JRun に組み込まれている JMS プロバイダの代わりに、Progess Software の SonicMQ JMS を使用する手順について説明します。

SonicMQ を JMS プロバイダとして使用するように設定すると、JRun では対象となる SonicMQ の専用インスタンスを自動的に実行します。専用インスタンスの使用するポートと、同じホストで実行中の他のインスタンスの使用するポートが重複しないことだけを注意してください。

SonicMQ をインストールするには、SonicMQ のインストールに関するドキュメントにある手順に従ってください。JRun で使用する場合、SonicMQ の特別なインストール設定は必要ありません。

SonicMQ を使用するように JRun を設定するには、テキストエディタを使用して、JRun に組み込まれているアダプタおよびサービスラッパーの代わりに SonicMQ アダプタおよびサービスラッパーを使用するように、JRun サーバの jrun.xml ファイルを変更します。デフォルトの jrun.xml ファイルには、SonicMQ アダプタおよびラッパーの正しい設定例がコメントに含まれています。SonicMQ のサーバ固有の設定も行います。

JRun を SonicMQ 対応に設定するには

  1. <JRun のルートディレクトリ>/servers/<サーバのルートディレクトリ>/SERVER-INF ディレクトリにある、JRun サーバの jrun.xml ファイルを開きます。
  2. <service class="jrun.jms.adapter.JRunMQAdapter" name="JMSAdapter"> で始まるセクションを探し、これをコメントに含めます。
  3. <service class="jrun.jms.wrapper.JRunMQServiceWrapper" name=
    "JMSServiceWrapper"> で始まるセクションを探し、これをコメントに含めます。
  4. その次の行のコメントに含まれている、SonicMQ アダプタに関する JMSAdapter および JMSServiceWrapper の 2 つのセクションを探し、コメントを外して有効にします。これらのセクションはそれぞれ、<service class="jrun.jms.adapter.SonicMQAdapter" name="JMSAdapter">
    および <service class="jrun.jms.wrapper.SonicMQServiceWrapper" name="JMSServiceWrapper"> という行で始まります。
  5. jrun.jms.adapter.SonicMQAdapter セクションで、ローカルの SonicMQ インストールを反映するように、次の属性を編集します。
    属性
    説明
    HomeDir
    SonicMQ をインストールしたディレクトリへの絶対パスを指定します。例:C:\Program Files\SonicSoftware\SonicMQ
    ConfigFileName
    Sonic の専用インスタンスを起動するときに JRun が使用する SonicMQ 設定ファイルの名前を指定します。
    このファイルは、HomeDir 属性によって指定されたディレクトリにある必要があります。
    ClassPath
    SonicMQ lib ディレクトリにあるclient.jar、broker.jar、defdb_server.jar の各 JAR ファイルのエントリを指定します。
    これは標準 Java クラスパス指定であるため、プラットフォーム固有の適切な区切り文字およびシンタックスを使用する必要があります。これは、SonicMQ で必要とされる最小のクラスパスです。ローカル設定と SonicMQ の使用によって、この属性に SonicMQ lib ディレクトリにある他の JAR が必要になる場合もあります。
    Port
    JRun と SonicMQ の間の通信に使用するポートを指定します。
    このポートは使用可能であり、同じホストで実行中の他の SonicMQ インスタンスが使用するポートとの重複を避ける必要があります。このポート設定は、JRun と Sonic の間の通信に使用するコネクタであるブローカマネージャが使用します。
    SonicMQ がこのブローカマネージャからの接続を受け入れるには、SonicMQ 設定ファイルの PORT 行も変更する必要があります。この設定ファイルは、HomeDir 属性で指定された SonicMQ インストールのルートディレクトリにあります。デフォルトでは、SonicMQ 設定ファイルの名前は broker.ini です。JRun が別の Sonic 設定ファイルを使用し、このホストで起動する Sonic のデフォルトインスタンスではないインスタンスを起動するには、ConfigFileName 属性を使用して、代わりの SonicMQ 設定ファイルの名前を指定します。
  6. SonicMQ lib ディレクトリにある SonicMQ の client.jar ファイルおよび broker.jar ファイルを <JRun のルートディレクトリ>/servers/lib ディレクトリにコピーします。

    このディレクトリにある JAR ファイルは、実行する JRun サーバのクラスパスに自動的に追加されます。

  7. jrun-resources.xml ファイルにある JMS 接続ファクトリの transport 属性が TCPIP に設定されていることを確認します。SonicMQ でサポートされているトランスポートタイプは、TCP/IP だけです。

ファクトリおよび送信先の設定

JRun は、次のタイプの JMS ファクトリおよび送信先を管理します。

JMS 接続ファクトリを使用すると、送信者と受信者の両方のクライアントが JMS との接続を確立できます。クライアントは JNDI 検索を使用して JMS 接続ファクトリにアクセスし、このファクトリを使用して接続を確立します。クライアントは、JNDI を介してキューやトピックなどの送信先にもアクセスします。

通常、JMC を使用してファクトリ、送信先、および JNDI でのこれらの場所を定義します。ファクトリおよび送信先の情報は jrun-resources.xml ファイルに保管されます。このファイルは、手動で編集することも可能です。jrun-resources.xml ファイルの詳細については、「リソース:jrun-resources.xml ファイル」または JRun オンラインドキュメントのホームページからアクセスできる、オンラインディスクリプタについてのドキュメントを参照してください。

ファクトリおよび送信先の詳細については、JMC のオンラインヘルプを参照してください。