【发布时间】:2011-05-17 08:57:18
【问题描述】:
我是新的 JMS 领域,我创建了多个消息侦听器,但每个线程只有一个侦听器。我有以下消息侦听器,此消息侦听器在构造时传递了一个会话对象。然后,当收到消息时,此消息侦听器会处理消息,然后提交会话,如代码所示。关闭会话/连接是在关闭挂钩中完成的。
public class MyMessageListener implements MessageListener, ExceptionListener {
private Session _session = null;
public MyMessageListener(Session s) {
_session = s;
}
@Override
public void onMessage(Message arg0) {
try {
// Retrieve the data
JMSBytesMessage bytesMessage = (JMSBytesMessage) arg0;
byte[] payload = new byte[(int) bytesMessage.getBodyLength()];
bytesMessage.readBytes(payload);
String payloadString = new String(payload);
ProcessMessage(payloadString);
_session.commit();
MessageCounter.Increment();
} catch (Exception e) {
e.printStackTrace();
}
}
public abstract void ProcessMessage(String theMessage);
}
现在我担心的是,如果监听器同时收到两条消息,会话是否有机会同时提交两条消息?
【问题讨论】: