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

Rarファイル内にパッケージされているJarファイルと,Rarファイルと同じディレクトリにあるJarファイルがクラスパスに追加されます.

コンストラクタ引数
引数説明
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) を組み合わせて使用するためのコンポーネントです.

Rarファイル内にパッケージされているJarファイルと,Rarファイルと同じディレクトリにあるJarファイルがクラスパスに追加されます. IBM WebSphere MQのJarファイルはGeneric Resource Adapter for JMSのRarファイルと同じディレクトリに配置してください.

コンストラクタ引数
引数説明
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>

JBoss Messagingの場合

以下にSun Generic Resource Adapter for JMSと JBoss Messaging を組み合わせて使用する例を示します.

<?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>

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

        <!-- JBoss Messaging を JNDI 経由で利用します -->
        <initMethod name="setProperty">
            <arg>"ProviderIntegrationMode"</arg>
            <arg>"jndi"</arg>
        </initMethod>

        <!-- XA を使用します -->
        <initMethod name="setProperty">
            <arg>"SupportsXA"</arg>
            <arg>"true"</arg>
        </initMethod>

        <initMethod name="setProperty">
            <arg>"RMPolicy"</arg>
            <arg>"OnePerPhysicalConnection"</arg>
        </initMethod>

        <!-- JNDI の設定です (JBoss APサーバの位置にあわせて URL を変更してください) -->
        <initMethod name="setProperty">
            <arg>"JndiProperties"</arg>
            <arg>"java.naming.provider.url=jnp://localhost:1099,java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory,java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces"</arg>
        </initMethod>
    </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に設定してください.