DefaultMessageListenerContainerにトランザクションを制御させるための手順はどうですか...私が読んだ限りでは、DMLCにsessionTransactedプロパティを提供するだけで済みます。私の目標は、エラーが発生した場合にメッセージをキューに戻すことです...
かなり長い間検索してきましたが、何も見つかりませんでした...
私のSpring-config(その一部):
<bean id="abstractMessageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer" abstract="true">
<property name="connectionFactory" ref="connectionFactory" />
<property name="maxConcurrentConsumers" value="5"/>
<property name="receiveTimeout" value="10000" />
</bean>
<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer" parent="abstractMessageListenerContainer">
<property name="destinationName" value="MY.QUEUE" />
<property name="messageListener" ref="myMessageListener" />
<property name="sessionTransacted" value="true" />
</bean>
<bean id="myMessageListener" class="my.package.structure.ListenerClass"></bean>
私のリスナークラス:
public class ListenerClass implements MessageListener {
public void onMessage(Message msg) {
}
}
チェックされていない例外(java.lang.IllegalStateExceptionなど)をスローするだけですか?