> as I can see you use no validationQuery? Actually I somehow missed it in my example. I do. But the DB is MySQL, so the query is either this, or a select from a small table:
validationQuery: select 1; Andrus > On May 9, 2017, at 12:11 PM, Markus Reich <[email protected]> wrote: > > no everything's done by the framework, we can filter on user and machine so > no sidekicks :-/ as I can see you use no validationQuery? > > Andrus Adamchik <[email protected]> schrieb am Di., 9. Mai 2017 um > 10:37 Uhr: > >> Looks pretty normal. I have no experience with ConnectionState and >> StatementFinalizer interceptors though. >> >> FWIW, my typical Bootique config looks like this: >> >> nhldb: >> url: .. >> username: .. >> password: .. >> initialSize: 1 >> maxActive: .. >> minIdle: .. >> maxIdle: .. >> testWhileIdle: true >> removeAbandoned: true >> abandonWhenPercentageFull: 80 >> removeAbandonedTimeout: 300 >> jdbcInterceptors: ResetAbandonedTimer >> rollbackOnReturn: true >> defaultAutoCommit: false >> >> Also are there any external transaction managers involved, or are you only >> using implicit Cayenne-managed transactions? >> >> Andrus >> >>> On May 9, 2017, at 11:24 AM, Markus Reich <[email protected]> >> wrote: >>> >>> thx Andrus, your answer give me some kind of hope :-) >>> >>> here are my settings >>> <?xml version='1.0' encoding='UTF-8'?> >>> <Context cookies='false'> >>> <Resource name="jdbc/mii" >>> auth="Container" >>> type="javax.sql.DataSource" >>> factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" >>> testWhileIdle="false" >>> testOnBorrow="true" >>> testOnReturn="false" >>> validationQuery="SELECT 1 FROM DUAL" >>> validationInterval="30000" >>> timeBetweenEvictionRunsMillis="30000" >>> maxActive="100" >>> minIdle="20" >>> maxIdle="20" >>> maxWait="10000" >>> initialSize="20" >>> suspectTimeout="0" >>> removeAbandoned="true" >>> logAbandoned="false" >>> abandonWhenPercentageFull="50" >>> minEvictableIdleTimeMillis="30000" >>> jmxEnabled="true" >>> >>> >> jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState; >>> >>> >> org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer;org.apache.tomcat.jdbc.pool.interceptor.ResetAbandonedTimer" >>> username="" >>> password="" >>> driverClassName="oracle.jdbc.OracleDriver" >>> url="jdbc:oracle:thin:@xxx"/> >>> </Context> >>> >>> I also checked the sessions in v$session that are marked as active in the >>> pool, the last SQL they executed was definitily from cayenne framework, >>> very strange and it are different statements so no hint on this ... >>> >>> regards >>> Markus >>> >>> >>> Andrus Adamchik <[email protected]> schrieb am Di., 9. Mai 2017 um >>> 10:05 Uhr: >>> >>>> Regular Cayenne operations should not leak connections. Any connections >>>> Cayenne gets are closed (== returned to the pool) regardless of whether >> an >>>> operation succeeds or fails. The only exception is iterated queries that >>>> require the caller to close Cayenne ResultIterator, so bugs in the user >>>> code can lead to connection leaks. >>>> >>>> FWIW, I've also been using Tomcat connection pool for many years, both >> in >>>> Bootique and more traditional Jetty apps. Never seen a problem that you >>>> describe. What are the connection pool settings? >>>> >>>> Andrus >>>> >>>>> On May 8, 2017, at 10:57 PM, Markus Reich <[email protected] >>> >>>> wrote: >>>>> >>>>> Hi, >>>>> >>>>> I have a problem with our JNDI DataSource (Catalina Connection Pool). >>>>> After a while I got a lot of active conns in the Pool (I can see them >> in >>>>> via JMX), when I take a look in Oracles v$session, all sessions/conns >> are >>>>> in IDLE state? >>>>> The Problem is, that the pool thinks all sessions are active so he >>>> creates >>>>> new ones, so we have a lot of sessions created in Oracle, nearly about >> 1 >>>>> session / per second!!! >>>>> >>>>> Has anybody experiences with Oracle and Cayenne and Tomcat Connection >>>>> Pooling? >>>>> Is there any way I get more infos, logs, traces? >>>>> >>>>> thx >>>>> Markus >>>> >>>> >> >>
