В Tomcat 7 на смену пулу JDBC-соединений commons-dbcp пришел tomcat-jdbc-pool, который вроде бы избавлен от недостатков commons-dbcp. Скачать новый пул можно отсюда: http://people.apache.org/~fhanik/jdbc-pool/. Использовать новый пул можно и на Tomcat 6, положив скачанный jar-ник в /lib томката и использовав следующую конфигурацию JNDI DataSource:
ЗЫ По некоторым данным, по производительности tomcat-jdbc-pool выигрывает не только у старичка DBCP, но и у c3po. По результатам моего же тестирования с конфигурацией, указанной выше, результаты примерно следующие (при нагрузке 5 запросов / сек; абсолютные значения не имеют значения т.к. приложение много чего ещё делает помимо взаимодействия с БД, важна разница между значениями):
<Resource name="jdbc/myDb" auth="Container" type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
maxActive="200" maxIdle="30" maxWait="10000"
username="xxx" password="yyy" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@//myora:1521/zzz"/>
ЗЫ По некоторым данным, по производительности tomcat-jdbc-pool выигрывает не только у старичка DBCP, но и у c3po. По результатам моего же тестирования с конфигурацией, указанной выше, результаты примерно следующие (при нагрузке 5 запросов / сек; абсолютные значения не имеют значения т.к. приложение много чего ещё делает помимо взаимодействия с БД, важна разница между значениями):
- commons-dbcp : 85-90 мс
- tomcat-jdbc-pool: 110-115 мс
- c3p0: 105-110 мс
- oracle.jdbc.pool.OracleConnectionPoolDataSource: 115-120 мс
ЗЫЗЫ после небольшого докручивания c3p0 показал результат, аналогичный commons-dbcp.
Комментариев нет:
Отправить комментарий