Administrator
|
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" 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); > > |
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" 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); >> >> > > |
Administrator
|
Hi Jacopo,
I picked the DBCP name for the parameter, what would you suggest ? Jacques From: "Jacopo Cappellato" <[hidden email]> > 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" 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); >>> >>> >> >> > > |
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" <[hidden email]> >> 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" 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); >>>> >>>> >>> >>> >> >> > > |
Administrator
|
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" <[hidden email]> >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" <[hidden email]> >>> 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); >>>>> >>>>> >>>> >>>> >>> >>> >> >> > > |
Free forum by Nabble | Edit this page |