Я пытаюсь создать глобальный пул соединений для Tomcat с HikariCP, но каким-то образом Hikari создает новый пул для каждого веб-приложения и даже при повторном развертывании приложений.Кроме того, это приводит ко многим не закрытым пулам соединений.
Вот мои конфигурации на Tomcat:
tomcat / conf / server.xml
<GlobalNamingResources>
<Resource name="jdbc/Pool" global="jdbc/Pool" auth="Container"
factory="com.zaxxer.hikari.HikariJNDIFactory"
type="javax.sql.DataSource"
singleton="true"
minimumIdle="5"
maximumPoolSize="30"
connectionTimeout="300000"
dataSourceClassName="oracle.jdbc.pool.OracleDataSource"
dataSource.implicitCachingEnabled="true"
dataSource.user="user"
dataSource.password="pw"
dataSource.url="url" />
</GlobalNamingResources>
tomcat / conf / context.xml
<ResourceLink name="jdbc/Pool"
global="jdbc/Pool"
auth="Container"
type="javax.sql.DataSource" />
В моем Java-коде я получаю источник данных, подобный следующему:
HikariConfig config = new HikariConfig();
Context initContext = new InitialContext();
DataSource dataSource = (DataSource)
initContext.lookup("java:comp/env/jdbc/Pool");
config.setDataSource(dataSource);
config.setRegisterMbeans(true);
HikariDataSource ds = new HikariDataSource(config);
На самом деле я не получаю никаких ошибок или материала, но внутри jconsole я вижу, что Хикари создает пул соединений для каждого веб-приложения.
Кто-нибудь знает, что здесь может быть не так?
Заранее спасибо!