JMS QueueBrowser getEnumeration 是否需要连接启动
Does JMS QueueBrowser getEnumeration requires Connection Start
我想知道在执行 QueueBrowser browse() 之前是否需要调用 JMS Connection start()。在 javadoc 中找不到任何关于 start() 作为 browse() 的预操作的内容,每个供应商的浏览样本似乎都不同。他们中的一些人打电话,而另一些人不打电话。
我问这个是因为如果我不执行 start(),ActiveMQ 不会浏览消息。
ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://**:**");
Connection connection = factory.createConnection();
connection.start();
Session session = connection.createSession(false, 1);
TextMessage message = session.createTextMessage();
message.setText("This is a sample message");
Queue dest = new ActiveMQQueue("Sample");
MessageProducer producer = session.createProducer(dest);
producer.send(message);
QueueBrowser browser = session.createBrowser(dest);
Enumeration<Message> messages = browser.getEnumeration();
/* Iteration code here
* If connection.start() is'nt called, no element in returned collection
* If connection.start() is called, the returned collection contains
* queue elements.
*/
..
无法找到 java 文档在查看队列之前谈论任何特定的开始。有什么想法吗?
是的,Connection.Start()
是必需的。 QueueBrowser
与 MessageConsumer
类似,唯一的区别是 QueueBrowser
不会从 JMS 提供程序中删除消息。如果应用程序不调用 Connection.Start
方法,JMS 提供程序将不会传递消息。
我想知道在执行 QueueBrowser browse() 之前是否需要调用 JMS Connection start()。在 javadoc 中找不到任何关于 start() 作为 browse() 的预操作的内容,每个供应商的浏览样本似乎都不同。他们中的一些人打电话,而另一些人不打电话。 我问这个是因为如果我不执行 start(),ActiveMQ 不会浏览消息。
ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://**:**");
Connection connection = factory.createConnection();
connection.start();
Session session = connection.createSession(false, 1);
TextMessage message = session.createTextMessage();
message.setText("This is a sample message");
Queue dest = new ActiveMQQueue("Sample");
MessageProducer producer = session.createProducer(dest);
producer.send(message);
QueueBrowser browser = session.createBrowser(dest);
Enumeration<Message> messages = browser.getEnumeration();
/* Iteration code here
* If connection.start() is'nt called, no element in returned collection
* If connection.start() is called, the returned collection contains
* queue elements.
*/
..
无法找到 java 文档在查看队列之前谈论任何特定的开始。有什么想法吗?
是的,Connection.Start()
是必需的。 QueueBrowser
与 MessageConsumer
类似,唯一的区别是 QueueBrowser
不会从 JMS 提供程序中删除消息。如果应用程序不调用 Connection.Start
方法,JMS 提供程序将不会传递消息。