【发布时间】:2013-06-16 05:22:42
【问题描述】:
我有一个关于 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 ();
}
【问题讨论】: