Spring “JMSTemplate”;SessionTransactited“;向ActiveMQ代理发送非持久性消息时的行为

Spring “JMSTemplate”;SessionTransactited“;向ActiveMQ代理发送非持久性消息时的行为,spring,activemq,spring-integration,jmstemplate,Spring,Activemq,Spring Integration,Jmstemplate,我想了解在向ActiveMQ代理发送非持久性消息时,SpringJMSTemplate中事务会话的行为(同步或异步)。 我说的是JMSTemplate配置,其中会话是事务性的,发送的消息是非持久性的 据我了解: 发送到ActiveMQ代理的非持久性消息是异步发送的。 但在事务会话上发送的消息是同步的。因为提交调用是同步的,所以每次发送消息后JMSTemplate提交 使用上述指定配置发送的消息是同步的还是异步的?请帮助我理解这种行为 谢谢 Anuj持久性是不相关的-提交是会话上的一个单独操作。因

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

据我了解:
发送到ActiveMQ代理的非持久性消息是异步发送的。 但在事务会话上发送的消息是同步的。因为提交调用是同步的,所以每次发送消息后JMSTemplate提交

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

谢谢


Anuj

持久性是不相关的-提交是会话上的一个单独操作。

因此,无论是持久性还是非持久性,事务会话中发送的消息都将是同步的(因为提交是同步的,JMSTemplate在每个消息发送后提交会话)?谢谢。事务处理会话中发送的持久消息是否具有两级同步?首先,因为它是持久的,所以消息的发送将被阻止,直到消息被代理使用为止。另一个是事务会话提交调用。这是您的代理及其客户端库的一个功能,但通常情况下,不,发送不会阻止,只有提交。我使用ActiveMQ作为消息代理。“如果我在一个事务中发送一批持久性消息,消息发送将是异步的。只有提交是同步的。”我的理解正确吗?我相信正确,但我不知道ActiveMQ内部;为什么不运行WireShark跟踪来确认?