2011-03-09 10 views
5

मेरे पास टॉमकैट 6 के तहत चल रहे स्प्रिंग आधारित वेब ऐप है। अब, मैं टॉमकैट के डिफ़ॉल्ट डीबीसीपी के बजाय c3p0 कनेक्शन पूलिंग का उपयोग करना चाहता हूं।c3p0 कनेक्शन का उपयोग करना टॉमकैट में पूलिंग स्प्रिंग आधारित ऐप

<resource-ref> 
    <res-ref-name>jdbc/sample</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 

मैं भी है: तो, c3p0 help दस्तावेज़ से, मैं डेटा स्रोत context.xml कुछ की तरह में परिभाषित किया है:

<Resource name="jdbc/sample" auth="Container" 
    driverClassName="oracle.jdbc.driver.OracleDriver" 
    url="jdbc:oracle:thin:@someServer:1551:xyz" 
    username="userName" 
    password="pwd" 
    validationQuery="SELECT 1 FROM dual" 
    testOnBorrow="true" 
    testWhileIdle="true" 
    factory="org.apache.naming.factory.BeanFactory" 
    type="com.mchange.v2.c3p0.ComboPooledDataSource" 
    maxPoolSize="20" 
    minPoolSize="5" 
    acquireIncrement="1" 
    /> 

अब, प्रलेखन कहते हैं, मैं web.xml में निम्नलिखित शामिल होना चाहिए applicationContext.xml में निम्नलिखित:

<jee:jndi-lookup id="sampleDataSource" resource-ref="true" 
    jndi-name="jdbc/sample" /> 

जब मैं बिल्ला शुरू, मैं

012,351 मिल

javax.naming.NameNotFoundException: नाम JDBC

c3p0 बिना और डिफ़ॉल्ट कनेक्शन पूलिंग का उपयोग कर tomcat6 में ठीक काम करता है इस संदर्भ में बाध्य नहीं है।

किसी भी मदद की सराहना की जाएगी।

+0

आप ऐसा क्यों करना चाहते हैं? आपने इसे स्वयं कहा - "tomcat6 में डिफ़ॉल्ट कनेक्शन पूलिंग ठीक काम करता है" – skaffman

+1

डेटा स्रोत को सीधे * applicationContext.xml * में परिभाषित क्यों न करें और पूरी तरह से jndi और नामकरण को बाईपास करें? –

+0

यदि पहले से हल नहीं किया गया है: '' या 'jee का उपयोग करने का प्रयास करें : jndi-lookup id = "sampleDataSource" resource-ref = "true" jndi-name = "comp/env/jdbc/sample" /> ' – micfra

उत्तर

0

आप context.xml में प्रविष्टि के रूप में अच्छी तरह से, उदा .:

<Context antiJARLocking="true" swallowOutput="true"> 

    <ResourceLink 
    global="jdbc/sample" 
    name="jdbc/sample" 
    type="javax.sql.DataSource" /> 
</Context> 

मैं मानता हूँ चाहते हैं कि J2EE अविवेक की अभी तक भी कई स्तर हैं की जरूरत है। ध्यान दें कि context.xml या तो टोमकैट की "conf" निर्देशिका या वेबएप की मेटा-आईएनएफ निर्देशिका में रह सकता है (निर्भर करता है कि आप डेटा स्रोत को सभी वेब ऐप्स या केवल एक विशिष्ट के लिए चाहते हैं)। Context.xml प्रविष्टियों के साथ, आपको web.xml में संसाधन-रेफरी की आवश्यकता नहीं है।

4

यह धागा पुराना है, इसलिए उत्तर भविष्य के उपयोग के लिए है - मुझे एक ही समस्या थी (इस तरह मैं इस धागे को मिला)।

मैंने एक छोटा सा शोध करने के बाद समस्या हल की। कुछ परिभाषाएं हैं, जिनका उपयोग किया गया डेटा स्रोत समर्थित नहीं है। जब आप उन परिभाषाओं को हटाते हैं और दूसरों का नाम बदलते हैं, तो डेटा स्रोत और बिना ऊपर संसाधन संसाधन की आवश्यकता के बिना बनाया गया है।

निम्न लिंक में आप समर्थित परिभाषाओं की सूची पा सकते हैं। http://www.mchange.com/projects/c3p0/#tomcat-specific

निम्न लिंक डेटा स्रोत के जावा दस्तावेज़ पर है। वहां सूचीबद्ध विधियों के अनुसार, आप context.xml फ़ाइल में संसाधन टैग कॉन्फ़िगर कर सकते हैं। http://www.mchange.com/projects/c3p0/apidocs/com/mchange/v2/c3p0/ComboPooledDataSource.html

संबंधित मुद्दे