기본적으로 세션은 Context(웹 모듈) 단위로만 세션공유가 가능하다.
그러나 WebLogic에서는 Context(웹 모듈) 간에도 세션을 공유하도록 설정할 수 있다.
이번 테스트는 OL 7에 WLS 12.2.1.3 버전을 사용하였다.
=====================
1. 테스트 준비
=====================
* Context간에 세션 공유를 하기 위해서는 EAR형태의 어플리케이션을 배포해야 한다.
EAR 어플리케이션 안에는 webapp1.war와 webapp2.war라는 두 개의 웹 모듈이 존재한다.
그리고 모듈(APP) 사이에 세션을 공유하기 위해서는 META-INF/weblogic-application.xml 이라는 파일도 설정해주어야 한다.
weblogic-application.xml 설정
<?xml version="1.0" encoding="UTF-8"?> <weblogic-application xmlns="http://xmlns.oracle.com/weblogic/weblogic-application" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-application http://xmlns.oracle.com/weblogic/weblogic-application/1.3/weblogic-application.xsd"> <application-param> <param-name>webapp.encoding.default</param-name> <param-value>UTF-8</param-value> </application-param> <session-descriptor> <!--<persistent-store-type>replicated_if_clustered</persistent-store-type>--> <sharing-enabled>true</sharing-enabled> </session-descriptor> </weblogic-application> |
> sharing-enabled를 true 설정해야 모듈간 세션 공유가 가능
=====================
2. 세션 유지 테스트
=====================
webapp1과 webapp2를 번갈아 가며 호출했을 때, 세션 아이디가 동일한지. 그리고 count가 연속해서 증가하는지 확인
그러나 이 테스트는 모듈 간의 세션 유지이지, WAS1번과 WAS2번의 세션 클러스터링이 아니기 때문에 서비스 중에 WAS 한 대가 죽게 되면 세션이 끊기게 된다.
여기서 더 나아가 weblogic을 클러스터로 묶어주고,
weblogic-application.xml 파일에 replicated-if-cluster 옵션을 넣어주면 세션 클러스터링 기능까지 구현 가능하다.
* 테스트 가능한 ear 소스는 아래 첨부
'오라클 > WebLogic' 카테고리의 다른 글
[WLS] WebLogic 12c WLST를 이용한 모니터링 (0) | 2022.01.25 |
---|---|
[WLS] WebLogic과 Oracle DB 19c Certification (0) | 2022.01.19 |
[WLS] weblogic.marathon을 활용한 APP DD(Deployment Descriptor) 생성 (0) | 2021.11.26 |
[웹로직] Client-Server 간 소켓 통신 절차 (0) | 2021.09.13 |
[웹로직] Coherence 클러스터 Inner 구성 (0) | 2021.08.13 |