2012-09-11 1 views
2

Gorm 비관적 잠금을 통합 테스트하고 많은 서버의 액세스를 동시에 멀티 스레드로 시뮬레이션하려고하지만 각 스레드에서 예상 결과를 얻지 못합니다. 이건 내 코드입니다 :GORM GPARS 통합 테스트

@Test 
void testLockInBetweenCheck() { 
def tid = IdocTidInfo.findByTid("AC10870D0E12504F3E88D575") //here tid is not null 
withPool{ 
     [1,2].eachParallel{ tids -> 
    IdocTidInfo.withTransaction{ tid -> 
     def t = IdocTidInfo.findByTid("AC10870D0E12504F3E88D575") // here is t is null 

내가 무슨 일이 일어나고 있는지 알아낼 수 없습니다, 나는 내 최대 절전 모드 sessionFactory에 각 스레드에 바인딩되지 않으며, 그 Domain.withTransaction 내가 작업을해야하지만하지 않았다 생각.

어떤 도움이 필요합니까?

+1

질문에 대한 답변을 게시하고 승인 된 해결책으로 표시하십시오. – j4y

답변

2

통합 테스트의 설정 방법과 관련이 있습니다.이 테스트에서는 메모리에서 데이터를 부트 스트랩했습니다. 일단 부트 스트랩으로 이동 시키면, 스레드로부터의 클로저가 최대 절전 모드 세션에 바인드 될 수 있습니다! 어쨌든 고마워!!

+0

전체 예제 수업을 게시 할 수 있습니까? 나는 비교할 모범이 필요하다. 내 스레드가 세션에 바인딩 할 수도 없습니다. – Ither

+0

비슷한 문제가있었습니다. 코드를 게시 해주십시오. –