svn commit: r817082 - in /ofbiz/trunk/framework/entity: config/entityengine.xml dtd/entity-config.xsd src/org/ofbiz/entity/connection/DBCPConnectionFactory.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r817082 - in /ofbiz/trunk/framework/entity: config/entityengine.xml dtd/entity-config.xsd src/org/ofbiz/entity/connection/DBCPConnectionFactory.java

jleroux@apache.org
Author: jleroux
Date: Sun Sep 20 19:14:41 2009
New Revision: 817082

URL: http://svn.apache.org/viewvc?rev=817082&view=rev
Log:
Allow to set timeBetweenEvictionRunsMillis for each DB type from entityengine.xml. Keep default value at 600000 (10 min)

Modified:
    ofbiz/trunk/framework/entity/config/entityengine.xml
    ofbiz/trunk/framework/entity/dtd/entity-config.xsd
    ofbiz/trunk/framework/entity/src/org/ofbiz/entity/connection/DBCPConnectionFactory.java

Modified: ofbiz/trunk/framework/entity/config/entityengine.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/config/entityengine.xml?rev=817082&r1=817081&r2=817082&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/config/entityengine.xml (original)
+++ ofbiz/trunk/framework/entity/config/entityengine.xml Sun Sep 20 19:14:41 2009
@@ -143,7 +143,8 @@
                 jdbc-password=""
                 isolation-level="ReadUncommitted"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
         <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/HsqlDataSource" isolation-level="ReadUncommitted"/> -->
         <!-- <jndi-jdbc jndi-server-name="default" jndi-name="comp/env/jdbc/xa/localhsql" isolation-level="ReadUncommitted"/> --> <!-- Orion Style JNDI name -->
         <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="localhsqlDataSource"/> --> <!-- Weblogic Style JNDI name -->
@@ -169,7 +170,8 @@
                 jdbc-password="ofbiz"
                 isolation-level="ReadCommitted"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
         <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/DerbyDataSource" isolation-level="ReadCommitted"/> -->
     </datasource>
     <datasource name="localderbyodbc"
@@ -188,7 +190,8 @@
             jdbc-password="ofbiz"
             isolation-level="ReadCommitted"
             pool-minsize="2"
-            pool-maxsize="250"/>
+            pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
         <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/DerbyDataSource" isolation-level="ReadCommitted"/> -->
     </datasource>
     <datasource name="localderbyolap"
@@ -211,7 +214,8 @@
                 jdbc-password="ofbiz"
                 isolation-level="ReadCommitted"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
         <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/DerbyDataSource" isolation-level="ReadCommitted"/> -->
     </datasource>
 
@@ -231,7 +235,8 @@
                 jdbc-password="ofbiz"
                 isolation-level="ReadCommitted"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
         <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/CloudscapeDataSource" isolation-level="Serializable"/> -->
     </datasource>
 
@@ -253,7 +258,8 @@
                 jdbc-password="ofbiz"
                 isolation-level="ReadCommitted"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
         <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/DaffodilDataSource" isolation-level="ReadCommitted"/> -->
     </datasource>
 
@@ -274,7 +280,8 @@
                 jdbc-password="ofbiz"
                 isolation-level="ReadCommitted"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
     </datasource>
 
     <datasource name="localmysql"
@@ -301,7 +308,10 @@
                 jdbc-password="ofbiz"
                 isolation-level="ReadCommitted"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/><!-- Please note that at least one person has experienced a problem with this value with MySQL
+                and had to set it to -1 in order to avoid this issue.
+                For more look at http://markmail.org/thread/5sivpykv7xkl66px and http://commons.apache.org/dbcp/configuration.html-->
         <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/MySqlDataSource" isolation-level="Serializable"/> -->
     </datasource>
     <datasource name="odbcmysql"
@@ -325,7 +335,8 @@
                 jdbc-password="ofbiz"
                 isolation-level="ReadCommitted"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
         <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/MySqlDataSource" isolation-level="Serializable"/> -->
     </datasource>
 
@@ -353,9 +364,10 @@
                 jdbc-password="ofbiz"
                 isolation-level="ReadCommitted"
                 pool-minsize="2"
