GAE에서 JDO를 사용하여 아래의 간단한 데이터베이스 트랜잭션 코드 블록을 사용하고 있습니다.java.sql.SQLexception에서 재 시도/복구하는 방법 : 동시 수정
throw 된 java.sql.SQLException에서 재 시도/복구하는 좋은 방법은 무엇입니까? Concurrent Modification?
개인 최종 공급자 pmp; ...
PersistenceManager pm = pmp.get(); { pm.currentTransaction(). begin();
MyObject myObject = pm.getObjectById (MyObject.class, id);
pm.currentTransaction(). commit();
{} 마지막
경우 (pm.currentTransaction()이 isActive().) { log.severe (this.getClass() getName() + "잡힌 DATABASE 예외.".); pm.currentTransaction(). rollback(); } }
의미를 자세히 살펴 보도록 제안 해 주셔서 감사합니다. 스택 추적과 javadocs를 자세히 살펴보십시오. java.sql.exception가 commit()로부터 슬로우되어 java.sql.exception가 JDOCanRetryException의 서브 클래스 인 javax.jdo.JDODataStoreException 내에 중첩되어있는 경우 http://db.apache.org/jdo/api23/apidocs/ javax/jdo/JDODataStoreException.html 이제이 예외를 잡아 모든 변수를 단일 매개 변수 블록으로 내 보내지 않고 작업을 다시 시도 할 수 있습니까? – Stevko
나는 아직도이 예외가 던져 질 수 없다고 느낀다. 직렬화 수준이 올바르게 설정되어 있습니까? currentTransaction(). isActive()까지 커밋을 시도 할 수 없습니까? – sibidiba