public class Worker implements MessageListener{ public Worker() throws Exception{ recvConnFactory = new ActiveMQConnectionFactory( queueConnString); recvQConn = recvConnFactory.createQueueConnection(); recvQConn.start(); recvSession = recvQConn.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE); Queue queue = recvSession.createQueue("queue"); QueueReceiver receiver = recvSession.createReceiver(queue); receiver.setMessageListener(this); } @Override public void onMessage(Message message) { this.doWork(message); } }
public class Main{ public static void main(String[] args){ Worker[] workers=new Worker[10]; for(int i=0;i<workers.length;i++){ workers[i]=new Worker(); } //sleep and wait } Each woker has its own connection and session. but it seems only one worker are running. What's wrong with it? need I wrapper Worker in a it's own thread?