2014-11-27 4 views
0

저는 클라이언트 - 서버 Gemfire 아키텍처를 사용 중이며 여러 서버는 "전역"범위의 복제 된 영역을 공유합니다.Gemfire 클라이언트/서버 아키텍처 및 지역 잠금

<gfe:client-region id="regionId" name="regionName" shortcut="CACHING_PROXY" /> 

이 클라이언트 영역이 서버에서 글로벌 지역에 대한 프록시 역할 :

나는 다음과 같이 클라이언트 영역이 정의 된 클라이언트를 가지고있다.

이제 일부 클라이언트는 중요한 작업을 수행하는 동안 다른 클라이언트가 수정할 수 없도록 일부 작업을 수행하면서 클라이언트의 영역을 잠급니다. 그래서

java.lang.IllegalStateException: Only supported for GLOBAL scope, not LOCAL 

, 클라이언트 측에서 영역을 잠글 수있는 방법이있다 :

Lock regionLock = clientRegion.getRegionDistributedLock(); 

는 불행하게도, 난 예외가?

답변

2

클라이언트 측에서 영역 잠금은 지원되지 않습니다.

자물쇠로 여러 작업을 수행하려는 경우 가장 좋은 방법은 gemfire 기능을 사용하고 서버 측에서 이러한 작업을 수행하는 것입니다. 잠금을 얻고, 논리를 수행하고, 잠금을 해제하기 전에 gemfire 함수를 작성할 수 있습니다.

전역 잠금 대신 트랜잭션을 사용할 수도 있습니다. 클라이언트 측에서 트랜잭션을 시작할 수 있습니다.

+0

감사합니다. 이미 트랜잭션을 사용하여 문제를 해결했습니다. –