我有一个关于 JMS 队列的问题。
我已经使用共享队列实现了一个 jms 发送方/接收方,它是我唯一可用的队列,也是我唯一可以使用的队列。
我现在面临的问题是,由于这是先到先得,我无法保证我从生产者发送的消息将被我的消费者消费,而不是由共享此队列的其他消费者消费,反之亦然。所以我正在消费其他应用程序消息,他们正在消费我的。
有没有一种方法可以让我只收听我的消息而不是从队列中使用它们,或者这更像是一个主题实现?
或者,也许我可以显式设置一个只有我的消费者才能使用的标识符。
我的主要代码:
public class AsyncReceiver implements MessageListener, ExceptionListener
{
public static void main(String[] args) throws Exception
{
//create queue factory
factory = new TibjmsQueueConnectionFactory(serverUrl);
//create queue connection
queueConn = factory.createQueueConnection(userName, password);
queueConn.setExceptionListener(this);
//create queue session
session = queueConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
//receive message by QueueReceiver
final Queue queue = session.createQueue(queueName);
final QueueReceiver queueReceiver = session.createReceiver(queue);
queueReceiver.setMessageListener(this);
queueConn.start ();
}