2012-09-16 29 views
9

हम JPA2.0 और Hibernate3.0 का उपयोग कर एक वेब ऐप कार्यान्वित कर रहे हैं। कनेक्शन पूल कॉन्फ़िगरेशन मेटा-आईएनएफ फ़ोल्डर में स्थित persistence.xml में सेट हैं।सी 3 पी 0 विन्यास! कहां और कैसे?


persistence.xml:

<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0"> 
    <persistence-unit name="MyPU" transaction-type="RESOURCE_LOCAL"> 
     <!-- Entity Classes--> 
     <properties> 
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/> 
      <property name="hibernate.show_sql" value="true"/> 
      <property name="bytecode.provider" value="org.hibernate.bytecode.javassist.BytecodeProviderImpl"/> 
      <property name="hibernate.connection.username" value="{username}"/> 
      <property name="hibernate.connection.password" value="{password}"/> 
      <property name="hibernate.hbm2ddl.auto" value="update"/> 
      <property name="hibernate.format_sql" value="true"/> 
      <property name="hibernate.connection.url" value="{jdbc url}"/> 

      <property name="hibernate.c3p0.min_size" value="1"/> 
      <property name="hibernate.c3p0.timeout" value="1000"/> 
      <property name="hibernate.c3p0.acquire_increment" value="1"/> 
      <property name="hibernate.c3p0.idle_test_periods" value="600"/> 
      <property name="hibernate.c3p0.testConnectionOnCheckin" value="true"/> 
      <property name="hibernate.c3p0.preferredTestQuery" value="SELECT 1;"/> 
     </properties> 
    </persistence-unit> 
</persistence> 

हम कनेक्शन पूल विन्यास के साथ एक समस्या है। ऐसा लगता है कि कॉन्फ़िगरेशन का कोई प्रभाव नहीं पड़ता है और 8 घंटे के बाद कनेक्शन टूटा जाएगा। क्या हमें अन्य कॉन्फ़िगरेशन फ़ाइल की आवश्यकता है जैसे hibernate.cfg.xml या hibernate.properties?

किसी भी मदद का स्वागत है।

उत्तर

2

अच्छा सवाल, बुरा शीर्षक। :) मुझे लगता है मैं अपने को फिर से पोस्ट पर इस सवाल का जवाब लगता है: Best configuration of c3p0

4

मैं proprieties कि मैं persistence.xml में डाल c3p0 को प्रभावित नहीं किया के साथ इस एक ही समस्या थी।

http://www.mchange.com/projects/c3p0/index.html#configuration_files में देख रहे हैं मैं एक xml c3p0-config.xml नामक फ़ाइल डाल दिया और WEB-INF/classes में रख करने की कोशिश की है और यह पूरी तरह से काम करते हैं।

यहाँ एक c3p0-config.xml फ़ाइल का एक उदाहरण है:

<c3p0-config> 
    <default-config> 
    <property name="automaticTestTable">con_test</property> 
    <property name="checkoutTimeout">30000</property> 
    <property name="idleConnectionTestPeriod">30</property> 
    <property name="initialPoolSize">10</property> 
    <property name="maxIdleTime">30</property> 
    <property name="maxPoolSize">100</property> 
    <property name="minPoolSize">10</property> 
    <property name="maxStatements">200</property> 

    <user-overrides user="test-user"> 
     <property name="maxPoolSize">10</property> 
     <property name="minPoolSize">1</property> 
     <property name="maxStatements">0</property> 
    </user-overrides> 

    </default-config> 
</c3p0-config> 
+0

फिलिप विलेमान सही है, अगर आप c3p0 config xml जोड़ते हैं, तो गुण सही ढंग से पढ़े जाएंगे। एनबी यदि आप कुछ कॉन्फ़िगरेशन गुण जोड़ते हैं जो पहले से ही hibernate.config फ़ाइल में वर्णित हैं, तो हाइबरनेट उन्हें अनदेखा कर देगा। संदर्भ के लिए आप यहां अधिक जानकारी प्राप्त कर सकते हैं http://www.mchange.com/projects/c3p0/index.html#configuration_files "c3p0-config.xml के माध्यम से c3p0 डिफ़ॉल्ट को ओवरराइड करना" अनुभाग – sataniccrow

1

मैं एक ही सटीक मुद्दा था, मेरी समस्या यह थी कि अपने वेब आवेदन कंटेनर (बिलाव) मेरी डेटाबेस कनेक्शन प्रबंधित किया गया था। मुझे c3p0 कॉन्फ़िगरेशन को मेरी persistence.xml फ़ाइल से टॉमकैट के context.xml पर ले जाना पड़ा। प्रदान की जाने वाली लिंक डोमेनिक डी एक बड़ी जगह है जो यह आपकी समस्या है।