-                pool-maxsize="250"/><!-- Be warned that at this date (2009-06-09) the max_connections parameters in postgresql.conf
-                is set by default to 100 by the initdb process see http://www.postgresql.org/docs/8.3/static/runtime-config-connection.html#GUC-MAX-CONNECTIONS-->
-                
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/><!-- Be warned that at this date (2009-09-20) the max_connections parameters in postgresql.conf
+                is set by default to 100 by the initdb process see http://www.postgresql.org/docs/8.4/static/runtime-config-connection.html#GUC-MAX-CONNECTIONS-->
+
         <!-- <jndi-jdbc jndi-server-name="default" jndi-name="java:comp/env/jdbc/localpostgres" isolation-level="ReadCommitted"/>-->
         <!-- <jndi-jdbc jndi-server-name="default" jndi-name="comp/env/jdbc/xa/localpostgres" isolation-level="ReadCommitted"/> --> <!-- Orion Style JNDI name -->
         <!-- <jndi-jdbc jndi-server-name="localweblogic" jndi-name="PostgresDataSource"/> --> <!-- Weblogic Style JNDI name -->
@@ -388,7 +400,8 @@
                 jdbc-password="ofbiz"
                 isolation-level="ReadCommitted"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
     </datasource>
 
     <datasource name="localoracle"
@@ -409,7 +422,8 @@
                 jdbc-username="ofbiz"
                 jdbc-password="ofbiz"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
     </datasource>
     <datasource name="localoracledd"
             helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
@@ -425,7 +439,8 @@
                 jdbc-username="ofbiz"
                 jdbc-password="ofbiz"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
     </datasource>
 
     <datasource name="localsybase"
@@ -447,7 +462,8 @@
                 jdbc-password="ofbiz1"
                 isolation-level="ReadCommitted"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
     </datasource>
 
     <datasource name="localsapdb"
@@ -469,7 +485,8 @@
                 jdbc-password="ofbiz"
                 isolation-level="ReadCommitted"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
         <!-- <jndi-jdbc jndi-server-name="default" jndi-name="comp/env/jdbc/xa/localsapdb" isolation-level="ReadCommitted"/> --> <!-- Orion Style JNDI name -->
         <!-- <jndi-jdbc jndi-server-name="localweblogic" jndi-name="SapDBDataSource"/> --> <!-- Weblogic Style JNDI name -->
         <!-- <jndi-jdbc jndi-server-name="default" jndi-name="jdbc/localsapdb" isolation-level="ReadCommitted"/> --> <!-- JRun4 Style JNDI name -->
@@ -495,7 +512,8 @@
                 jdbc-password="masterkey"
                 isolation-level="ReadCommitted"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
         <!-- Sample remote URI: jdbc-uri="jdbc:firebirdsql://localhost:3050//opt/interbase/data/ofbiz.gdb" -->
         <!-- <jndi-jdbc jndi-server-name="default" jndi-name="comp/env/jdbc/xa/localfirebird" isolation-level="ReadCommitted"/> --> <!-- Orion Style JNDI name -->
         <!-- <tyrex-dataSource dataSource-name="firebird" isolation-level="ReadCommitted"/> Â -->
@@ -536,7 +554,8 @@
                 jdbc-password="ofbiz"
                 isolation-level="ReadCommitted"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
         <!-- <jndi-jdbc jndi-server-name="default" jndi-name="comp/env/jdbc/xa/localmssql" isolation-level="ReadCommitted"/> --> <!-- Orion Style JNDI name -->
     </datasource>
 
@@ -558,7 +577,8 @@
                 jdbc-password="ofbiz"
                 isolation-level="ReadCommitted"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
         <!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/OracleDataSource" isolation-level="Serializable"/> -->
     </datasource>
 
@@ -584,6 +604,7 @@
                 jdbc-password="adssys"
                 isolation-level="ReadCommitted"
                 pool-minsize="2"
-                pool-maxsize="250"/>
+                pool-maxsize="250"
+                timeBetweenEvictionRunsMillis="600000"/>
     </datasource>
 </entity-config>

