【发布时间】:2016-05-27 05:29:03
【问题描述】:
我正在尝试使用 immutant 来管理跨 HornetQ 和 mysql 的事务。据我了解文档,为此我必须使用 XA 事务,因为我正在运行一个独立的应用程序,而不是在应用程序服务器内。
但是,当我尝试设置 :xa 时?对于我的应用程序的上下文,我在设置侦听器时遇到异常。
(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) 调用。我做错了什么?
【问题讨论】:
-
嗨。所以因为我看到了 :host 选项,我假设你正在尝试连接到一个单独的 JVM 中的 HornetQ 实例:你能告诉我那个 JVM 吗?具体来说,它运行的是哪个版本的 HornetQ?另外,什么版本的 Immutant?谢谢!