내 응용 프로그램과 메모리에 큰 문제가 있습니다. 응용 프로그램 (java with jsf/richfaces/facelet)은 일부 7000 명의 사용자가 동시에 사용합니다.numberOfViewsInSession 및 여러 탭 문제
기본적으로 변수 com.sun.faces.numberOfViewsInSession은 web.xml에서 15로 설정됩니다. 이 변수는 뷰의 트리를 만들고 jsf는 15 번의 클릭으로 특정 뷰를 검색합니다.
예를 들어, 응용 프로그램에 3 개의 화면이 있으며 파이어 폭스를 사용합니다. 첫 번째 탭에서 세 번째 화면으로 이동합니다. 두 번째 탭에서는 첫 번째 화면이 있고 다음 단추를 클릭하면 jsf가 첫 번째 화면을 검색하고 두 번째 탭으로 이동합니다.
이 메커니즘은 훌륭하지만 많은 메모리 (세션 당 25Mo)를 소비하며이 숫자에 7000을 곱하면 175GB의 메모리가 필요합니다. 불가능합니다.
그래서 com.sun.faces.numberOfViewsInSession을 1 (세션 당 3Mo)로 설정하려고했습니다. 나는 다음 버튼을 두 번째 탭을 클릭하면
하지만 내 예와
, 나는 다음 오류 얻을 :javax.servlet.ServletException: viewId:/private/pages/data/dataView.faces - View /private/pages/data/dataView.faces could not be restored.
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:270)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at fr.generali.mezzo.front.commun.performance.filters.PerformanceFilter.doFilter(PerformanceFilter.java:72)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:173)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:420)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
내 numberOfViewsInSession 그래서 1
때문에이 오류는, 논리적 내 질문 :
보기 (두 번째 탭)에있는 데이터를 알고있는 경우 예외를 잡아 내 사용자에 대한 새보기를 만들려면 어떻게해야합니까?
도움 주셔서 감사합니다.
답변 해 주셔서 감사합니다. 많은 Ajax 요청이 있기 때문에 "클라이언트"저장 메서드를 사용할 수 있습니다. stateManager API에 대한 자습서가 있습니까? 나는 jsf 1.2를 사용하고 지금 버전을 업그레이드 할 수 없다. – Kiva
Ed Burns의 전체 참조를 JavaServer Faces에 몇 가지 지침이 있지만, 그 내용을 자세히 언급하지는 않습니다. 그렇지 않으면 당신은 내가 당신에게 준 용어로 구글을 둘러 봐야한다. –