【问题标题】:JMSTemplate "sessionTransacted" behavior while sending non-persistent messages to ActiveMQ broker向 ActiveMQ 代理发送非持久消息时的 JMSTemplate “sessionTransacted”行为
【发布时间】:2014-07-17 07:12:19
【问题描述】:

在向 ActiveMQ 代理发送非持久消息时,我想了解 spring JMSTemplate 中事务处理会话的行为(同步或异步)。 我说的是 JMSTemplate 配置,其中 Session 被处理并且发送的消息是非持久性的

据我了解:
发送到 ActiveMQ 代理的非持久消息是异步发送的。 但是在事务会话上发送的消息是同步的。由于提交调用是同步的,并且 JMSTemplate 在每条消息发送后提交。

上面指定配置的消息发送是同步的还是异步的?请帮助我理解这种行为。

谢谢,

阿努杰

【问题讨论】:

    标签: spring activemq spring-integration jmstemplate


    【解决方案1】:

    持久性无关紧要 - 提交是对会话的单独操作。

    【讨论】:

    • 那么不管持久还是非持久,事务会话中发送的消息都是同步的(因为提交是同步的,JMSTemplate 在每条消息发送后提交会话)?
    • 谢谢加里。在事务会话中发送的持久消息是否会有两个级别的同步?首先,因为它是持久的,所以消息的发送将被阻止,直到消息被代理消费。另一个是事务性会话提交调用。
    • 这是你的代理的一个功能,它是客户端库,但通常,不,发送不会阻塞,只有提交。
    • 我使用 ActiveMQ 作为消息代理。 “如果我在一个事务中发送一批持久化消息,消息发送将是异步的。只有提交是同步的。”我的理解正确吗?
    • 我相信是这样,但我不知道 ActiveMQ 内部;为什么不运行 WireShark 跟踪来确认?
    猜你喜欢
    • 2015-03-19
    • 2017-01-30
    • 2015-03-28
    • 2018-09-22
    • 2017-01-28
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多