About

ドキュメント

Javadoc

モジュール

プロジェクト文書

Built by Maven

概要

リソースアダプタを使用するための設定ファイルには,次のコンポーネントを定義します.

ResourceAdapterDeployer (必須)
ResourceAdapterDeployerはMOMとの接続に使用するリソースアダプタを S2コンテナ内で利用可能にするコンポーネントです. 詳細は「リソースアダプタの設定」を参照してください.
BootstrapContext (任意)
BootstrapContextはリソースアダプタが使用するスレッドプール等を提供するコンポーネントです. 詳細は「スレッドプールの設定」を参照してください.

リソースアダプタの設定

ResourceAdapterDeployer

ResourceAdapterDeployerは,リソースアダプタを使用可能にするためのコンポーネントです.

ResourceAdapterDeployerの実装クラスを以下に示します.

  • org.seasar.jca.deploy.impl.RarResourceAdapterDeployer
  • org.seasar.jca.deploy.impl.FsResourceAdapterDeployer
  • org.seasar.jca.deploy.impl.WmqResourceAdapterDeployer

RarResourceAdapterDeployer

Rarファイルにパッケージングされているリソースアダプタを使用可能にするためのコンポーネントです.

コンストラクタ引数
引数説明
nThreads スレッドプールのスレッド数を指定します. 詳細は「スレッドプールの設定」を参照してください.
プロパティ
プロパティ必須説明デフォルト
path Yes リソースアダプタが提供するRarファイルへのパスを指定します. N/A
tempDir No リソースアダプタのJarファイルを解凍するディレクトリを指定します 省略時はデフォルトの一時ディレクトリが使用されます. java.io.Fileクラスによって提供されます. Fileクラスが提供する一時ディレクトリ
メソッド
メソッド説明
setProperty(String key, String value) リソースアダプタ固有のプロパティを指定します.

FsResourceAdapterDeployer

ファイルシステム上に展開されているリソースアダプタを使用可能にするためのコンポーネントです.

コンストラクタ引数
引数説明
nThreads スレッドプールのスレッド数を指定します. 詳細は「スレッドプールの設定」を参照してください.
プロパティ
プロパティ必須説明デフォルト
path Yes リソースアダプタが提供するRarが展開されているディレクトリへのパスを指定します. N/A
メソッド
メソッド説明
setProperty(String key, String value) リソースアダプタ固有のプロパティを指定します.

org.seasar.jca.deploy.impl.WmqResourceAdapterDeployer

Generic Resource Adapter for JMSと IBM WebSphere MQ (formerly known MQSeries) を組み合わせて使用するためのコンポーネントです.

コンストラクタ引数
引数説明
nThreads スレッドプールのスレッド数を指定します. 詳細は「スレッドプールの設定」を参照してください.
プロパティ
プロパティ必須説明デフォルト
path Yes Generic Resource Adapter for JMSが提供するRarファイルへのパスを指定します. N/A
tempDir No リソースアダプタのJarファイルを解凍するディレクトリを指定します 省略時はデフォルトの一時ディレクトリが使用されます. java.io.Fileクラスによって提供されます. Fileクラスが提供する一時ディレクトリ
メソッド
メソッド説明
setProperty(String key, String value) リソースアダプタ固有のプロパティを指定します.

リソースアダプタ固有のプロパティ

リソースアダプタ固有のプロパティは,使用するリソースアダプタのドキュメントを参照してください. 主なプロダクトのドキュメントを以下に示します.

Apache ActiveMQの場合

以下にオープンソースのMOMプロダクト,Apache ActiveMQを使用する例を示します.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components>
    <include path="j2ee.dicon"/>

    <component class="org.seasar.jca.deploy.impl.RarResourceAdapterDeployer">
        <!-- スレッドプールのスレッド数 -->
        <arg>10</arg>

        <!-- ActiveMQ ResourceAdapterへのパス -->
        <property name="path">
            "ra/activemq-rar-4.1.1.rar"
        </property>

        <!-- ActiveMQ Broker へのURL -->
        <initMethod name="setProperty">
            <arg>"ServerUrl"</arg>
            <arg>"tcp://localhost:61616?trace=true"</arg>
        </initMethod>
    </component>
</components>

IBM WebSphere MQの場合

以下にSun Generic Resource Adapter for JMSと IBM WebSphere MQ (formerly known MQSeries) を組み合わせて使用する例を示します.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components>
    <include path="j2ee.dicon"/>

    <component class="org.seasar.jca.deploy.impl.WmqResourceAdapterDeployer">
        <!-- スレッドプールのスレッド数 -->
        <arg>10</arg>

        <!-- Generic JMS ResourceAdapterへのパス -->
        <property name="path">
            "ra/genericra-1.5.rar"
        </property>
    </component>
</components>

スレッドプールの設定

BootstrapContext

通常は,ResourceAdapterDeployerのコンストラクタ引数で スレッドプールのスレッド数を指定します. この場合, Executors#newFixedThreadPool(int nThreads) で作成されたスレッドプールが使用されます.

異なるスレッドプール実装を使いたい場合は,次のようにBootstrapContextImplを定義し,コンストラクタ引数で Executor を実装したコンポーネントを指定します.

<component class="org.seasar.jca.lifecycle.BootstrapContextImpl">
    <arg>
        <component class="org.seasar.jca.work.WorkManagerImpl">
            <arg>
                @java.util.concurrent.Executors@newCachedThreadPool()
            </arg>
        </component>
    </arg>
</component>

スレッドプールのスレッドがどのように使われるかはリソースアダプタの実装に依存します. リソースアダプタに合わせて適切に設定してください. 多くの場合,アウトバウンド通信ではスレッドプールはあまり使われていないようです. インバウンド通信では同時に処理できるメッセージの数に影響します. S2JMS-Containerメッセージを順序を維持して処理する場合はスレッド数を1に設定してください.