2017-09-18 57 views
1

我部署了我的Clojure應用AWS我也有Datomic的交易者(EC2)DynamoDB當我的用戶開始使用我的應用程序的東西發生後一段時間,Datomic器交易重啓(對於某些原因),我的應用程序變得沒有響應,所以我重新啓動我的應用程序服務器(重新建立交易者連接),那麼沒有用戶數據,根本沒有數據!?Datomic刪除數據庫

我用的是相同的URI「datomic:DDB://美東-1 /我的表/我-DB」),也是我不叫刪除-DB或一些類似的功能那。

我只打電話給d/create-database和d/connect連接到Datomic。

它發生在我的發展,但我不在乎那個時候,因爲我認爲我做了錯誤的事情或類似的東西。

如何恢復舊數據?

P.S:另外我可以看到DynamoDB表有一些像900KB的存儲大小我假設我的數據在那裏有些什麼?只有幾個用戶壽。

我Datomic版本:"0.9.5561"

這裏是我的代碼

(defn establish-conn 
    [] 
    (try 
     ;conf/get returns DB URI like: "datomic:ddb://us-east-1/my-table/my-db" 
     (d/create-database (conf/get :db-uri)) 
     (reset! conn (d/connect (conf/get :db-uri))) 
    (catch Throwable t 
     (log/error "Could not establish db conn." t)))) 

我也有回收從交易者失敗/不可用等

(defn fix-if-conn-ex 
    ;;getting exception's error message 
    [err-msg] 
    (when (any? (str/includes? err-msg %) [":db.error/connection-released" 
             ":db.error/transactor-unavailable"]) 
    (db/establish-conn))) 
+0

可能你的連接代碼有問題,你能向我們展示它嗎? –

+0

@ValentinWaeselynck我用我的代碼編輯了問題。 –

+0

我看不出有什麼問題,所以我會質疑conf/get的作用,以及如何觀察數據庫是否爲空。最後,我會確保代碼的其他部分不會干擾'conn'原子。 –

回答

0

我連接驗證碼在我的暫存環境中無法使用最新的Datomic版本"0.9.5561.56"重現此問題,我認爲它已經解決了。