I have two classes
@Path("/")
public class HelloWorld {
@Resource(name = "AnswerQueue")
private Queue AnswerQueue;
@Resource
private ConnectionFactory connectionFactory;
@GET
public String home(){
try {
Connection connection =
connectionFactory.createConnection();
connection.start();
// Create a Session
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
// Create a MessageProducer from the Session to the
Topic or Queue
MessageProducer producer =
session.createProducer(AnswerQueue);
MessageConsumer consumer1 =
session.createConsumer(AnswerQueue);
consumer1.setMessageListener(new Consumer("Consumer1"));
MessageConsumer consumer2 =
session.createConsumer(AnswerQueue);
consumer2.setMessageListener(new Consumer("Consumer2"));
for(int i=0; i<1000; i++){
// Create a message
TextMessage message =
session.createTextMessage("Hello World! " + i);
message.setStringProperty("JMSXGroupID","group1");
// Tell the producer to send the message
producer.send(message);
}
}catch(JMSException e){
}
return "Hello World";
}
}
public class Consumer implements MessageListener {
private String consumerName;
public Consumer(String consumerName) {
this.consumerName = consumerName;
}
public void onMessage(Message message) {
TextMessage textMessage = (TextMessage) message;
try {
System.out.println(consumerName + " " +
Thread.currentThread().getId() +
" received "
+ textMessage.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
The output I see when I hit the end point is
Consumer1 97 received Hello World! 13
Consumer1 97 received Hello World! 14
Consumer1 97 received Hello World! 15
Consumer1 99 received Hello World! 16
Consumer1 99 received Hello World! 17
......
Consumer1 99 received Hello World! 237
Consumer1 99 received Hello World! 238
Consumer1 97 received Hello World! 239
Consumer1 97 received Hello World! 240
Consumer1 97 received Hello World! 241
Consumer1 97 received Hello World! 242
Consumer1 97 received Hello World! 243
Consumer1 97 received Hello World! 244
Consumer1 97 received Hello World! 245
I would see two different threads handling the messages and it would go back
and forth between them. Is it normal to see different threads handling the
message? I would've expected one thread to handle everything.
--
View this message in context:
http://tomee-openejb.979440.n4.nabble.com/JMSXGroupID-and-TomEE-s-JMS-Connection-Factory-tp4679868p4679885.html
Sent from the TomEE Users mailing list archive at Nabble.com.