2012-01-23 2 views
0

세션 빈의 다른 유형과 JSF 용 백킹 빈에서 이들을 올바르게 사용하는 방법에 대해서는 조금 확신 할 수 없습니다.backingbeans에있는 상태 비 저장 및 상태있는 세션 빈

하나의 호출로 비즈니스 프로세스를 완료 할 수있을 때 사용하는 비 상태 세션빈. 비즈니스 프로세스를 여러 단계로 수행해야하는 경우와 세션 호출간에 서버의 데이터를 "캐시"하려는 경우에 상태 유지 세션 bean이 사용됩니다. 이러한 유형은 성능 및 고려해야 할 사항이 다릅니다. 하지만이 부분을 이해하고 있다고 생각합니다. 사용자를 검색하고 사용자 대신 단일 태스크를 수행하는 비 상태 세션빈이 있다고 가정 해 보겠습니다.

그런 다음 JSF에서 일정 기간 동안 사용할 수있는 무국적 세션빈을 원합니다. 이 무국적 세션빈을 세션 싱킹 된 백업 빈에 삽입합니까? 이 주입 된 상태 비 저장 세션빈은 어떻게됩니까? 세션 복제 된 백업 빈이 올바르게 제거되기 전에 풀에 반환되지 않습니다. 따라서 이것은 잠재적으로 리소스를 필요로 할 수 있습니다.

그런 다음 상태 비 저장 세션빈을 상태 저장 세션빈으로 만들고 대신 백빙 비 용을 요청하게했습니다.

backingbeans와 EJB의 서로 다른 범위에 대해 다소 혼란 스럽습니다.

+0

관련 질문 중복 답변 가능 : http://stackoverflow.com/questions/8887140/jsf-request-scoped-bean-keeps-recreating-new-stateful-session-beans-on-every-req – BalusC

답변

0

HttpSession은 EJB 세션과 다릅니다. 따라서 세션 범위가 지정된 관리 빈에서 SLSB를 호출하면 풀의 SLSB 만 사용되며 요청이 완료되면 풀로 다시 반환됩니다. 따라서 단일 SLSB는 클라이언트 관리 빈에 바인딩되지 않습니다. 나는 사용자 세션을 관리하기위한 하나의 요청 범위가 아닌 관리 범위를 세션 범위로 갖는 것이 더 낫다고 생각한다.

관련 문제