JMS应用程序是否应为其发送的每条消息创建新会话?

时间:2010-04-21 20:53:29

标签: java jms

JMS应用程序是否应为其发送的每条消息创建新会话,或者是否更适合为长消息序列创建会话?

2 个答案:

答案 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对象。