मैं एक सर्वर साइड अनुप्रयोग है कि शक्तियों के लिए एक वेबसाइट है और कई मोबाइल ग्राहकों के लिए लिखा था। मैंने डेटा एक्सेस के लिए हाइबरनेट का उपयोग किया। बाद में मैंने पाया कि ऐप एक दिन के बाद विफल रहता है! जब मैंने ऑनलाइन चारों ओर चेक किया, तो मुझे पता चला कि यह 8 घंटे के बाद "स्टेल" कनेक्शन को समाप्त करने वाले MySQL के साथ एक अच्छी तरह से ज्ञात समस्या है। आदेश में इस से बचने के लिए, मैं ?autoReconnect=true
सहित c3P0
का उपयोग कर, आदि autoReconnect
के बाद से आधिकारिक तौर पर हतोत्साहित किया जाता है (विशेष रूप से उत्पादन वातावरण में) और इसलिए भी कि यह कोई असर जब मैं इसे लागू नहीं था जैसे कई सुझाव नहीं मिले, मैं जाने का फैसला किया c3p0
के लिए। दुर्भाग्य से, मेरी hibernate.cfg.xml
फ़ाइल में c3p0
विन्यास को शुरू करने के बाद, आवेदन मेरी कोड में एक NullPointerException
कहीं फेंक मैं कहाँ बुलाया dbSession.close()
इसका मतलब है कि HibernateUtil.getSessionFactory()
वास्तव में null
रिटर्न शुरू होता है। (C3p0-0.9.2-pre2.jar, हाइबरनेट कोर-3.3.1.GA.jar, हाइबरनेट-c3p0-3.3.2.GA.jar, mchange-कॉमन्स-जावा-0.2.1 मैं आवश्यक जार जोड़ लिया है .jar और c3p0-oracle-thin-extras-0.9.2-pre2.jar) भले ही मैं उन सभी को नहीं सोचता जो आवश्यक हैं। मैं पृष्ठों है कि इस मुद्दे के बारे में बात के कई पूरी कर चुके हैं लेकिन मैं अभी भी इसे ठीक से सेट अप करने में सक्षम नहीं हूँ। कृपया मुझे "शुरुआती-अनुकूल" आसान-से-लागू, c3p0
को हाइबरनेट के साथ सेट अप करने के लिए चरण-दर-चरण प्रक्रिया के साथ सहायता करें। मैं जेडीके 1.6, माइस्क्लुएल 5.5 पर हाइबरनेट 3.3.6 का उपयोग कर रहा हूं और मैं नेटबीन्स 7.0 में विकसित कर रहा हूं।हाइबरनेट/MySQL कनेक्शन टाइमआउट
यहाँ मेरी hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/religion_app</property>
<property name="hibernate.connection.username">*****</property>
<property name="hibernate.connection.password">*****</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<property name="connection.autoReconnect">true</property>
<property name="connection.autoReconnectForPools">true</property>
<property name="connection.is-connection-validation-required">true</property>
<!-- configuration pool via c3p0-->
<property name="c3p0.acquire_increment">1</property>
<property name="c3p0.idle_test_period">120</property> <!-- seconds -->
<property name="c3p0.max_size">100</property>
<property name="c3p0.max_statements">0</property>
<property name="c3p0.min_size">10</property>
<property name="c3p0.timeout">180</property> <!-- seconds -->
<property name="c3p0.preferredTestQuery">select 1;</property>
<!--Mappings go here-->
</session-factory>
</hibernate-configuration>
यहाँ है कि मैं क्या c3p0 (slf4j के बिना) जोड़ने के बाद मिल गया है:
May 23, 2012 2:42:14 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet LoginChurch threw exception
java.lang.NullPointerException
at com.pacesolutions.religionapp.services.LoginChurch.processRequest(LoginChurch.java:109)
at com.pacesolutions.religionapp.services.LoginChurch.doPost(LoginChurch.java:138)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
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:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
at java.lang.Thread.run(Thread.java:722)
May 23, 2012 2:45:13 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet LoginChurch threw exception
java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
at org.hibernate.connection.C3P0ConnectionProvider.<clinit>(C3P0ConnectionProvider.java:52)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:73)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:56)
at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:414)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
at com.pacesolutions.religionapp.HibernateUtil.<clinit>(HibernateUtil.java:23)
at com.pacesolutions.religionapp.services.LoginChurch.processRequest(LoginChurch.java:68)
at com.pacesolutions.religionapp.services.LoginChurch.doPost(LoginChurch.java:143)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
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:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
at java.lang.Thread.run(Thread.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.
मेरी हाइबरनेट विन्यास फाइल जहां Netbeans द्वारा उत्पन्न के अधिकांश। मेरे पास जमीन पर डेटाबेस था, फिर मैंने नेटबीन्स में हाइबरनेट विज़ार्ड का उपयोग कॉन्फ़िगरेशन फाइलें, इकाई वर्ग और मैपिंग फ़ाइलों को उत्पन्न करने के लिए किया था। सी 3 पी 0 पेश करने से पहले ये ठीक से काम कर रहे थे (लेकिन वे 8 घंटे बाद विफल हो गए)। मैं अपने प्रोजेक्ट के साथ Mecurial का उपयोग करें और पूरी परियोजना को वापस लाने में वापस एक समय जब मैं c3p0 शुरू की करने से पहले, यह फिर से (8 घंटे के लिए) काम करता है। यहां तक कि hibernate.cfg.xml में सभी c3p0 कॉन्फ़िगरेशन को हाथ से हटाने से ऐप फिर से काम करता है। मैं गलत क्या कर सकता था?
क्या आप हमें एनपीई के स्टैकट्रैक के साथ-साथ हाइबरनेट (प्रतिनिधि कोड नमूने मूल रूप से) के साथ काम करने के अपने पैटर्न दिखाएंगे? –