About

ドキュメント

Javadoc

モジュール

プロジェクト文書

Built by Maven

概要

オープンソースのMOMプロダクト,Apache ActiveMQ を 使用する場合の設定例を示します.

リソースアダプタの設定

ResourceAdapterDeployerに設定可能なActiveMQ固有のプロパティは, 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 -->
        <!-- 外部プロセスの ActiveMQ Broker を使用する場合 -->
        <initMethod name="setProperty">
            <arg>"ServerUrl"</arg>
            <arg>"tcp://localhost:61616"</arg>
        </initMethod>
        <!-- 埋め込み (インプロセス) の ActiveMQ Broker を使用する場合 -->
        <!--
        <initMethod name="setProperty">
            <arg>"ServerUrl"</arg>
            <arg>"vm:(broker:(tcp://localhost:61616)?persistent=false&amp;useJmx=false)"</arg>
        </initMethod>
        -->
    </component>
</components>

アウトバウンド通信の設定

ManagedConnectionFactoryDeployerに設定可能なActiveMQ固有のプロパティは, 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="jms-ra.dicon"/>

    <!-- マネージドコネクションファクトリ -->
    <component class="org.seasar.jms.core.deploy.impl.JMSManagedConnectionFactoryDeployer">
        <property name="managedConnectionFactoryClass">
            "org.apache.activemq.ra.ActiveMQManagedConnectionFactory"
        </property>
    </component>

    <!-- セッションファクトリ -->
    <component class="org.seasar.jms.core.session.impl.SessionFactoryImpl"/>

    <!-- メッセージ送信コンポーネント -->
    <component instance="prototype"
            class="org.seasar.jms.core.impl.MessageSenderImpl">
        <property name="destinationFactory">
            <!-- デスティネーション (キューまたはトピック) ファクトリ -->
            <component class="org.seasar.jms.core.destination.impl.QueueFactory">
                <!-- キュー名を指定します -->
                <property name="name">"Foo"</property>
            </component>
        </property>
    </component>

    <!-- メッセージ受信コンポーネント -->
    <component instance="prototype"
            class="org.seasar.jms.core.impl.MessageReceiverImpl">
        <property name="destinationFactory">
            <!-- デスティネーション (キューまたはトピック) ファクトリ -->
            <component class="org.seasar.jms.core.destination.impl.QueueFactory">
                <!-- キュー名を指定します -->
                <property name="name">"Bar"</property>
            </component>
        </property>
    </component>
</components>

インバウンド通信

ActivationSpecDeployerに設定可能なActiveMQ固有のプロパティは, 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="jms-ra.dicon"/>

    <!-- アクティベーションスペック -->
    <component name="activationSpecDeployer"
        class="org.seasar.jca.deploy.impl.ActivationSpecDeployer">
        <property name="activationSpecClassName">
            "org.apache.activemq.ra.ActiveMQActivationSpec"
        </property>

        <!-- メッセージを並行に受信するセッション数を設定します (デフォルト 10) -->
        <!-- この値は ResourceAdapterDeployer のスレッド数を超えないようにしてください -->
        <!--
        <initMethod name="setProperty">
            <arg>"maxSessions"</arg>
            <arg>"10"</arg>
        </initMethod>
        -->

        <!-- 受信するデスティネーションを設定します -->
        <initMethod name="setProperty">
            <arg>"destination"</arg>
            <arg>"Foo"</arg><!-- デスティネーションの名前 (キュー名またはトピック名) に変更してください -->
        </initMethod>

        <!-- 受信するデスティネーションの種類 (キューまたはトピック) を設定します -->
        <initMethod name="setProperty">
            <arg>"destinationType"</arg>
            <arg>"javax.jms.Queue"</arg>
            <!-- トピックの場合
            <arg>"javax.jms.Topic"</arg>
            -->
        </initMethod>
    </component>

    <!-- メッセージエンドポイントファクトリ -->
    <component class="org.seasar.jms.container.impl.JMSMessageEndpointFactory">
        <!-- メッセージをトランザクショナルに受信しない場合は false を指定します -->
        <property name="deliveryTransacted">true</property>
    </component>

    <!-- S2JMS-Container の設定 -->
    <component class="org.seasar.jms.container.impl.JMSContainerImpl">
        <!-- アプリケーション固有のメッセージリスナ・コンポーネントの名前を指定します (複数指定可) -->
        <initMethod name="addMessageListener">
            <arg>"messageListener"</arg>
        </initMethod>
    </component>
</components>

メッセージの受信を開始するために,app.diconの最後など, SMART deploy や AutoRegister によるコンポーネントの登録が終わった後に 初期化される場所にMessageEndpointActivatorを定義します.

<?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"/>
    <include path="jms.dicon"/>

    <component class="org.seasar.jca.deploy.impl.MessageEndpointActivator"/> 
</components>