[ https://issues.apache.org/jira/browse/POOL-325?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Phil Steitz updated POOL-325: ----------------------------- Fix Version/s: 3.0 > 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 > Labels: performance > Fix For: 3.0 > > > 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 testOnReturn 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 (v8.20.10#820010)