0
我想從clojure使用相同的連接調用一些遠程JMX操作。我正在使用clojure/jmx with-connection失去連接
[org.clojure/java.jmx "0.3.3"]
但是我發現連接急切地被本地JMX連接所取代。作爲一個例證:
給出:
(ns test.core
(:require
[clojure.java.jmx :as jmx]))
如果我有這樣的:
(defn caller [col host port]
(println jmx/*connection*)
(jmx/with-connection {:host host, :port port :environment
{"jmx.remote.credentials" (into-array String ["tomcat" "tomcat"])}}
(do
(println jmx/*connection*)
(map called col))))
(defn called [line]
(println jmx/*connection*)
)
調用
(caller [1] "host" 8000)
我得到:
#object[com.sun.jmx.mbeanserver.JmxMBeanServer 0x2c914364 [email protected]]
#object[javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection 0x2b4bbf01 javax[email protected]2b4bbf01]
#object[com.sun.jmx.mbeanserver.JmxMBeanServer 0x2c914364 [email protected]]
因此,遠程連接只能在第一條語句訪問連接之前持續到本地服務器。我如何保持遠程連接?
如果運行!不存在,因爲你使用舊版本的clojure將它包裝在'dorun'中 –