[ https://issues.apache.org/jira/browse/POOL-409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17609014#comment-17609014 ]
Thomas Freller commented on POOL-409: ------------------------------------- I've done a bit of testing and built a own class in my package called BasicDataSourceEnh. This Class inherit BasicDataSource and looks like the following Code {code:java} public class BasicDataSourceEnh extends BasicDataSource{ public BasicDataSourceEnh(){ super(); } public String getInfo(){ return super.getConnectionPool().toString(); } }{code} So I'm able to use the Hint you gave to me. The Output is very interesting and cause even a Exception so something is going wrong in pool2 Here is the output. {code:java} 17:28:29.552 [main] INFO myClass.Worker - Current DBPool Stats Active (current/max): 0/5 Idle (min/current/max): 0/0/0 <---- Output of getInfo() ----> GenericObjectPool [maxTotal=5, blockWhenExhausted=true, maxWaitDuration=PT-0.001S, lifo=true, fairness=false, testOnCreate=false, testOnBorrow=true, testOnReturn=false, testWhileIdle=false, durationBetweenEvictionRuns=PT10S, numTestsPerEvictionRun=3, minEvictableIdleTimeDuration=PT30S, softMinEvictableIdleTimeDuration=PT-0.001S, evictionPolicy=org.apache.commons.pool2.impl.DefaultEvictionPolicy@6d026701, closeLock=java.lang.Object@78aa1f72, closed=false, evictionLock=java.lang.Object@1f75a668, evictor=org.apache.commons.pool2.impl.BaseGenericObjectPool$Evictor@35399441, evictionIterator=null, factoryClassLoader=java.lang.ref.WeakReference@4b7dc788, oname=null, creationStackTrace=java.lang.Exception at org.apache.commons.pool2.impl.BaseGenericObjectPool.<init>(BaseGenericObjectPool.java:407) at org.apache.commons.pool2.impl.GenericObjectPool.<init>(GenericObjectPool.java:147) at org.apache.commons.dbcp2.BasicDataSource.createObjectPool(BasicDataSource.java:611) at org.apache.commons.dbcp2.BasicDataSource.createConnectionPool(BasicDataSource.java:480) at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:543) at org.apache.commons.dbcp2.BasicDataSource.setLogWriter(BasicDataSource.java:2055) at db_pool.MySQLConPool.<init>(MySQLConPool.java:55) at ssl_worker.SSL_Worker.main(Worker.java:177) , borrowedCount=38, returnedCount=38, createdCount=38, destroyedCount=38, destroyedByEvictorCount=0, destroyedByBorrowValidationCount=0, activeTimes=StatsStore [[24, 9, 10, 12, 9, 10, 9, 10, 10, 11, 11, 10, 12, 14, 15, 20, 11, 1003, 0, 26, 7, 15, 15, 11, 21, 11, 11, 11, 11, 12, 13, 10, 11, 13, 12, 13, 1004, 1]], size=100, index=38], idleTimes=StatsStore [[4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], size=100, index=38], waitTimes=StatsStore [[8, 5, 3, 8, 2, 3, 4, 3, 5, 3, 2, 2, 2, 1, 8, 2, 4, 3, 3, 3, 10, 4, 3, 5, 7, 2, 3, 2, 4, 2, 1, 3, 3, 2, 2, 5, 2, 3]], size=100, index=38], maxBorrowWaitDuration=PT0.01S, swallowedExceptionListener=org.apache.commons.dbcp2.SwallowedExceptionLogger@6304101a, factoryType=null, maxIdle=0, minIdle=0, factory=org.apache.commons.dbcp2.PoolableConniectionFactory@5170bcf4, allObjects={}, createCount=0, idleObjects=[], abandonedConfig=null]{code} As you can see there are a few problems: * org.apache.commons.pool2.impl.DefaultEvictionPolicy@6d026701 => consider to implement toString() => not Critical to me (only hint) * org.apache.commons.pool2.impl.BaseGenericObjectPool$Evictor@35399441 =>consider to implement toString() => not Critical to me (only hint) * java.lang.ref.WeakReference@4b7dc788 =>Problem of Java not yours => not Critical to me# * (!){color:#de350b} *Im worry about the Stack Trace* {color:#172b4d}is this something critical or a problem of the Class loader or is there a Exception printed? This is confusing to me.{color}{color} > BasicDataSource should support GenericObjectPool->getStatsString() > ------------------------------------------------------------------ > > Key: POOL-409 > URL: https://issues.apache.org/jira/browse/POOL-409 > Project: Commons Pool > Issue Type: Improvement > Affects Versions: 2.11.1 > Reporter: Thomas Freller > Priority: Major > Labels: improvement > Original Estimate: 2h > Remaining Estimate: 2h > > Hello, > I'm developing a Application that is running on a default JRE without an > Webserver/JMX. > For optimizing Database connections it would be very useful if i could access > > BasicDataSource->GenericObjectPool->{*}getStatsString(){*} > > I don't see any reason why this Method is protected and not public in > GenericObjectPool. > Then BasicDataSource shoud provide a method getStatsString() or the values > that represent the statistic data. > > If there is any other easy way to access this data within my Java Code I'll > implement this if you could give me an example how to get this working > easily. I don't want do configure any jmx stuff. > > > -- This message was sent by Atlassian Jira (v8.20.10#820010)