के साथ समस्या मेरे पास मेरे एप्लिकेशन और मेमोरी के साथ एक बड़ी समस्या है। आवेदन (jsf/richfaces/facelet के साथ जावा) का उपयोग कुछ 7000 उपयोगकर्ताओं द्वारा एक साथ किया जाता है।numberOfViewsInSession और एकाधिक टैब
डिफ़ॉल्ट रूप से, variable com.sun.faces.numberOfViewsInSession web.xml में 15 पर सेट है। यह चर दृश्यों का एक पेड़ बनाते हैं और जेएसएफ 15 क्लिक के दौरान एक विशिष्ट दृश्य पुनर्प्राप्त करते हैं।
उदाहरण के लिए, मैं एक आवेदन के लिए 3 स्क्रीन है और मैं फ़ायरफ़ॉक्स का उपयोग करें। मैं पहले टैब में तीसरी स्क्रीन में जाता हूं। दूसरे टैब में, मेरे पास पहली स्क्रीन है और मैं अगले बटन पर क्लिक करता हूं, जेएसएफ पहली स्क्रीन पुनर्प्राप्त करता है और दूसरे पर जाता है।
यह तंत्र बहुत अच्छा है लेकिन यह बहुत मेमोरी (25Mo मेरे लिए सत्र द्वारा) का उपभोग करता है और जब आप इस नंबर को 7000 से गुणा करते हैं, तो मुझे 175 मेमोरी की आवश्यकता होती है, यह असंभव है।
इसलिए मैंने 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 अनुरोध हैं। क्या आप राज्य प्रबंधक एपीआई के बारे में एक ट्यूटोरियल है? मैं जेएसएफ 1.2 का उपयोग करता हूं और अब मैं संस्करण को अपग्रेड नहीं कर सकता। – Kiva
जावा बर्वर फेसेस में एड बर्न द्वारा पूरा संदर्भ में कुछ निर्देश दिए गए हैं, लेकिन मैं उन गहराई से कॉल नहीं करूंगा। अन्यथा आपको लगता है कि मैंने आपको जो शब्द दिया है, उस पर आपको बस Google के पास होना चाहिए। –