'WebLogic Session 공유 범위'에 해당되는 글 1건

  1. 2012.04.07 [WebLogic]Web Application Session 공유범위 이해 및 설정

[WebLogic]Web Application Session 공유범위 이해 및 설정

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

 

earTest.zip

- session공유 테스트 Web Application Sample

 

SessionClusterTest1.zip

 

Comments (+add yours?)

Tracbacks (+view to the desc.)

Newer Entries Older Entries