Modified: ofbiz/trunk/framework/entity/dtd/entity-config.xsd
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/dtd/entity-config.xsd?rev=817082&r1=817081&r2=817082&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/dtd/entity-config.xsd (original)
+++ ofbiz/trunk/framework/entity/dtd/entity-config.xsd Sun Sep 20 19:14:41 2009
@@ -425,6 +425,7 @@
         </xs:attribute>
         <xs:attribute type="xs:nonNegativeInteger" name="pool-maxsize" default="50"/>
         <xs:attribute type="xs:nonNegativeInteger" name="pool-minsize" default="2"/>
+        <xs:attribute type="xs:nonNegativeInteger" name="timeBetweenEvictionRunsMillis" default="600000"/>
         <xs:attribute type="xs:nonNegativeInteger" name="pool-sleeptime" default="300000"/>
         <xs:attribute type="xs:nonNegativeInteger" name="pool-lifetime" default="600000"/>
         <xs:attribute type="xs:nonNegativeInteger" name="pool-deadlock-maxwait" default="300000"/>

Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/connection/DBCPConnectionFactory.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/connection/DBCPConnectionFactory.java?rev=817082&r1=817081&r2=817082&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/connection/DBCPConnectionFactory.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/connection/DBCPConnectionFactory.java Sun Sep 20 19:14:41 2009
@@ -67,28 +67,38 @@
             String dbPass = jotmJdbcElement.getAttribute("jdbc-password");
 
             // pool settings
-            int maxSize, minSize;
+            int maxSize, minSize, timeBetweenEvictionRunsMillis;
             try {
                 maxSize = Integer.parseInt(jotmJdbcElement.getAttribute("pool-maxsize"));
             } catch (NumberFormatException nfe) {
                 Debug.logError("Problems with pool settings [pool-maxsize=" + jotmJdbcElement.getAttribute("pool-maxsize") + "]; the values MUST be numbers, using default of 20.", module);
                 maxSize = 20;
             } catch (Exception e) {
-                Debug.logError(e, "Problems with pool settings", module);
+                Debug.logError("Problems with pool settings [pool-maxsize], using default of 20.", module);
                 maxSize = 20;
             }
             try {
                 minSize = Integer.parseInt(jotmJdbcElement.getAttribute("pool-minsize"));
             } catch (NumberFormatException nfe) {
-                Debug.logError("Problems with pool settings [pool-minsize=" + jotmJdbcElement.getAttribute("pool-minsize") + "]; the values MUST be numbers, using default of 5.", module);
+                Debug.logError("Problems with pool settings [pool-minsize=" + jotmJdbcElement.getAttribute("pool-minsize") + "]; the values MUST be numbers, using default of 2.", module);
                 minSize = 2;
             } catch (Exception e) {
-                Debug.logError(e, "Problems with pool settings", module);
+                Debug.logError("Problems with pool settings [pool-minsize], using default of 2.", module);
                 minSize = 2;
             }
             int maxIdle = maxSize / 2;
             maxIdle = maxIdle > minSize ? maxIdle : minSize;
 
+            try {
+                timeBetweenEvictionRunsMillis = Integer.parseInt(jotmJdbcElement.getAttribute("timeBetweenEvictionRunsMillis"));
+            } catch (NumberFormatException nfe) {
+                Debug.logError("Problems with pool settings [timeBetweenEvictionRunsMillis=" + jotmJdbcElement.getAttribute("timeBetweenEvictionRunsMillis") + "]; the values MUST be numbers, using default of 600000.", module);
+                timeBetweenEvictionRunsMillis = 600000;
+            } catch (Exception e) {
+                Debug.logError("Problems with pool settings [timeBetweenEvictionRunsMillis], using default of 600000.", module);
+                timeBetweenEvictionRunsMillis = 600000;
+            }
+
             // load the driver
             Driver jdbcDriver;
             try {
@@ -111,7 +121,8 @@
 
             // configure the pool settings
             GenericObjectPool pool = new GenericObjectPool();
-            pool.setTimeBetweenEvictionRunsMillis(600000);
+
+            pool.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
             pool.setMaxActive(maxSize);
             pool.setMaxIdle(maxIdle);
             pool.setMinIdle(minSize);