首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非突变侦听器的XA上下文

非突变侦听器的XA上下文
EN

Stack Overflow用户
提问于 2016-05-27 05:29:03
回答 1查看 62关注 0票数 0

我正在尝试使用immutant来管理跨HornetQ和mysql的事务。正如我理解的文档,要做到这一点,我必须使用XA事务,因为我运行的是一个独立的应用程序,而不是在一个应用服务器内。

然而,当我试着设置:xa?对于我的应用程序的上下文,当绑定到安装监听器时,我会得到异常。

代码语言:javascript
复制
(ns example
  (:require [immutant.messaging :as msg]))

(def capture (atom nil))
(let [ctx (msg/context :host "localhost" :xa? true)
      queue (msg/queue "example" :context ctx)]
  (reset! capture nil)
  (msg/listen queue (fn [m] (reset! capture m)))
  (msg/publish queue {:my :msg}))

这会引发"java.lang.IllegalStateException:您不能从XA上下文创建子上下文。“从(msg/listen)调用。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-27 19:36:23

我认为您已经发现了一个错误,但在您的例子中,我认为有一个解决办法:您只需要在队列是远程的情况下才需要:xa? true选项。您仍然可以使用HornetQ宏在侦听器处理程序中创建一个XA事务,将您的MySQL操作绑定到immutant.transactions/transaction。有关示例,请参见文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37475487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档