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