Open donaldoakes opened 6 years ago
Does it seem strange that the only queries listed are INSERT/UPDATE statements? I would think there would be lots of SELECTs in there as well (besides the validation query performed by the pool). Also, the default for connections is auto_commit, but we (MDW) set the auto_commit to false AFTER borrowing the connection from the pool, and it does seem that right after each SELECT 1, we set autocommit=0, so I think this might actually be correct (from a pool behavior perspective), meaning that we have executing code that is requesting a DB connection that many times.
We need to optimize our dbcp2 configuration. In addition to testOnBorrow, we also have testWhileIdle set to true. From the docs it's not obvious how often the query runs to validate idle connections. Since we have timeBetweenEvictionRunsMillis not set, and it defaults to -1, it would seem that testWhileIdle should have no effect. But see below where one second of activity from a query log repeats the following steps 22 times for the sake of 8 or 9 actual queries.
Here's one second (unabridged) from the query log: