2017-09-18 2 views
1

데이터베이스를 삭제하고 내 사용자가 일어난 잠시 후 내 애플 리케이션 뭔가를 사용하기 시작하고 Datomic 분석 업무가 다시 시작했을 때 나는 또한 일부 (Datomic 분석 업무 (EC2) DynamoDB의와이 이유), 내 응용 프로그램이 응답하지 않게되어 응용 프로그램 서버를 다시 시작한 다음 (트랜잭션 연결을 다시 설정하기 위해) 사용자 데이터가없고 데이터가 전혀 없었습니다! 나는 같은 URI 사용 된Datomic 내가 AWS</strong><strong>내 Clojure의 응용 프로그램을 배포

( ": DDB datomic은/내 테이블/내-DB를 동쪽-1 우리를 //"), 또한 내가 삭제-DB 또는 일부 기능과 같은 호출하지 않습니다 그.

Datomic에 연결하기 위해 d/create-database와 d/connect 만 호출합니다.

나에게 일어났던 일이지만 내가 뭔가 잘못한 것을 생각했기 때문에 나는 그 시간에 관심이 없었다.

어떻게 이전 데이터를 복원 할 수 있습니까?

P .: 또한 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

연결 코드가 잘못되었을 수도 있습니다. Google에 알려 주실 수 있습니까? –

+0

@ValentinWaeselynck 내 코드로 질문을 편집했습니다. –

+0

난 그걸로 아무것도 볼 수 없다, 그래서 내가 conf/get 않는 질문, 그리고 데이터베이스가 비어있는 관찰 방법. 마지막으로, 코드의 다른 부분이 'conn' 원자와 간섭하지 않도록해야합니다. –

답변

0

I의 연결을 복구하기위한이 코드를 가지고 내 준비 환경에서 최신 Datomic 버전 "0.9.5561.56"으로 문제를 재현 할 수 없음 , 나는 그것이 그 것으로 해결되었다고 생각한다.