resin 2.1.6에서 tcp distributed session사용 비바람 / 2005-11-29 18:07 |
resin.conf에,
<http id=a port=80 />
로 세팅을 했습니다. session은,
<session-config> 로 했구요. resin버전은 2.1.6 입니다.
L4에서는 저 두서버를 round lobin으로 분기합니다. 스타트 하는 스크립트의 옵션에는 a서버에서는 -server a 옵션, b서버에서는 -server b 를 주었고 맞게 먹는것도 확인했습니다.
이때, a서버에 웹으로 로그인하면, ~/WEB-INF/session폴더아래에 a29같은 폴더가 생기고, b서버의 ~/WEB-INF/session 에도 b29가 생깁니다. 이걸로 봐서 설정은 맞는것 같은데, 이상하게 다른서버로 연결이 되게되면 로그인창으로 가버리네요.
모든 class는 serializable을 implement했구요. 잘못된 부분이 어딘지 알수가 있을런지요. |
[답변]resin 2.1.6에서 tcp distributed session사용 권용찬 / 2005-12-01 23:03 |
질문하신부분에서 보면 Session 유지는 srun Port로 구동된 Process간에서만 가능한 것으로 확인됩니다. 즉 resin.conf에 <http id=a port=80 /> 하셨다면 <http id=a port=80 /> 그리고 -server a start 하시면 srun 데몬은 구동조차 되지 않습니다. 여하간 동작하게 하는 방법은 다음과 같습니다. 1. 양쪽(편의를 위하 A Server,B Server)에 Apache를 설치하십시요 2. 각각의 서버에서 resin을 컴파일 하여 모듈을 생성하시고 설치하십시요 3. Apache httpd.conf 파일에 필요한 설정을 하시고 4. 양쪽 서버 resin.conf에 다음과 같이 설정합니다. 5. Server A의 start Script를 다음과 같이 작성하십시요 6. Server B의 start Script를 다음과 같이 작성하십시요 위와 같이 작업후 세션 서블릿에서 setAttribute 한 정보가 양쪽 서버를 번갈아 다운해도 유지되는 것이 확인됩니다. (첨부된 파일은 톰켓의 셈플을 레진에 맞도록 수정해서 통으로 압축해서 올려습니다. 서블릿 예제에 세션 서블릿을 사용해서 테스트 해보시기 바랍니다.) |