2011-04-22 5 views
0

웹 서비스에서 데이터베이스에 많은 양의 데이터를로드하고 있습니다. 지속성을 위해 eclipslink를 사용하고 glassfish 3.0에서 응용 프로그램을 실행합니다. 몇 가지 외래 키 제약 조건 위반이 있다는 점에서 테스트 데이터 세트의 문제가 발생합니다. 나는 위반에 잘되고, 그것이 완료되지 않은 경우에 나는 그 자료를 원하지 않는다. 내 문제는 그러나 예외가 컨테이너에 throw됩니다 온다. 그런 다음 내 트랜잭션을 롤백으로 표시하고 그 후에는 전혀 데이터를 얻지 못합니다.자신 만의 JTA 트랜잭션을 생성 할 수 있습니까?

JTA를 계속 사용하고 싶지만 달성하고자하는 일을 할 수 있는지 잘 모르겠다. 내 커밋 JTA 트랜잭션을 생성하므로 커밋을 제어 할 수있다. 나는 그것이 좋은 생각인지 확신하지 못한다. 그렇기 때문에 나는 JTA를 사용함으로써 얻을 수있는 이점 중 일부를 파괴 할 수도있다.

그래서 JTA 트랜잭션을받을 수 있습니까?

+0

지속하려는 시도에서 예외가 발생 했습니까? 컨테이너에 거품이 생기고 거래를 롤백하기 전에 잡을 수 있습니까? – nsfyn55

+0

UserTransaction과 유사합니까? – fvu

답변

2

데이터베이스가 세션 빈의 메소드에서 작동합니까? 해당 방법에 주석을 달기 :

@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) 

고유 한 트랜잭션이 주어집니다. 외부 트랜잭션은 처리하는 동안 일시 중단됩니다.

0

http://wiki.eclipse.org/Using_Advanced_Unit_of_Work_API_%28ELUG%29#Integrating_the_Unit_of_Work_with_an_External_Transaction_Servicestrong 텍스트 **

외부 트랜잭션 서비스와 함께 작업 단위를 취득하는 방법 읽으십시오. UserTransaction에 대한 컨테이너 JNDI를 쿼리하여 UserTransaction을 캐치하거나 자신을 시작할 수 있습니다.

+0

감사합니다. @TransactionAttribute가 너무 좋아서 좋아하지만 작업 단위가 조금 더 창조적 인 것처럼 보입니다. – grantk

+0

@grantk하지만 EJB @TransactionAttribute를 사용하고 있다고 가정합니다. – nsfyn55

관련 문제