Application Servers & Java
[장애 사례] Infinispan CacheException - StateTransferManager wait 오류
midworker
2025. 5. 15. 18:56
반응형
[장애 사례] Infinispan CacheException - StateTransferManager wait 오류
JBoss/WildFly 서버 기동 시 다음과 같은 Infinispan 캐시 관련 예외가 발생하며
서버가 정상 기동되지 않거나, 세션 클러스터링이 실패하는 문제가 발생할 수 있습니다.
✅ 에러 메시지 요약
org.infinispan.CacheException:
Unable to invoke method public void
org.infinispan.statetransfer.StateTransferManagerImpl.waitForInitialStateTransferToComplete()
✅ 원인 분석
이 오류는 Infinispan 캐시 클러스터 구성 중,
상태 전이(State Transfer) 단계가 완료되지 못했을 때 발생합니다.
항목 | 설명 |
---|---|
상태 전이 | 클러스터 노드 간 데이터 복제 및 캐시 동기화 과정 |
문제 발생 조건 | 초기화 중 중단, 시간 초과, 통신 실패 등 |
동작 위치 | StateTransferManagerImpl.waitForInitialStateTransferToComplete() 호출 시점 |
✅ 주요 발생 시나리오
- 클러스터에 새 노드가 합류하는 과정에서 state transfer 실패
- 네트워크 지연 또는 멀티캐스트 비활성화
- 노드 간 JGroups 통신 실패
- 세션 클러스터링 모듈이 정상 구동되지 않음
✅ 조치 방안
✔ 1. 서버 로그 확인 (클러스터 전체)
server.log
에서 다음 키워드 검색
Infinispan, state transfer, cluster join, jgroups
- 통신 차단 또는 응답 지연 여부 확인
✔ 2. JGroups 멀티캐스트 확인
tcpdump -i <interface> multicast
또는 구성 파일에서 IP 바인딩 확인:
<socket-binding name="jgroups-udp"
multicast-address="230.0.0.4"
multicast-port="45688" />
- 방화벽, 보안 정책 등으로 멀티캐스트가 차단되지 않았는지 확인
✔ 3. 캐시 설정에서 state transfer 타임아웃 조정
<distributed-cache name="web-session" mode="ASYNC">
<state-transfer timeout="30000"/>
</distributed-cache>
→ 타임아웃 시간 조정 (timeout
또는 await-initial-transfer
설정 가능)
✔ 4. 필요 시 클러스터 캐시 비활성화 (임시 조치)
<distributable>
<infinispan-session-management enabled="false"/>
</distributable>
장애 긴급 대응 시 캐시 클러스터 기능 비활성화 후 단일 노드로 우선 운영
✅ 마무리
org.infinispan.CacheException
은 대부분 노드 간 통신 지연 또는 클러스터 설정 오류로 인해 발생합니다.
상태 전이 단계는 캐시 일관성을 위한 중요한 초기화 작업이므로,
멀티캐스트 통신 설정, 노드 가용성, 타임아웃 정책 등을 꼼꼼히 점검해야 합니다.
반응형