barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

понедельник, 9 апреля 2012 г.

Замена пулу commons-dbcp в Tomcat 7

В Tomcat 7 на смену пулу JDBC-соединений commons-dbcp пришел tomcat-jdbc-pool, который вроде бы избавлен от недостатков commons-dbcp. Скачать новый пул можно отсюда: http://people.apache.org/~fhanik/jdbc-pool/. Использовать новый пул можно и на Tomcat 6, положив скачанный jar-ник в /lib томката и использовав следующую конфигурацию JNDI DataSource:

<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.

Комментариев нет:

Отправить комментарий