다음 프로그램은 überjar에서 실행될 때 메모리 내 Datomic 데이터베이스를 사용할 때만 끝납니다. Datomic 서버에 연결할 때, 그것은 오히려 JVM을 종료하는 것보다 무기한 중단 :Simple (st) 출구에서 Datomic 테스트 프로그램이 멈 춥니 다.
(ns myns.example
(:use [datomic.api :only [db q] :as d])
(:gen-class))
;; WORKS: (def uri "datomic:mem://testdb")
(def uri "datomic:free://localhost:4334/testdb2")
(defn -main []
(println 1)
(when (d/create-database uri)
(d/connect uri))
(shutdown-agents)
(println 2))
실행과 같이
lein uberjar && java -cp target/myns-0.1.0-SNAPSHOT-standalone.jar myns.example
출력 :
1
2
및 중단합니다. 프로그램이 시작될 때 DB가 존재하지 않는 경우에만 중단됩니다.
누구나 알고 있거나 수정하는 방법을 알고 계십니까? 이것은 datomic-free-0.8.4020.26
과 datomic-free-0.8.3941
입니다.
업데이트 - 위의 프로그램은 실제로 종료되지만 매우 오랜 시간이 걸립니다 (1 분 초과). 이유를 알고 싶습니다.
당신에게'(D/해제 CONN)'를 시도? –
명백한 차이는 없지만 시도해 보았습니다. 그러나 그 과정에서 위의 프로그램이 결국 종료된다는 것을 알았습니다. 단지 1 분 이상 걸립니다 (!!!). – JohnJ