मेरे पास टॉमकैट 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 में ठीक काम करता है इस संदर्भ में बाध्य नहीं है।
किसी भी मदद की सराहना की जाएगी।
आप ऐसा क्यों करना चाहते हैं? आपने इसे स्वयं कहा - "tomcat6 में डिफ़ॉल्ट कनेक्शन पूलिंग ठीक काम करता है" – skaffman
डेटा स्रोत को सीधे * applicationContext.xml * में परिभाषित क्यों न करें और पूरी तरह से jndi और नामकरण को बाईपास करें? –
यदि पहले से हल नहीं किया गया है: ' ' या 'jee का उपयोग करने का प्रयास करें : jndi-lookup id = "sampleDataSource" resource-ref = "true" jndi-name = "comp/env/jdbc/sample" /> ' –
micfra