DBCP'de bağlantı sızıntısı ve kilitlenme sorunları ile karşılaştıktan sonra, bunu Tomcat JDBC havuzuna değiştirme kararı aldık. Tabi ki göç gerçekten çok basitti.DBCP'yi Tomcat JDBC-havuzuyla değiştirirken performansı artırın ve performansı azaltın.
Ancak, bir üretim ortamına dağıttıktan sonra, iki Tomcats'ı çalıştıran bir sunucuda yükün 4-4.5'ten 5.5'e yükseldiğini fark ettim. Havuz değişikliği haricinde daha fazla bir şey yapmadık. Ayrıca, JMeter ile ölçülen performans yaklaşık% 5 oranında azalır.
Havuz parametrelerini ayarlamak için biraz zaman harcadım, ancak görünür efektler olmadan.
<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 ve PoolSweeperEnabled Bahar ApplicationContext-jdbc.xml olarak
doğruysa sadece var:
<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>
Ben neyim aşağıda (server.xml
içinde <GlobalNamingResources>
itibaren) benim şimdiki yapılandırma yapıştırılan yanlış mı yapıyorsun? JDBC_pool'un kutudan DBCP'den daha hızlı olması gerektiğini düşündüm.
TestWhenIdle = "true" 'yı deneyin ve aynı zamanda maxActive sayısını 100 gibi bir şeyden en aza indirmeye çalışın. 20. havuzda çok fazla bağlantı olması, yavaşlatıyor. –
Daha önce olduğu gibi aynı doğrulama sorgusunu kullanıyor musunuz? – rootkit
@ rootkit007 - hayır, dbcp ile ant doğrulama sorgusu kullanmadım. – Dzinek