2017-09-15 7 views
3

にリリースされました私は何かを理解していなかったエラー::db.error /接続解除接続は、私は私のトランザクタ(<strong>EC2</strong>)を実行し、Datomic(<strong>DynamoDBの</strong>)<strong>AWS</strong>にしてしばらくした後、私は次のようになって始めたんだDatomic

:db.error/connection-released The connection has been released. 
.... 

また、私は前の月の私のアプリを実行していたが、一度にこのエラーを取得できませんでした。

私は定期的にこれが起こる場合、私はアプリケーションコードでデータベース接続を再確立する必要がありますか?

答えて

2

はコードです:

(defn establish-conn 
    [] 
    (try 
     (d/create-database (conf/get :db-uri)) 
     (reset! conn (d/connect (conf/get :db-uri))) 
    (catch Throwable t 
     (println "Could not establish db conn." t)))) 

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

DB上でreleaseと電話したことはありますか?それは私がこれを引き起こす可能性があると思いますが、一度あなたがアプリケーションの生活のために再びDatomic接続を使用することはできませんリリースを呼び出します。接続は本当に軽量なので、この関数を呼び出す理由はほとんどありません。それはトランザクタインスタンスがをリブートするときに、私はこの問題の回避策を見つけたので、私はエラーを取得することが判明し

+0

私はしなかった、いや、AWSに私のアプリを展開した後、I私はこの例外をチェックし、接続を再確立すると(d/connect "my-db-uri")、これはうまくいくでしょうか? –

+0

また、トランザクタが終了して新しいテーブルを作成すると、DynamoDBでテーブルが削除されることが判明しました。 –

関連する問題

 関連する問題