You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by rw...@apache.org on 2003/03/06 15:58:42 UTC
cvs commit: jakarta-commons/dbcp/src/java/org/apache/commons/dbcp BasicDataSource.java BasicDataSourceFactory.java
rwaldhoff 2003/03/06 06:58:42
Modified: dbcp/src/java/org/apache/commons/dbcp BasicDataSource.java
BasicDataSourceFactory.java
Log:
Apply Gerald Turner's patch that exposes idle eviction parameters in BasicDataSource/BasicDataSourceFactory
This closes bug 16581 <http://issues.apache.org/bugzilla/show_bug.cgi?id=16581>
Thanks Gerald!
Revision Changes Path
1.12 +102 -4 jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/BasicDataSource.java
Index: BasicDataSource.java
===================================================================
RCS file: /home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/BasicDataSource.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- BasicDataSource.java 21 Jul 2002 00:38:35 -0000 1.11
+++ BasicDataSource.java 6 Mar 2003 14:58:42 -0000 1.12
@@ -177,7 +177,98 @@
this.maxWait = maxWait;
}
+ /**
+ * The indication of whether objects will be validated before being
+ * borrowed from the pool. If the object fails to validate, it will be
+ * dropped from the pool, and we will attempt to borrow another.
+ */
+ protected boolean testOnBorrow = GenericObjectPool.DEFAULT_TEST_ON_BORROW;
+
+ public boolean getTestOnBorrow() {
+ return (this.testOnBorrow);
+ }
+
+ public void setTestOnBorrow(boolean testOnBorrow) {
+ this.testOnBorrow = testOnBorrow;
+ }
+
+ /**
+ * The indication of whether objects will be validated before being
+ * returned to the pool.
+ */
+ protected boolean testOnReturn = GenericObjectPool.DEFAULT_TEST_ON_RETURN;
+
+ public boolean getTestOnReturn() {
+ return (this.testOnReturn);
+ }
+
+ public void setTestOnReturn(boolean testOnReturn) {
+ this.testOnReturn = testOnReturn;
+ }
+
+
+ /**
+ * The number of milliseconds to sleep between runs of the idle object
+ * evictor thread. When non-positive, no idle object evictor thread will
+ * be run.
+ */
+ protected long timeBetweenEvictionRunsMillis =
+ GenericObjectPool.DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS;
+
+ public long getTimeBetweenEvictionRunsMillis() {
+ return (this.timeBetweenEvictionRunsMillis);
+ }
+
+ public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) {
+ this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
+ }
+
+ /**
+ * The number of objects to examine during each run of the idle object
+ * evictor thread (if any).
+ */
+ protected int numTestsPerEvictionRun =
+ GenericObjectPool.DEFAULT_NUM_TESTS_PER_EVICTION_RUN;
+
+ public int getNumTestsPerEvictionRun() {
+ return (this.numTestsPerEvictionRun);
+ }
+
+ public void setNumTestsPerEvictionRun(int numTestsPerEvictionRun) {
+ this.numTestsPerEvictionRun = numTestsPerEvictionRun;
+ }
+
+
+ /**
+ * The minimum amount of time an object may sit idle in the pool before it
+ * is eligable for eviction by the idle object evictor (if any).
+ */
+ protected long minEvictableIdleTimeMillis =
+ GenericObjectPool.DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS;
+
+ public long getMinEvictableIdleTimeMillis() {
+ return (this.minEvictableIdleTimeMillis);
+ }
+
+ public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) {
+ this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
+ }
+
+ /**
+ * The indication of whether objects will be validated by the idle object
+ * evictor (if any). If an object fails to validate, it will be dropped
+ * from the pool.
+ */
+ protected boolean testWhileIdle = GenericObjectPool.DEFAULT_TEST_WHILE_IDLE;
+
+ public boolean getTestWhileIdle() {
+ return (this.testWhileIdle);
+ }
+
+ public void setTestWhileIdle(boolean testWhileIdle) {
+ this.testWhileIdle = testWhileIdle;
+ }
/**
* [Read Only] The current number of active connections that have been
@@ -546,6 +637,13 @@
connectionPool.setMaxActive(maxActive);
connectionPool.setMaxIdle(maxIdle);
connectionPool.setMaxWait(maxWait);
+ connectionPool.setTestOnBorrow(testOnBorrow);
+ connectionPool.setTestOnReturn(testOnReturn);
+ connectionPool.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
+ connectionPool.setNumTestsPerEvictionRun(numTestsPerEvictionRun);
+ connectionPool.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
+ connectionPool.setTestWhileIdle(testWhileIdle);
+
if (validationQuery != null) {
connectionPool.setTestOnBorrow(true);
}
1.4 +40 -4 jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/BasicDataSourceFactory.java
Index: BasicDataSourceFactory.java
===================================================================
RCS file: /home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/BasicDataSourceFactory.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- BasicDataSourceFactory.java 21 Jun 2002 21:56:13 -0000 1.3
+++ BasicDataSourceFactory.java 6 Mar 2003 14:58:42 -0000 1.4
@@ -156,6 +156,42 @@
(Long.parseLong(ra.getContent().toString()));
}
+ ra = ref.get("testOnBorrow");
+ if (ra != null) {
+ dataSource.setTestOnBorrow
+ (Boolean.valueOf(ra.getContent().toString()).booleanValue());
+ }
+
+ ra = ref.get("testOnReturn");
+ if (ra != null) {
+ dataSource.setTestOnReturn
+ (Boolean.valueOf(ra.getContent().toString()).booleanValue());
+ }
+
+ ra = ref.get("timeBetweenEvictionRunsMillis");
+ if (ra != null) {
+ dataSource.setTimeBetweenEvictionRunsMillis
+ (Long.parseLong(ra.getContent().toString()));
+ }
+
+ ra = ref.get("numTestsPerEvictionRun");
+ if (ra != null) {
+ dataSource.setNumTestsPerEvictionRun
+ (Integer.parseInt(ra.getContent().toString()));
+ }
+
+ ra = ref.get("minEvictableIdleTimeMillis");
+ if (ra != null) {
+ dataSource.setMinEvictableIdleTimeMillis
+ (Long.parseLong(ra.getContent().toString()));
+ }
+
+ ra = ref.get("testWhileIdle");
+ if (ra != null) {
+ dataSource.setTestWhileIdle
+ (Boolean.valueOf(ra.getContent().toString()).booleanValue());
+ }
+
ra = ref.get("password");
if (ra != null) {
dataSource.setPassword(ra.getContent().toString());
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org