पर डीबीसीपी में कनेक्शन रिसाव और डेडलॉक्स के साथ समस्याओं के बाद हमने लोड और कमी प्रदर्शन को बढ़ाया, हमने इसे टोमकैट जेडीबीसी-पूल के साथ बदलने का निर्णय लिया। बेशक माइग्रेशन वास्तव में सरल था।डीबीसीपी को टॉमकैट जेडीबीसी-पूल
लेकिन उत्पादन वातावरण पर इसे तैनात करने के बाद मैंने देखा कि दो टॉमकैट चलाने वाले सर्वर पर लोड 4-4.5 से 5.5 तक बढ़ता है। पूल के परिवर्तन को छोड़कर हमने और कुछ नहीं किया। इसके अलावा, जेएमटर के साथ मापा प्रदर्शन लगभग 5% की कमी।
मैंने पूल पैरामीटर को ट्यून करने के लिए कुछ समय बिताया, लेकिन बिना दृश्य प्रभाव के।
<Resource name="jdbc/xxxxxx"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
initialSize="10"
maxActive="100"
minIdle="10"
maxIdle="50"
maxWait="10000"
testOnBorrow="true"
testOnReturn="false"
testOnConnect="false"
testWhileIdle="false"
validationQuery="SELECT 1 from dual"
validationInterval="30000"
suspectTimeout="60"
timeBetweenEvictionRunsMillis="30000"
removeAbandonedTimeout="60"
removeAbandoned="true"
logAbandoned="true"
abandonWhenPercentageFull="50"
minEvictableIdleTimeMillis="60000"
jmxEnabled="true"
username="xxxxx"
password="xxxxx"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:oci:xxxxx"/>
FairQueue और PoolSweeperEnabled सच
हैं स्प्रिंग applicationContext-jdbc.xml में मैं केवल है:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="resourceRef">
<value>true</value>
</property>
<property name="jndiName">
<value>java:comp/env/jdbc/PortalDB</value>
</property>
</bean>
मैं क्या कर रहा हूँ मैं नीचे (server.xml
में <GlobalNamingResources>
से) मेरे वर्तमान config चिपकाया गलत कर रहे हो मैंने सोचा, कि जेडीबीसी_पूल बॉक्स के बाहर डीबीसीपी से तेज होना चाहिए।
testWhenIdle = "true" आज़माएं, और अधिकतम 100 की संख्या को 100 से कम करने की कोशिश करें। शायद पूल में बहुत से कनेक्शन होने से चीज़ें धीमा हो रही हैं। –
क्या आप पहले से ही वही सत्यापन क्वेरी का उपयोग कर रहे हैं? – rootkit
@ rootkit007 - नहीं, डीबीसीपी के साथ मैंने चींटी सत्यापन क्वेरी का उपयोग नहीं किया। – Dzinek