Jason Hill created POOL-325:
-------------------------------
Summary: testOnReturn() available as asynchronous
Key: POOL-325
URL: https://issues.apache.org/jira/browse/POOL-325
Project: Commons Pool
Issue Type: New Feature
Affects Versions: 2.4
Reporter: Jason Hill
Priority: Minor
I am using Pool2 as part of DBCP2 framework and I immediately found minor
performance issues with using testOnBorrow/testOnCreate only because the
waiting request is dependent on validation step to complete before the
transaction can complete.
I opted instead for testWhileIdle and testOnReturn to reduce impact on live
transactions. I assumed incorrectly that the testOnReturn would be asynchronous
to prevent the transaction from further waiting on validation procedure. I
cannot think of a case where testOnReturn is as or more valuable than
testOnBorrow unless it provided an asynchronous advantage. I am interested to
hear the intended value?
Either way, I am proposing that testOnBorrow provide asynchronous behavior by
default or allow a configurable flag to enable async behavior.
https://git-wip-us.apache.org/repos/asf?p=commons-pool.git;a=blob;f=src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java;h=816c6cf54aad612805b9d48139a3f87b505c0bd8;hb=HEAD
CURRENT:
548 if (getTestOnReturn()) {
549 if (!factory.validateObject(p)) {
550 try {
551 destroy(p);
552 } catch (final Exception e) {
553 swallowException(e);
554 }
555 try {
556 ensureIdle(1, false);
557 } catch (final Exception e) {
558 swallowException(e);
559 }
560 updateStatsReturn(activeTime);
561 return;
562 }
563 }
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)