java - JMS 连接 - 启动方法(IBM MQ impl)

标签 java jms ibm-mq tibco-ems

javax.jms.Connection#start() 的真正用途是什么。根据 javadoc,它说:

Starts (or restarts) a connection's delivery of incoming messages.

但这到底是什么意思呢?我想这取决于实现,那么它在 IBM MQ(最新的 8+)中意味着什么?也许在客户端连接之后会预缓存服务器消息? 我检查了一些 examples生产者,他们正在调用 start 方法但从不读取消息。我在没有调用 start() 的情况下测试了代码,它工作正常(发送,不接收)。

我只是想了解 MQ,可能比需要的更多,但我仍然想知道。也许它在其他 JMS 实现中是如何完成的?像 Tibco、Apache MQ?也许有人知道?

最佳答案

正如文档中提到的,Connection.start 方法开始将消息从消息传递提供程序(在本例中为 MQ)传递到应用程序。如果不调用 Connection.start,消费者将无法接收消息。

发送消息不需要connection.start。查看 MQ 附带的 JmsConsumer.java 示例。它调用 connection.start。您可以发布无需调用 connection.start 即可接收消息的示例代码吗?

关于java - JMS 连接 - 启动方法(IBM MQ impl),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26053372/

相关文章:

java - Spring @Async : null hibernate session on LAZY collection

java - 字段列表中夹克中的未知列

java - 在内存中,activemq 不会跨连接持久存在

java - 使用 JMSMessageID 从 MQ 队列中删除 JMS 消息

c# - 创建安全连接

ibm-mq - IBM MQ 问题 : jmscmq0001 websphere mq call failed with compcode '2' ('mqcc_failed' ) reason '2035'

java - 如何通过分页从服务器获取更新的记录(就位置而言)

java - MQ——删除队列中的所有消息

java - IBM MQ V6.0 是否设置 JMSXDeliveryCount 属性?

c++ - 在 C++ 中仅获取属于组 "2"的 MQ9 消息