WebLogic IP 변경 시나리오는 다음과 같았다.
1) ${DOMAIN_HOME}/bin/setDomainEnv.sh 의 IP Address 변경
2) ${DOMAIN_HOME}/ bin/startWebLogic.sh,
${DOMAIN_HOME}/bin/stopManagedWebLogic.sh,
${DOMAIN_HOME}/ stopWebLogic.sh and shutdown.py의 IP 변경
※ 참고로 문서상에는 ${DOMAIN_HOME}/init-info/startscript.xml 파일의 IP도 바꾸라 하지만, 안 해도 됐다.
그러다가, WebLogic의 IP 뿐만 아니라 데이터소스에 설정된 DB의 주소또한 변경된다고 하여
${DOMAIN_HOME}/bin/jdbc/${DataSource_NAME}.xml 상에 있는 IP를 직접적으로 수정을 진행했다.
대상 인스턴스에 대해 shutdown을 하고 작업을 진행하였고, 작업을 마쳤기에 다시금 startup을 진행했다.
그러고 나서부터 아래의 로그가 출력이 되었다.
<Error> <EJB> <BEA-010026>
<Exception occurred during commit of
transaction Name=[EJB com.bea.~~~~~~(javax.jms.Message)],
Xid=BEA-~~~~~~(~~~~~),Status=Rolled back., CoordinatorURL=~~~~~~~):
weblogic.transaction.RollbackException: SubCoordinator '~~~~~~~~~~~~~~' not available
이 로그가 출력되면서 HANG 상태에 빠져서,
WebLogic 인스턴스 조차 RUNNING 상태에 들어오지 않는 상황이었다.
또한 분명히 JDBC 파일에서 DB의 IP를 변경했지만,
netstat 으로 확인했을 때, AS-IS 장비 쪽의 DB에 EST로 확인되었다.
뭔가 이상하다 싶어 구글링을 진행하였고 답을 얻을 수 있었다.
이 현상은 IP 변경작업을 진행한 경우에 나타날 수 있다고 한다.
트랜잭션 데이터는 WebLogic의 트랜잭션 로그(Transaction Log, TLOG)에 저장이 되며,
경로는 ${DOMAIN_HOME}/servers/${instance}/data이다.
DB 쪽의 IP를 변경한 뒤에는 해당 정보를
위의 경로에 저장을 하여 WebLogic이 받아들여야 하는데,
예전 트랜잭션 데이터가 WebLogic의 TLOG에 계속해서 남아 있어
WebLogic이 기존의 정보만을 캐치하는 경우에 발생할 수 있다.
조치 방법으로는 ${DOMAIN_HOME}/servers/${instance}/ 공간에서 security를 제외한
tmp, cache, data 디렉토리를 제거하고 재기동을 해야한다.
'WAS > WebLogic' 카테고리의 다른 글
| [WebLogic] 세션 복제 시점 (0) | 2024.05.31 |
|---|---|
| WebLogic 인스턴스가 원인 불명의 shutdown이 발생한다. (0) | 2024.05.31 |
| [WebLogic] cache.ser 파일에 관하여 (0) | 2024.02.19 |
| [weblogic] 애플리케이션 배포 mode (0) | 2024.01.03 |
| [WebLogic] 서버 cache 경로 (0) | 2024.01.03 |