2010-11-24 5 views

답변

4

finally 블록의 커밋은 트랜잭션 상태가 STATUS_ACTIVE 인 경우에만 호출되며 커밋되거나 롤백되지 않았습니다. 메서드 블록의 try 블록에서 utx.commit()을 잊어 버린 경우 트랜잭션이 롤백되거나 메서드가 끝날 때 커밋되도록 보안과 같이 보입니다.

+0

감사 : u는 내가 시도하고 UTX에서의 utx.commit을 가지고 finally 블록의 코드를 건너 뛸 수 있습니다 커밋 후 롤백 후 transcation의 상태가 될 것이다는지 말해 주실 래요 잡기? – Sanket

+0

javadoc에 문서화되어 있습니다. http://download.oracle.com/javaee/6/api/javax/transaction/Status.html – Guillaume

+0

"해당 트랜잭션이 대상 객체와 연관되어 있으며 구현은 트랜잭션이 시작된 후 코디네이터가 준비를하기 전에 트랜잭션이 롤백으로 표시되지 않은 경우이 상태를 반환합니다. "커밋 후 트랜 잭 션 상태가 무엇인지 알 수 없습니다. – Sanket

1

finally 블록에서 이러한 커밋을 수행하는 것이 좋지 않다고 말합니다. 대부분의 목적에서 위험 할 수있는 중도 작업을 할 위험이 있습니다. 트랜잭션 상태를 ACTIVE로 확인한 후에는 롤백이 더 나은 옵션이됩니다.

HTH.

감사합니다, 니틴

관련 문제