2012-03-07 4 views
3

자바 스크립트 웹 응용 프로그램의 경우 백엔드는 JBoss 응용 프로그램 서버입니다.
자바 스크립트 프론트 엔드는 항상 하나의 서블릿 (프론트 컨트롤러)에 접속합니다.
서블릿은 로그인시 하나의 룩업 ("narrow"더하기)을합니다.
이 조회는 SFSB (Stateful Session Bean)에 대한 조회입니다.
이 조회 결과는 HttpSession 개체에 저장됩니다.
서블릿과 SFSB 간의 모든 후속 통신은이 저장된 원격 객체에 의해 수행됩니다.Stateful Session Bean의 제한 시간 설정?

JBossWeb (Tomcat)의 세션 시간 초과 (HttpSession 객체의 경우)는 30 분입니다.
프론트 엔드에서 활동이 없으면 (> 30 분) 세션이 만료 될 때마다 그 세션의 모든 세션 (SFSB의 원격 인터페이스)이 삭제됩니다.

그 사이에 SFSB는 (deploy/ejb3-interceptors-aop.xml -> idleTimeoutSeconds = 300) 디스크로 부동화됩니다.

내 SFSB의 기본 제한 시간은 무한대입니다 (removalTimeoutSeconds = 0). 따라서 기본값은 비활성화 된 sfsb가 자동으로 제거되지 않는다는 것입니다.

내 경우 SFSB 시간 초과 (removalTimeoutSeconds)를 30 분 (30 * 60)으로 설정하지 않는 이유는 무엇입니까 (세션 시간 초과와 동일)?

답변

0

유일한 예외는 상태 기반 빈과 연관된 장기 실행 백그라운드 트랜잭션 프로세스입니다. 완료하는 데 지정된 지속 시간보다 오래 걸리면 트랜잭션이 활성화되지 않은 예외가 발생합니다.

따라서 프런트 엔드에 시간 초과가 있어도 백그라운드 프로세스를 완료해야합니다. 이 경우, 제거 제한 시간은 처리에 영향을 미쳐 &을 적절하게 변경해야합니다.

+0

비동기 메서드의 새로운 기능을 사용하는 경우입니다. 그렇지 않으면 서블릿 응답은 태스크를 완료 할 때까지 전송되지 않습니다. –

+0

@CosminVacaroiu 컨테이너는 상태 지속 빈이 확장 된 지속성 컨텍스트를 갖는 경우 stateful bean을 비활성화하지 않아야합니다. 이는 대부분의 상태 세션빈 및 프론트 엔드 활동과 독립적 인 장기 실행 백그라운드 프로세스의 경우입니다. –

+0

백그라운드 프로세스는 비동기를 의미합니다. 확장 또는 트랜잭션 지속성 컨텍스트가 있는지는 중요하지 않습니다. 지속성 컨텍스트는 참조 집합이며 실행되지 않습니다. –

관련 문제