[WebLogic]Web Application Session 공유범위 이해 및 설정
Products/WebLogic Server View Comments
- 세션은 기본적으로 추가적인 설정을 하지 않았을 경우 다음과 같이 도메인 단위로 공유된다.
아래의 각 묶음별로 세션을 공유함.
mail.lht.co.kr
mail.lht.co.kr:7010
shop.lht.co.kr
shop.lht.co.kr:7010
issue.lht.co.kr
issue.lht.co.kr:7010
아이피
아이피:8001
- 서브도메인이 달라도 즉 mail.lht.co.kr, shop.lht.co.kr, issue.lht.co.kr 사이에 세션을 공유하고 싶다면 다음과 같이 추가적인 설정을 해야 한다.
weblogic.xml 설정
<!-- 세션을 공유하고자 하는 도메인명 , 설정시 "."이 반드시 2개 이상 있어야 한다. -->
<cookie-domain>.lht.co.kr</cookie-domain>
단 이 설정을 하면 해당 "*.lht.co.kr"을 제외한 요청은 세션 공유가 전혀 돼지 않는다.
즉, 아래의 요청들에 대해서는 세션이 공유돼지 않고, 새로 생성하게 된다.
아이피
아이피:7010
coh1.lht.com
- 지금까지의 위 설정은 웹로직 도메인에 배포된 하나의 웹애플리케에션에서만 가능한 설정이다.
- 만약, 웹로직 도메인내에 여러개의 웹애플리케이션이 배포되어 있고, 해당 웹애플리케이션 사이에 세션 공유를 해야 한다면 어떻게 해야 할까?
배포 형태를 EAR 구조로 가져가야 하며, 다음 설정을 추가로 해야 한다.
weblogic-application.xml
<!-- 웹 애플리케이션 사이의 세션 공유 허용 여부 Default : false -->
<sharing-enabled>true</sharing-enabled>
참고 URL : 설정으로 불가능한 구조적인 이유
http://javaservice.net/~java/bbs/read.cgi?m=resource&b=qna2&c=r_p&n=1050138256&d=n#1050138256
- 업무단위로 웹로직 도메인을 구성하고, 해당 웹로직 도메인 사이의 애플리케이션에 대해 세션을 공유하고자 한다면 어떻게 해야 할까?
설정을 통한 방법으로는 불가능하며, Oracle Coherence 제품을 사용하여 구성하여야 합니다.
참고 URL : Coherence*Web
http://docs.oracle.com/cd/E24290_01/coh.371/e22620/toc.htm
- 위 내용 테스트 방법
1. 호스트 파일에 대상 호스트명 입력
(파일 위치 : Windows7 C:\WINDOWS\system32\drivers\etc\hosts)
127.0.0.1 mail.lht.co.kr
127.0.0.1 shop.lht.co.kr
127.0.0.1 issue.lht.co.kr
2. 웹로직 도메인 구성후 첨부 애플리케이션 디플로이 및 호출 테스트
http://mail.lht.co.kr:7010/session_check.jsp
http://shop.lht.co.kr:7010/session_check.jsp
- web.xml 및 weblogic.xml 파일 설정 예
web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<session-config>
<session-timeout>20</session-timeout>
</session-config>
</web-app>
참고 URL : http://docs.oracle.com/cd/E23943_01/web.1111/e13712/web_xml.htm#i1023849
weblogic.xml
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<context-root>/</context-root>
<session-descriptor>
<timeout-secs>1200</timeout-secs>
<persistent-store-type>replicated_if_clustered</persistent-store-type>
<cookie-domain>.lht.co.kr</cookie-domain>
<cookie-path>/</cookie-path>
<sharing-enabled>true</sharing-enabled>
</session-descriptor>
</weblogic-web-app>
참고 URL : http://docs.oracle.com/cd/E23943_01/web.1111/e13712/weblogic_xml.htm#i1071981
- 참고
ServletContext : 배포된 Application단위라고 보면 된다. 웹로직 클러스터 구성 환경이라 해도, 서버 M1, M2 에 배포된 Application의 ServletContext는 다르다.
웹로직 클러스터 환경에서 세션이 복제되는 시점
http://docs.oracle.com/cd/E24329_01/web.1211/e24425/failover.htm#i1027876
- Web Application간 Session공유 테스트 Ear Sample
- session공유 테스트 Web Application Sample
'Products > WebLogic Server' 카테고리의 다른 글
WebLogic Administration Console SSL 적용 방법 (0) | 2012.08.10 |
---|---|
Admin Server 실행 후 Managed Server를 실행 시키는 스크립트 (0) | 2012.08.02 |
웹로직 admin 비밀번호 초기화 (0) | 2012.04.09 |
[WebLogic]Session Timeout 설정 (0) | 2012.04.07 |
WebLogic의 HTTP Publish-Subscribe 서버 사용하기 (0) | 2012.03.27 |
Recent Comments