Browse Source

Ninja: Switch from c3p0 to HikariCP database pool

Keith R. Gustafson 9 years ago
parent
commit
8f33a3732c

+ 10 - 4
frameworks/Java/ninja-standalone/pom.xml

@@ -8,10 +8,10 @@
     <description>Ninja test for the TechEmpower/FrameworkBenchmarks project</description>
 
     <properties>
-        <java-version>1.7</java-version>
-        <ninja.version>5.1.0</ninja.version>
-        <mysql.version>5.1.26</mysql.version>
-        <jetty.version>9.2.1.v20140609</jetty.version>
+        <java-version>1.8</java-version>
+        <ninja.version>5.3.0</ninja.version>
+        <mysql.version>5.1.38</mysql.version>
+        <jetty.version>9.3.6.v20151106</jetty.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
@@ -40,6 +40,12 @@
             <artifactId>mysql-connector-java</artifactId>
             <version>${mysql.version}</version>
         </dependency>
+
+        <dependency>
+          <groupId>org.hibernate</groupId>
+          <artifactId>hibernate-hikaricp</artifactId>
+          <version>4.3.8.Final</version>
+        </dependency>
                         
         <dependency>
             <groupId>com.h2database</groupId>

+ 20 - 18
frameworks/Java/ninja-standalone/src/main/resources/META-INF/persistence.xml

@@ -20,15 +20,16 @@
                 <property name="hibernate.jdbc.batch_size" value="100" />
 
                 <!-- Connection Pooling settings -->
-                <property name="hibernate.connection.provider_class"
-                          value="org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider" />
-
-                <property name="hibernate.c3p0.max_size" value="100" />
-                <property name="hibernate.c3p0.min_size" value="0" />
-                <property name="hibernate.c3p0.acquire_increment" value="1" />
-                <property name="hibernate.c3p0.idle_test_period" value="300" />
-                <property name="hibernate.c3p0.max_statements" value="0" />
-                <property name="hibernate.c3p0.timeout" value="100" />     
+                <property name="hibernate.connection.provider_class" value="org.hibernate.hikaricp.internal.HikariCPConnectionProvider" />
+                <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
+                <property name="hibernate.cache.use_query_cache" value="false" />
+                <property name="hibernate.hikari.minimumIdle" value="256" />
+                <property name="hibernate.hikari.maximumPoolSize" value="256" />
+                <property name="hibernate.hikari.idleTimeout" value="30000" />
+                <property name="hibernate.hikari.dataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" />
+                <property name="hibernate.hikari.dataSource.url" value="jdbc:mysql://localhost:3306/hello_world?jdbcCompliantTruncation=false&amp;elideSetAutoCommits=true&amp;useLocalSessionState=true&amp;cachePrepStmts=true&amp;cacheCallableStmts=true&amp;alwaysSendSetIsolation=false&amp;prepStmtCacheSize=4096&amp;cacheServerConfiguration=true&amp;prepStmtCacheSqlLimit=2048&amp;zeroDateTimeBehavior=convertToNull&amp;traceProtocol=false&amp;useUnbufferedInput=false&amp;useReadAheadInput=false&amp;maintainTimeStats=false&amp;useServerPrepStmts&amp;cacheRSMetadata=true" />
+                <property name="hibernate.hikari.dataSource.user" value="benchmarkdbuser" />
+                <property name="hibernate.hikari.dataSource.password" value="benchmarkdbpass" />
             </properties>
         </persistence-unit>
 
@@ -44,15 +45,16 @@
 			<property name="hibernate.format_sql" value="false" />
                         <property name="hibernate.jdbc.batch_size" value="100" />
 			<!-- Connection Pooling settings -->
-			<property name="hibernate.connection.provider_class"
-				value="org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider" />
-
-			<property name="hibernate.c3p0.max_size" value="100" />
-			<property name="hibernate.c3p0.min_size" value="0" />
-			<property name="hibernate.c3p0.acquire_increment" value="1" />
-			<property name="hibernate.c3p0.idle_test_period" value="300" />
-			<property name="hibernate.c3p0.max_statements" value="0" />
-			<property name="hibernate.c3p0.timeout" value="100" />
+                        <property name="hibernate.connection.provider_class" value="org.hibernate.hikaricp.internal.HikariCPConnectionProvider" />
+                        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
+                        <property name="hibernate.cache.use_query_cache" value="false" />
+                        <property name="hibernate.hikari.minimumIdle" value="256" />
+                        <property name="hibernate.hikari.maximumPoolSize" value="256" />
+                        <property name="hibernate.hikari.idleTimeout" value="30000" />
+                        <property name="hibernate.hikari.dataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" />
+                        <property name="hibernate.hikari.dataSource.url" value="jdbc:mysql://localhost:3306/hello_world?jdbcCompliantTruncation=false&amp;elideSetAutoCommits=true&amp;useLocalSessionState=true&amp;cachePrepStmts=true&amp;cacheCallableStmts=true&amp;alwaysSendSetIsolation=false&amp;prepStmtCacheSize=4096&amp;cacheServerConfiguration=true&amp;prepStmtCacheSqlLimit=2048&amp;zeroDateTimeBehavior=convertToNull&amp;traceProtocol=false&amp;useUnbufferedInput=false&amp;useReadAheadInput=false&amp;maintainTimeStats=false&amp;useServerPrepStmts&amp;cacheRSMetadata=true" />
+                        <property name="hibernate.hikari.dataSource.user" value="benchmarkdbuser" />
+                        <property name="hibernate.hikari.dataSource.password" value="benchmarkdbpass" />
 		</properties>
 	</persistence-unit>