You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by pr...@apache.org on 2023/06/21 13:23:22 UTC
[ranger] branch master updated: RANGER-2895: Replace c3p0 connection pool with HikariCP
This is an automated email from the ASF dual-hosted git repository.
pradeep pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push:
new 846031985 RANGER-2895: Replace c3p0 connection pool with HikariCP
846031985 is described below
commit 846031985cae70f7a8c5e92faf186948a302260e
Author: Pradeep AgrawaL <pr...@apache.org>
AuthorDate: Wed Jun 7 18:39:25 2023 +0530
RANGER-2895: Replace c3p0 connection pool with HikariCP
---
pom.xml | 4 +-
security-admin/pom.xml | 6 +-
.../scripts/ranger-admin-site-template.xml | 10 +--
security-admin/scripts/upgrade_admin.py | 9 +-
.../org/apache/ranger/db/RangerDaoManager.java | 6 --
.../org/apache/ranger/db/XXAccessAuditDao.java | 2 +-
.../src/main/resources/META-INF/persistence.xml | 10 ---
.../conf.dist/ranger-admin-default-site.xml | 18 ++--
.../main/webapp/META-INF/applicationContext.xml | 98 +++-------------------
9 files changed, 32 insertions(+), 131 deletions(-)
diff --git a/pom.xml b/pom.xml
index 9a6667ad2..9fc946731 100644
--- a/pom.xml
+++ b/pom.xml
@@ -87,7 +87,7 @@
<atlas.jettison.version>1.3.7</atlas.jettison.version>
<atlas.commons.logging.version>1.1.3</atlas.commons.logging.version>
<bouncycastle.version>1.70</bouncycastle.version>
- <c3p0.version>0.9.5.5</c3p0.version>
+ <HikariCP.version>4.0.3</HikariCP.version>
<cglib.version>2.2.0-b23</cglib.version>
<checkstyle.plugin.version>3.1.0</checkstyle.plugin.version>
<checkstyle.version>8.29</checkstyle.version>
@@ -176,7 +176,7 @@
<metrics.core.version>3.0.2</metrics.core.version>
<mockito.version>3.0.0</mockito.version>
<mockito.all.version>1.10.19</mockito.all.version>
- <mysql-connector-java.version>5.1.31</mysql-connector-java.version>
+ <mysql-connector-java.version>5.1.49</mysql-connector-java.version>
<netty-all.version>4.1.85.Final</netty-all.version>
<noggit.version>0.8</noggit.version>
<orc.core.version>1.6.7</orc.core.version>
diff --git a/security-admin/pom.xml b/security-admin/pom.xml
index 25aaa0e58..08d289590 100644
--- a/security-admin/pom.xml
+++ b/security-admin/pom.xml
@@ -46,9 +46,9 @@
<version>${asm.all.version}</version>
</dependency>
<dependency>
- <groupId>com.mchange</groupId>
- <artifactId>c3p0</artifactId>
- <version>${c3p0.version}</version>
+ <groupId>com.zaxxer</groupId>
+ <artifactId>HikariCP</artifactId>
+ <version>${HikariCP.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.hk2.external</groupId>
diff --git a/security-admin/scripts/ranger-admin-site-template.xml b/security-admin/scripts/ranger-admin-site-template.xml
index 037260f50..dc4bb52de 100644
--- a/security-admin/scripts/ranger-admin-site-template.xml
+++ b/security-admin/scripts/ranger-admin-site-template.xml
@@ -117,25 +117,21 @@
<value></value>
</property>
<property>
- <name>ranger.jpa.jdbc.initialpoolsize</name>
+ <name>ranger.jpa.jdbc.idletimeout</name>
<value></value>
</property>
<property>
- <name>ranger.jpa.jdbc.maxidletime</name>
+ <name>ranger.jpa.jdbc.maxlifetime</name>
<value></value>
</property>
<property>
- <name>ranger.jpa.jdbc.maxstatements</name>
+ <name>ranger.jpa.jdbc.connectiontimeout</name>
<value></value>
</property>
<property>
<name>ranger.jpa.jdbc.preferredtestquery</name>
<value></value>
</property>
- <property>
- <name>ranger.jpa.jdbc.idleconnectiontestperiod</name>
- <value></value>
- </property>
<property>
<name>ranger.jpa.jdbc.credential.alias</name>
<value></value>
diff --git a/security-admin/scripts/upgrade_admin.py b/security-admin/scripts/upgrade_admin.py
index 85f57b8ce..d340bc603 100755
--- a/security-admin/scripts/upgrade_admin.py
+++ b/security-admin/scripts/upgrade_admin.py
@@ -102,11 +102,10 @@ config2xmlMAP = {
'jdbc.password':'ranger.jpa.jdbc.password',
'jdbc.maxPoolSize':'ranger.jpa.jdbc.maxpoolsize',
'jdbc.minPoolSize':'ranger.jpa.jdbc.minpoolsize',
- 'jdbc.initialPoolSize':'ranger.jpa.jdbc.initialpoolsize',
- 'jdbc.maxIdleTime':'ranger.jpa.jdbc.maxidletime',
- 'jdbc.maxStatements':'ranger.jpa.jdbc.maxstatements',
- 'jdbc.preferredTestQuery':'ranger.jpa.jdbc.preferredtestquery',
- 'jdbc.idleConnectionTestPeriod':'ranger.jpa.jdbc.idleconnectiontestperiod',
+ 'jdbc.idleTimeout':'ranger.jpa.jdbc.idletimeout',
+ 'jdbc.maxLifetime':'ranger.jpa.jdbc.maxlifetime',
+ 'jdbc.connectionTimeout':'ranger.jpa.jdbc.connectiontimeout',
+ 'jdbc.preferredTestQuery':'ranger.jpa.jdbc.preferredTestQuery',
'xaDB.jdbc.credential.alias':'ranger.jpa.jdbc.credential.alias',
'xaDB.jdbc.credential.provider.path':'ranger.jpa.jdbc.credential.provider.path',
'xa.logs.base.dir':'ranger.logs.base.dir',
diff --git a/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManager.java b/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManager.java
index 44375e5ac..81f9a1681 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManager.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManager.java
@@ -38,9 +38,6 @@ public class RangerDaoManager extends RangerDaoManagerBase {
@PersistenceContext(unitName = "defaultPU")
private EntityManager em;
- @PersistenceContext(unitName = "loggingPU")
- private EntityManager loggingEM;
-
@Autowired
StringUtil stringUtil;
@@ -57,9 +54,6 @@ public class RangerDaoManager extends RangerDaoManagerBase {
logger.debug("RangerDaoManager.getEntityManager(" + persistenceContextUnit + ")");
}
- if ("loggingPU".equalsIgnoreCase(persistenceContextUnit)) {
- return loggingEM;
- }
return getEntityManager();
}
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java
index d6de8423c..7d60c5f67 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java
@@ -34,7 +34,7 @@ import org.springframework.stereotype.Service;
public class XXAccessAuditDao extends BaseDao<XXAccessAudit> {
private static final Logger logger = LoggerFactory.getLogger(XXAccessAuditDao.class);
public XXAccessAuditDao( RangerDaoManagerBase daoManager ) {
- super(daoManager, "loggingPU");
+ super(daoManager);
}
public Long getMaxIdOfXXAccessAudit(){
Long maxXXAccessAuditID=Long.valueOf(0L);
diff --git a/security-admin/src/main/resources/META-INF/persistence.xml b/security-admin/src/main/resources/META-INF/persistence.xml
index 20f08d22a..827a312fd 100644
--- a/security-admin/src/main/resources/META-INF/persistence.xml
+++ b/security-admin/src/main/resources/META-INF/persistence.xml
@@ -86,15 +86,5 @@
<property name="eclipselink.jdbc.batch-writing" value="jdbc"/>
</properties>
</persistence-unit>
- <persistence-unit name="loggingPU">
- <mapping-file>META-INF/jpa_named_queries.xml</mapping-file>
- <class>org.apache.ranger.entity.XXAccessAudit</class>
- <shared-cache-mode>NONE</shared-cache-mode>
-
- <properties>
- <property name="eclipselink.logging.level" value="WARNING"/>
- <property name="eclipselink.jdbc.batch-writing" value="jdbc"/>
- </properties>
- </persistence-unit>
</persistence>
diff --git a/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml b/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
index 68d8a0303..0217489f8 100644
--- a/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
+++ b/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
@@ -392,20 +392,14 @@
</property>
<property>
- <name>ranger.jpa.jdbc.initialpoolsize</name>
- <value>5</value>
+ <name>ranger.jpa.jdbc.idletimeout</name>
+ <value>300000</value>
<description></description>
</property>
<property>
- <name>ranger.jpa.jdbc.maxidletime</name>
- <value>300</value>
- <description></description>
- </property>
-
- <property>
- <name>ranger.jpa.jdbc.maxstatements</name>
- <value>500</value>
+ <name>ranger.jpa.jdbc.maxlifetime</name>
+ <value>1800000</value>
<description></description>
</property>
@@ -416,8 +410,8 @@
</property>
<property>
- <name>ranger.jpa.jdbc.idleconnectiontestperiod</name>
- <value>60</value>
+ <name>ranger.jpa.jdbc.connectiontimeout</name>
+ <value>30000</value>
<description></description>
</property>
diff --git a/security-admin/src/main/webapp/META-INF/applicationContext.xml b/security-admin/src/main/webapp/META-INF/applicationContext.xml
index 0923d6007..ce4afc538 100644
--- a/security-admin/src/main/webapp/META-INF/applicationContext.xml
+++ b/security-admin/src/main/webapp/META-INF/applicationContext.xml
@@ -61,26 +61,6 @@ http://www.springframework.org/schema/util/spring-util.xsd">
</property>
</bean>
- <bean id="loggingEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
- <property name="persistenceUnitName" value="loggingPU" />
- <property name="dataSource" ref="loggingDataSource" />
- <property name="jpaVendorAdapter">
- <bean class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter">
- <property name="databasePlatform" value="${ranger.jpa.jdbc.dialect}" />
- <property name="showSql" value="${ranger.jpa.showsql}" />
- <property name="generateDdl" value="false" />
- </bean>
- </property>
- <property name="jpaPropertyMap">
- <props>
- <prop key="eclipselink.weaving">false</prop>
- </props>
- </property>
- <property name="loadTimeWeaver">
- <bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/>
- </property>
- </bean>
-
<bean id="xmlPropertyConfigurer" class="org.apache.ranger.common.XMLPropertiesUtil" />
<bean id="propertyConfigurer" class="org.apache.ranger.common.PropertiesUtil">
@@ -123,89 +103,37 @@ http://www.springframework.org/schema/util/spring-util.xsd">
<property name="entityManagerFactory" ref="defaultEntityManagerFactory" />
</bean>
- <bean id="transactionManager2" class="org.springframework.orm.jpa.JpaTransactionManager">
- <property name="entityManagerFactory" ref="loggingEntityManagerFactory" />
- </bean>
-
- <!-- Datasource and Connection Pool Configuration http://www.mchange.com/projects/c3p0/index.jsp#configuration_properties -->
- <bean id="defaultDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
- <property name="driverClass">
+ <!-- Datasource and Connection Pool Configuration https://github.com/brettwooldridge/HikariCP -->
+ <bean id="defaultDataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
+ <property name="driverClassName">
<value>${ranger.jpa.jdbc.driver}</value>
</property>
<property name="jdbcUrl">
<value>${ranger.jpa.jdbc.url}</value>
</property>
- <property name="user">
+ <property name="username">
<value>${ranger.jpa.jdbc.user}</value>
</property>
<property name="password">
<value>${ranger.jpa.jdbc.password}</value>
</property>
- <property name="maxPoolSize">
- <!-- <value>20</value> -->
+ <property name="maximumPoolSize">
<value>${ranger.jpa.jdbc.maxpoolsize}</value>
</property>
- <property name="minPoolSize">
+ <property name="minimumIdle">
<value>${ranger.jpa.jdbc.minpoolsize}</value>
</property>
- <property name="initialPoolSize">
- <value>${ranger.jpa.jdbc.initialpoolsize}</value>
+ <property name="idleTimeout">
+ <value>${ranger.jpa.jdbc.idletimeout}</value>
</property>
- <!-- Seconds a Connection can remain pooled but unused before being discarded.
- Zero means idle connections never expire. -->
- <property name="maxIdleTime">
- <value>${ranger.jpa.jdbc.maxidletime}</value>
- </property>
- <property name="maxStatements">
- <value>${ranger.jpa.jdbc.maxstatements}</value>
- </property>
- <property name="preferredTestQuery">
+ <property name="connectionTestQuery">
<value>${ranger.jpa.jdbc.preferredtestquery}</value>
</property>
- <property name="idleConnectionTestPeriod">
- <value>${ranger.jpa.jdbc.idleconnectiontestperiod}</value>
- </property>
- <property name="statementCacheNumDeferredCloseThreads">
- <value>1</value>
- </property>
- </bean>
-
- <bean id="loggingDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
- <property name="driverClass">
- <value>${ranger.jpa.jdbc.driver}</value>
- </property>
- <property name="jdbcUrl">
- <value>${ranger.jpa.audit.jdbc.url}</value>
- </property>
- <property name="user">
- <value>${ranger.jpa.jdbc.user}</value>
- </property>
- <property name="password">
- <value>${ranger.jpa.jdbc.password}</value>
- </property>
- <property name="maxPoolSize">
- <!-- <value>20</value> -->
- <value>${ranger.jpa.jdbc.maxpoolsize}</value>
- </property>
- <property name="minPoolSize">
- <value>${ranger.jpa.jdbc.minpoolsize}</value>
- </property>
- <property name="initialPoolSize">
- <value>${ranger.jpa.jdbc.initialpoolsize}</value>
- </property>
- <!-- Seconds a Connection can remain pooled but unused before being discarded.
- Zero means idle connections never expire. -->
- <property name="maxIdleTime">
- <value>${ranger.jpa.jdbc.maxidletime}</value>
- </property>
- <property name="maxStatements">
- <value>${ranger.jpa.jdbc.maxstatements}</value>
- </property>
- <property name="preferredTestQuery">
- <value>${ranger.jpa.jdbc.preferredtestquery}</value>
+ <property name="maxLifetime">
+ <value>${ranger.jpa.jdbc.maxlifetime}</value>
</property>
- <property name="idleConnectionTestPeriod">
- <value>${ranger.jpa.jdbc.idleconnectiontestperiod}</value>
+ <property name="connectionTimeout">
+ <value>${ranger.jpa.jdbc.connectiontimeout}</value>
</property>
</bean>