Done at revision: 817194
No problems about adding also numTestsPerEvictionRun ?
I think this should help future potential issues since people will be aware of 
this parameters and may try them.

Jacques

From: "Jacopo Cappellato" <[email protected]>
I think that "time-between-eviction-runs-millis" would be a better  choice.

Jacopo

On Sep 21, 2009, at 7:45 AM, Jacques Le Roux wrote:

Hi Jacopo,

I picked the DBCP name for the parameter, what would you suggest ?

Jacques

From: "Jacopo Cappellato" <[email protected]>
Hi Jacques,

the name of the parameter is not i the style of the other  attributes  used in 
entityengine.xml file.
I think it is important to have a very strict naming convention,  at  least for 
central and important files like this one.

Jacopo

On Sep 20, 2009, at 10:49 PM, Jacques Le Roux wrote:

This is realted to Stale DB-connections

I wondered if we should not make also numTestsPerEvictionRun an   inline-jdbc 
parameter.
Maybe the case Hans Holmlund crossed was related with a too low   value 
(default 3) in conjunction with 10 min for
timeBetweenEvictionRunsMillis

Jacques

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"
solation-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" solation-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);












Reply via email to