2009-12-09 3 views
0

사용자의 세션을 호스팅하는 3 개 노드 클러스터 중 하나의 노드를 사용 중지하면 웹 응용 프로그램에서 다음과 같은 예외가 발생합니다.하나의 속도 캐시 호스트를 사용할 때 ErrorCode가 <ERRCA0022> 인 이유는 무엇입니까?

세션 캐시에는 퇴거없이 보조 서버가 있습니다. 나는 잠시 나중에 메시지가 사라집니다 요청을 다시 시도하는 경우

Exception information: 
    Exception type: DataCacheException 
    Exception message: ErrorCode<ERRCA0022>:Cache::GetAndLock: There is a temporary failure, please retry after some time. 

Stack trace: at Microsoft.Data.Caching.DataCache.ExecuteAPI(RequestBody reqMsg, String apiName) 
    at Microsoft.Data.Caching.DataCache.InternalGetAndLock(String key, TimeSpan timeout, DataCacheLockHandle& lockHandle, String region) 
    at Microsoft.Data.Caching.DataCache.GetAndLock(String key, TimeSpan timeout, DataCacheLockHandle& lockHandle) 
    at Microsoft.Data.Caching.DataCacheSessionStoreProvider.GetItemExclusive(HttpContext context, String id, Boolean& locked, TimeSpan& lockAge, Object& lockId, SessionStateActions& actions) 
    at System.Web.SessionState.SessionStateModule.GetSessionStateItem() 
    at System.Web.SessionState.SessionStateModule.PollLockedSessionCallback(Object state) 

: 여기

오류 메시지 및 스택입니다. 왜 내가이 메시지를 받는지, 서버가 호스트가 다운되어 다른 클라이언트 중 하나로 전환한다는 것을 서버 자체에서 파악해서는 안됩니다. 나는 세션 클라이언트를 내 web.config 파일에서 단순한 것으로 정의했다. 라우팅 문제 일 경우를 대비해도 문제는 여전히 발생한다.

답변

0

다음 블로그를 참조하십시오

http://blogs.msdn.com/velocity/archive/2009/04/30/the-dreaded-error-cache-get-the-request-timed-out.aspx

http://blogs.msdn.com/velocity/archive/2009/06/17/troubleshooting-velocity-series.aspx

자체에서이를 파악 서버에 대한 질문에 대답하기 위해; 실제로 그렇게 할 수는 있지만 응용 프로그램 개발자의 관점 (재 시도 또는 실패)에서 선택할 수 없기 때문에 올바른 동작을 적용하는 응용 프로그램 (재시도, DB 로의 장애 복구 등)을 응용 프로그램에 남겨 둡니다. 따라서 우리는 기본적으로 다시 시도하지만 일부 응용 프로그램이 원하는 경우 재시도 논리를 inbuilt하는 데 대한 예고도 있습니다. 희망이 귀하의 검색어에 대한 답변.