Сильно позаимствовано у Дэвида Н Небингера * Пост 1002 *: Tomcat и HikariCP .
Установить HikariCP
КомуЧтобы использовать JNDI, вам нужно объявить источник данных JNDI со всеми его настройками, паролем и параметрами кэша в объявлении JNDI.Это не имеет ничего общего с Solr на данный момент.Это механизм Tomcat.Как это сделать, описано в этом руководстве, в котором также используется HikariCP .
Сначала загрузите файл .zip или .tar.gz с http://brettwooldridge.github.io/HikariCP/. На самом деле это исходный выпуск, который вам нужно будет создать самостоятельно.
Второй вариант:чтобы загрузить встроенный jar-файл из источника, такого как Maven Central, https://mvnrepository.com/artifact/com.zaxxer/HikariCP
Получив jar, скопируйте его в каталог Tomcat lib/ext
.Обратите внимание, что Hikari CP действительно зависит от SLF4J, поэтому вам необходимо поместить этот jar также в lib/ext
.
Не забудьте поместить драйвер JDBC вашего источника данных в папку lib/ext
.
Конфигурирование источника данных JNDI
Местоположение вашего определения источника данных JNDI <Resource />
зависит от области действия соединений.Вы можете определить их глобально, указав их в Tomcat conf/server.xml
и conf/context.xml
, или вы можете охватить их для отдельных приложений, определив их в conf/Catalina/localhost/WebAppContext.xml
(где WebAppContext
- это контекст веб-приложения для приложения, в основном, каталогимя из каталога веб-приложений Tomcat).
Создайте файл conf/Catalina/localhost/ROOT.xml
, если он еще не существует.Используйте таблицу из https://github.com/brettwooldridge/HikariCP#popular-datasource-class-names, чтобы найти имя класса вашего источника данных, оно нам понадобится при определении элемента.
<Resource name="jdbc/SolrPool" auth="Container"
factory="com.zaxxer.hikari.HikariJNDIFactory"
type="javax.sql.DataSource"
minimumIdle="5"
maximumPoolSize="10"
connectionTimeout="300000"
dataSourceClassName="oracle.jdbc.pool.OracleDataSource"
dataSource.url="jdbc:oracle:thin:@address/mydb"
dataSource.implicitCachingEnabled="true"
dataSource.user="user"
dataSource.password="pass" />
Используйте источник данных JNDI в Solr
После того, как вы ознакомитесь с этим руководством, вам нужно будет использовать объявленный источник данных JNDI, это будет похоже на , описанное в Solr Wiki :
<dataSource
jndiName="java:jdbc/SolrPool"
type="JdbcDataSource"
user="" password=""/> <!-- leave out user/password here -->