Я новая 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);
}
Теперь меня беспокоит то, что если слушатель получает два сообщения одновременно, будет ли вероятность того, что сессия передаст оба сообщения?