JMS应用程序是否应为其发送的每条消息创建新会话,或者是否更适合为长消息序列创建会话?
答案 0 :(得分:5)
我会说一般不会,但它实际上取决于上下文以及您在应用程序中逻辑上如何考虑通信。
如果邮件发送是偶然的一次性事件,后续邮件完全不相关,那么如果您能够容忍成本,则为是。
如果你确实有一个冗长而合乎逻辑的交互序列,只要你不搞乱你的线程就可以在会话中完成它们。
会话实际上为一系列消息提供了便利,因此根据定义它可以处理多条消息。
以下是文档的说法:
会话有多种用途:
* It is a factory for its message producers and consumers. * It supplies provider-optimized message factories. * It supports a single series of transactions that combine work
跨越其生产者和消费者 进入原子单位。
* It defines a serial order for the messages it consumes and the
它产生的消息。
* It retains messages it consumes until they have been acknowledged. * It serializes execution of message listeners registered with its
消息消费者。
答案 1 :(得分:1)
来自Sun的class document for Session清楚地谈到了处理多个消息的单个Session对象。