【问题标题】:what dose the transacted parameter means of QueueConnection.createQueueSession(boolean transacted, int acknowledgeMode)QueueConnection.createQueueSession(boolean transacted, int acknowledgeMode) 的 transacted 参数意味着什么
【发布时间】:2012-01-03 11:57:14
【问题描述】:

在 JMS API 中,我们有以下方法 QueueConnection.createQueueSession(boolean transacted, int acknowledgeMode)

我想知道 transacted 参数到底是什么意思? 我知道当设置为true时,我们需要在发送或接收完成后调用QueueSession.commit()方法, 但是如何将其设置为 false 呢?这是否意味着发送/接收操作不可信?还是可以?如果还可以,那为什么还要区分大小写?

或将其设置为 true 仅适用于我们需要在一个事务中放置多条消息的情况? 谢谢。

【问题讨论】:

    标签: transactions queue jms


    【解决方案1】:

    第一个参数表示QueueSession是否被事务处理。 true 值表示会话已被处理,这意味着在 QueueSession 的生命周期内发送到队列的消息将不会传递给接收者,直到在 QueueSession 上调用 commit 方法。同样,在 QueueSession 上调用回滚方法将删除在事务会话期间发送的所有消息

    【讨论】:

      【解决方案2】:

      这篇Java Developer's Journal 文章涵盖了相当广泛的内容——那里解释了特定的确认模式/会话事务设置组合。

      【讨论】:

      • 谢谢,我认为它谈到了将其设置为 true 的详细信息,这意味着事务性;但它没有涵盖关于 false 的情况,您能解释一下设置非事务性消息是什么意思吗?
      猜你喜欢
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 2023-01-16
      • 1970-01-01
      • 2018-06-27
      • 2016-01-02
      • 2023-03-10
      • 2019-01-15
      相关资源
      最近更新 更多