メッセージをキューでリッスンするアプリケーションがあり、dmlcがsessionTransactedプロパティを提供していることを知っています。これにより、メッセージ受信イベントを手動でコミットできると思いますが、リスナーでそれを活用する方法がわかりません。
RuntimeExceptionをスローするだけで、メッセージはキューに戻され、ErrorHandlerが設定されていない場合はループに入るようですが、受信を具体的にコミットしたいと思います。
例えば
public class JMSMessageListener implements MessageListener {
@Override
public void onMessage(Message message) {
// do something with the message and then manually commit
}
}