Session JMS会话和提交

Session JMS会话和提交,session,jms,listener,Session,Jms,Listener,我是新的JMS竞技场,我创建了多个消息侦听器,但每个线程只有一个侦听器。我有下面的消息侦听器,这个消息listner在构造时被传递给一个会话对象。然后,当收到消息时,该消息侦听器处理消息,然后提交会话,如代码所示。关闭会话/连接是在关闭挂钩中完成的 公共类MyMessageListener实现MessageListener,ExceptionListener{ 私有会话_Session=null; 公共MyMessageListener(会话s){ _会话=s; } @凌驾 消息上的公共无效(消

我是新的JMS竞技场,我创建了多个消息侦听器,但每个线程只有一个侦听器。我有下面的消息侦听器,这个消息listner在构造时被传递给一个会话对象。然后,当收到消息时,该消息侦听器处理消息,然后提交会话,如代码所示。关闭会话/连接是在关闭挂钩中完成的

公共类MyMessageListener实现MessageListener,ExceptionListener{
私有会话_Session=null;
公共MyMessageListener(会话s){
_会话=s;
}
@凌驾
消息上的公共无效(消息arg0){
试一试{
//检索数据
JMSBytesMessage字节消息=(JMSBytesMessage)arg0;
字节[]有效载荷=新字节[(int)ByteMessage.getBodyLength()];
bytesMessage.readBytes(有效载荷);
字符串payloadString=新字符串(有效负载);
ProcessMessage(payloadString);
_commit();
MessageCounter.Increment();
}捕获(例外e){
e、 printStackTrace();
} 
}
公共抽象void ProcessMessage(字符串消息);
}

现在我担心的是,如果侦听器同时收到两条消息,会话是否有可能提交这两条消息

从会话开始到结束,一切都是单线程的。不用担心多线程。请参阅(不同的问题,类似的问题)


您确实为每个侦听器创建了一个单独的会话,对吗?这是一项要求。“从会话到下的所有内容都是单线程的”的一部分。谢谢您的回复。是,每个侦听器有一个会话。