MySQL के कनेक्शन पर 8 घंटे का समय लगता है। मैं ओआरएम के लिए हाइबरनेट का उपयोग करते हुए टोमकैट में कई WAR चला रहा हूं। 8 घंटों के बाद (यानी रातोंरात), जब मैं निष्क्रिय कनेक्शन उठाता हूं तो मुझे टूटी हुई पाइप मिलती है।हाइबरनेट, सी 3 पी 0, माइस्क्ल - टूटा हुआ पाइप
मैं पहले ही कोड के माध्यम से पता लगा चुका हूं और दोगुना सुनिश्चित करता हूं कि मैं सभी लेनदेन को प्रतिबद्ध या रोलबैक करता हूं।
यहाँ मेरी 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.bytecode.use_reflection_optimizer">false</property>
<property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<property name="hibernate.current_session_context_class">thread</property>
<!--property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property-->
<property name="c3p0.min_size">3</property>
<property name="c3p0.max_size">5</property>
<property name="c3p0.timeout">1800</property>
<property name="c3p0.preferredTestQuery">SELECT 1</property>
<property name="c3p0.testConnectionOnCheckout">true</property>
<property name="c3p0.idle_test_period">100</property> <!-- seconds -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="cache.use_query_cache">false</property>
<property name="cache.use_minimal_puts">false</property>
<property name="max_fetch_depth">10</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- classes removed -->
</session-factory>
पैरामीटर मैंने सोचा था कि तय है | यह c3p0.idle_test_period
था - 0 पर यह चूक हालांकि, हम अभी भी टूटी पाइप मुद्दा है चलने के 8 घंटे बाद। हालांकि Google के माध्यम से कई पोस्ट इंडेक्स हैं, कोई भी संतोषजनक उत्तर नहीं देता है।
धन्यवाद, इससे मेरी मदद मिली। मैं प्रलेखन टिप्पणी से सहमत हूं। इससे भी बदतर, c3p0 दस्तावेज आपको उपरोक्त 5 को छोड़कर अन्य सभी के लिए c3p0.properties का उपयोग करने की सलाह देता है, लेकिन यह काम नहीं करता है। यह केवल तब काम करता है जब आप hibernate prefix के बिना persistence.xml में निर्दिष्ट करते हैं (जैसा कि आपने अपने मूल cfg.xml में किया है) – Sun
इससे मुझे भी मदद मिली ... मैं प्रलेखन की बात के बारे में सहमत हूं :)। यह उनके दस्तावेज में थोड़ा और सरल हो सकता है। – Polaris878
यदि आपने CombPooledDataSource के लिए xml कॉन्फ़िगरेशन का उपयोग किया है तो संपत्ति 'idleConnectionTestPeriod' है जिसे आपको होना चाहिए। –