スタンドアロン環境でSpring3.1を使用しています。
私はこのようにjmsテンプレートでトピックを設定しました:
<bean id="mm1sessionsTopicSendingTemplate" class="org.springframework.jndi.JndiObjectFactoryBean"
depends-on="jmsServerManagerImpl">
<property name="jndiName">
<value>/topic/mm1sessionsTopic</value>
</property>
</bean>
このトピックでは、DefaultMessageListenerContainerを使用してMDBを次のように設定します。
<bean id="mm1sessionDispatcherListener"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="pubSubDomain" value="true" />
<property name="concurrentConsumers" value="1" />
<property name="destination" ref="mm1sessionsTopicSendingTemplate" />
<property name="messageListener" ref="mm1SessionMDB" />
<property name="sessionAcknowledgeModeName" value="AUTO_ACKNOWLEDGE" />
</bean>
このように、xmlを介してmm1SessionMDBを高度に設定する必要があります。
<bean id="mm1SessionMDB" class="com.mdb.SessionMDB">
<property name="feedPropertiesDTO" ref="feedListenerMarketMaker1Properties" />
</bean>
ただし、プログラムでMDBインスタンスを作成するにはアプリケーションが必要です。
つまり、コードを介してmdbを作成する必要があります。これは、各MDBが、トピックから(feedPropertiesDTOを介して)取得するメッセージに対して異なる検証値を持つためです。
基本的に、同じロジックのMDBのプールがありますが、それぞれに異なるプロパティがあります。MDBの作成時間は実行時でなければなりません。
それは可能ですか?
ありがとう、レイ。