2012-05-22 8 views
0

저는 세션에 대한 정보를 저장하는 웹 응용 프로그램에서 작업하고 있습니다. 적어도 2 시간 동안은 활성 상태 여야합니다. (장바구니처럼 약간).Apache 대 Weblogic 세션 시간

저는 여러 개의 weblogic 인스턴스 앞에 Apache를 사용하고 있습니다. 아파치는 캐싱 + 약간의 RR 균형 조정을위한 것입니다.

내 web.xml에 세션 시간을 120 분 내에 구성했습니다.

하지만 지금은 모든 아파치 설정과 같은 을 대해 궁금하네요 일반 "제한 시간, KeepAlive를, KeepAliveTimeout입니다"또한

나는 현재

인 "밸런스 설정"에서 지정할 수 그

SetHandler 웹 로직 처리기

WebLogicCluster의 SERV1 : 포트 1, SER2 : PORT2

ConnectTimeoutSecs 10

,

ConnectRetrySecs 2

KeepAliveEnabled ON

KeepAliveSecs 15

WLCookieName WLBALANCECOOKIENAME

그래서 여기에 내가

내가 = 킵 얼라이브에 모든 것을 넣어해야합니까 다른 KeepAliveEnabled/KeepAliveSecs을 지정할 수를 YES와 7200+ 초? 이렇게하면 web.xml의 2 시간 세션 타임 아웃이 존중됩니다.

일반적으로 "timeout"은 내가 long-requests/responds에 대해 이해하고 있기 때문에 아마도 낮게 설정할 수 있습니다.

답변

2

KeepAlive은 weblogic의 세션 시간 초과에 연결되지 않습니다.

Apache 서버의 KeepAlive은 Apache 플러그인에서 WebLogic Server 로의 재사용 가능한 연결 풀을 사용하여 성능을 향상시키기위한 것입니다. 연결이 30 초 이상 (또는 사용자 정의 시간) 동안 비활성 상태이면 연결이 닫히고 풀로 반환됩니다.

KeepAlive를 ON으로 설정하고 KeepAliveSecs 15를 기본값으로 설정하는 것이 좋습니다.

이제 2 시간 세션 시간 초과를 사용하도록 설정하는 것이 가장 큰 문제입니다. 참고 : 2 시간은 많은 양 (기본값은 30 분)이며 Weblogic 서버는 세션 세부 사항을 유지하면서 더 많은 메모리를 사용합니다.

사용자의 JSESSIONID를 기반으로 올바른 Weblogic 서버로 연결하기 위해 Apache에 의존한다고 가정합니다. 이 경우 Apache는 클러스터의 올바른 Weblogic 서버로 요청을 보내고 사용자의 세션은 해당 서버에서 계속 작동합니다. 다른 메모리 hogger 인 세션 복제를 켜지 않는 한.

질문에 대답하려면 web.xml의 <session-timeout> 설정을 기준으로 120 분을 준수해야합니다. 이 설정은 weblogic.xml에서 설정할 수도 있지만 무시하는 것은 web입니다.xml

+0

답장을 보내 주셔서 감사합니다. 따라서 아파치 시간 초과 및 Keepalive 설정은 내 웹 로그 세션과 관련이 없으므로 귀하의 설명에서 이해할 수 있습니다. 하지만 내가 궁금해 한 것은 다음과 같다. 나는 당신이 말한 것처럼 SessionID로로드 밸런싱을한다. 그러나 아파치는 그 세션 아이디로 이전 요청을 보내고 그것을 다시 똑같은 것으로 보냈을 때를 기억합니다. 그러나 아파치는 이것을 얼마나 오래 기억합니까? 어떤 아파치 설정이 이것을 구성합니까? 이 설정은 2 시간 이상이어야하므로 1 시간 50 분 이상 사용하지 않아도 모든 요청이 계속 동일한 서버에 계속 유지되도록하십시오. – gotjee

+0

아니요, apache는 이것에 대해 눈이 멀었습니다. 아파치 내의 프록시 플러그인은 JsessionId에 대한 요청을 확인하고 그로부터 serverid를 추출합니다. 순수한 통과를 수행하고 들어오는 클라이언트 요청을 아웃 바운드 웹 로직 인스턴스에 기억하거나 매핑하지 않습니다. 다른 답변 http://serverfault.com/a/364812/37747에 대한 예제를 참조하십시오. – JoseK