> This is not true...depends 1. the usage, 2. the type of datasource > > Also note we don't use dbcp but dbcp2 which got updated compared to dbcp 1on > several aspect I mean dbcp2 and it is a some bit preference to use dbcp2 or tomcat jdbc. But from our experience tomcat-jdbc is much faster and easy to work/debug Could you give some example scenario of using dbcp2 against tomcat jdbc?
Gurkan- > On 29 Oct 2016, at 00:13, Romain Manni-Bucau <[email protected]> wrote: > > 2016-10-28 23:10 GMT+02:00 Gurkan Erdogdu <[email protected]>: > >> Hi >> >> DBCP is not a good option against default one Tomcat JDBC Pool. I suggest >> to stick with Tomcat JDBC Pool implementation against Common DBCP you set. >> You can read more about Tomcat JDBC Pool in here, >> http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html < >> http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html> >> > > This is not true...depends 1. the usage, 2. the type of datasource > > Also note we don't use dbcp but dbcp2 which got updated compared to dbcp 1 > on several aspects. > > >> >> Best >> Gurkan >> http://managecat.com <http://managecat.com/> >> >>> On 29 Oct 2016, at 00:04, Zachary Bedell <[email protected]> wrote: >>> >>> As far as I know, I didn't do anything to change the pooling >> implementation. >>> >>> It does all start working if I add an explicit "DataSourceCreator dbcp" >> to my datasource definitions in resource.xml. With that, the datasources >> section shows up in JMX, and I see all the stats I need. >>> >>> I found a suggestion on this page (https://rmannibucau. >> wordpress.com/2012/08/10/switching-of-datasource-connection-pooling-in- >> tomeeopenejb/) that adding "openejb.jdbc.datasource-creator = dbcp" to >> system.properties should do the same globally, but that didn't work for >> me. Adding that & removing the DataSourceCreator entry went back to no >> stats. Maybe there's any updated name for that property? >>> >>> Not sure what about my config breaks the default configuration, but this >> looks like it should do the trick for now. >>> >>> Thanks for the pointers! >>> >>> -Zac >>> >>> >>> On Oct 28, 2016, at 16:14, Romain Manni-Bucau <[email protected] >> <mailto:[email protected]>> wrote: >>> >>> weird, try to reproduce your setup on github I'll check next week >>> >>> only case I'm thiking about is you don't use dbcp or tomcat-jdbc pooling >>> >>> >>> Romain Manni-Bucau >>> @rmannibucau <https://twitter.com/rmannibucau> | Blog >>> <https://blog-rmannibucau.rhcloud.com<https://blog- >> rmannibucau.rhcloud.com/>> | Old Blog >>> <http://rmannibucau.wordpress.com<http://rmannibucau.wordpress.com/>> | >> Github <https://github.com/rmannibucau> | >>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory >>> <https://javaeefactory-rmannibucau.rhcloud.com<https: >> //javaeefactory-rmannibucau.rhcloud.com/>> >>> >>> 2016-10-28 22:12 GMT+02:00 Zachary Bedell <[email protected]<mailto:z >> [email protected]>>: >>> >>> That doesn't exist for me at all in jconsole. >>> >>> Screenshot: http://imgur.com/a/5mMgz >>> >>> If I enumerate JMX using an ObjectName of "openejb.management:*" with >>> something like the code below, there's no "datasources" in any of the >> found >>> objects. Nothing matching the names of my pools either. >>> >>> final ObjectName name = new ObjectName("openejb.management:*"); >>> final Set<ObjectInstance> search = mbeanServer.queryMBeans(name, null); >>> for(final ObjectInstance objectInstance : search) { >>> System.out.println(objectInstance.getObjectName().getCanonicalName()); >>> } >>> >>> -Zac >>> >>> On Oct 28, 2016, at 15:55, Romain Manni-Bucau <[email protected] >> <mailto:[email protected]> >>> <mailto:[email protected]>> wrote: >>> >>> openejb.management > datasources >>> >>> >>> >>> Romain Manni-Bucau >>> @rmannibucau <https://twitter.com/rmannibucau> | Blog >>> <https://blog-rmannibucau.rhcloud.com<https://blog- >> rmannibucau.rhcloud.com/>> | Old Blog >>> <http://rmannibucau.wordpress.com<http://rmannibucau.wordpress.com/>> | >> Github <https://github.com/ >>> rmannibucau> | >>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory >>> <https://javaeefactory-rmannibucau.rhcloud.com<https: >> //javaeefactory-rmannibucau.rhcloud.com/>> >>> >>> 2016-10-28 21:41 GMT+02:00 Zachary Bedell <[email protected]<mailto:z >> [email protected]><mailto:z >>> [email protected]<mailto:[email protected]>>>: >>> >>> Would the stats show up in a different part of the tree? I don't see the >>> datasources entry at all under openejb.management. >>> >>> I can find DataSourceFactory objects under: >>> >>> Catalina:class=org.apache.openejb.resource.jdbc.DataSourceFactory,name=" >>> EARNAME/POOLNAME",resourcetype=Global,type=Resource >>> >>> >>> The DataSource's themselves show up in every WAR they're injected into: >>> >>> Catalina:type=DataSource,host=localhost,context=/WARNAME, >>> class=javax.sql.DataSource,name="openejb/Resource/POOLNAME" >>> >>> >>> Neither the DataSource nor DataSourceFactory expose anything that looks >>> like active or max connections. >>> >>> We're trying pretty hard to keep everything related to the app in its own >>> EAR rather than globally in tomee.xml. So far the only thing we have in >>> tomee.xml is a <Deployments dir="X"/> entry where we're dropping the >> EAR's. >>> >>> -Zac >>> >>> On Oct 28, 2016, at 15:28, Romain Manni-Bucau <[email protected] >> <mailto:[email protected]> >>> <mailto:[email protected]>> >>> wrote: >>> >>> they are, name is just prefixed with app name >>> >>> >>> Romain Manni-Bucau >>> @rmannibucau <https://twitter.com/rmannibucau> | Blog >>> <https://blog-rmannibucau.rhcloud.com<https://blog- >> rmannibucau.rhcloud.com/>> | Old Blog >>> <http://rmannibucau.wordpress.com<http://rmannibucau.wordpress.com/>> | >> Github <https://github.com/ >>> rmannibucau> | >>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory >>> <https://javaeefactory-rmannibucau.rhcloud.com<https: >> //javaeefactory-rmannibucau.rhcloud.com/>> >>> >>> 2016-10-28 21:14 GMT+02:00 Adam Cornett <[email protected]<mailto: >> [email protected]><mailto: >>> [email protected]<mailto:[email protected]>>>: >>> >>> Perhaps, my datasources are defined at the container level >>> (conf/tomee.xml). Perhaps the app level data sources are not registered >>> in >>> JMX. >>> Romain or another dev would need to speak to that. >>> >>> On Fri, Oct 28, 2016 at 2:29 PM, Zachary Bedell <[email protected] >> <mailto:[email protected]> >>> <mailto:[email protected]>> >>> wrote: >>> >>> Yes to TomEE 7.0.1, but I don't see a datasources entry under >>> openejb.management in jconsole. I've got Invocations, JAX-RS, JAX-WS, >>> Pool, TransactionManager, and containers. >>> >>> Guessing maybe the way I define the datasources may be relevant? >>> They're >>> in a resources.xml file inside an EAR. Defined like: >>> >>> <Resource id="ucmsTXPool" type="DataSource"> >>> JdbcDriver oracle.jdbc.xa.client.OracleXADataSource >>> JdbcUrl ${ucmsTXPool.JdbcUrl} >>> User ${ucmsTXPool.User} >>> UserName ${ucmsTXPool.User} >>> VaultPassword ${ucmsTXPool.Password} >>> InitialSize ${ucmsTXPool.InitialSize} >>> MaxActive ${ucmsTXPool.MaxActive} >>> MaxIdle 10 >>> MaxWait 15000 >>> ValidationQuery "SELECT sysdate FROM DUAL" >>> TestOnBorrow true >>> TestOnReturn true >>> TestWhileIdle true >>> TimeBetweenEvictionRunsMillis 60000 >>> AccessToUnderlyingConnectionAllowed true >>> JtaManaged true >>> </Resource> >>> >>> The ${...} are loaded from a config repository via a Listener in >>> server.xml. The VaultPassword is handled via custom PasswordCipher >>> registered via META-INF/org.apache.openejb.cipher.PasswordCipher in a >>> jar >>> in server/lib. >>> >>> -Zac >>> >>> On Oct 28, 2016, at 14:09, Adam Cornett <[email protected]<mailto: >> [email protected]><mailto: >>> [email protected]<mailto:[email protected]>>> >>> wrote: >>> >>> Sure: >>> openejb.management/datasources/[DSNAME] should have attributes such >>> as: >>> Size, Idle, WaitCount, etc. >>> >>> There should be an object for each datasource defined in your >>> tomee.xml >>> file. I'm assuming you're on TomEE 7? >>> >>> On Fri, Oct 28, 2016 at 2:03 PM, Zachary Bedell <[email protected] >> <mailto:[email protected]> >>> <mailto:[email protected]> >>> >>> wrote: >>> >>> Adam, your image didn't come through the list, at least for me. Can >>> you >>> give me a textual path to where you're looking? >>> >>> >>> The only thing listed as openejb under mbeans is >>> "openejb.management." >>> There's nothing under there that matches the names of any of my >>> pools. >>> The >>> only matches for "datasource" I see are the containers for the >>> stateless, >>> stateful, singleton, and managed beans. The only pool related stuff >>> I >>> see >>> under there is for the EJB instances. >>> >>> I see an "Active" attribute under the TransactionManager, but that's >>> not >>> per-pool, and I'm not sure that it represents all of the JDBC >>> connections >>> as opposed to an EJB container transaction. We'd have EJB's that are >>> set >>> @TransactionAttribute(NOT_SUPPORTED) as well as single transactions >>> that >>> touch several connection pools (XA), so active transactions from the >>> container's point of view isn't granular enough to know if one of the >>> pools >>> is running low. >>> >>> -Zac >>> >>> >>> >>> >>> On Oct 28, 2016, at 13:30, Adam Cornett <[email protected]<mailto: >> [email protected]><mailto: >>> [email protected]<mailto:[email protected]>>< >>> mailto: >>> [email protected]<mailto:[email protected]><mailto: >> [email protected]>>> wrote: >>> >>> Here is a screenshot out of jconsole showing the location and >>> attributes: >>> >>> >>> On Fri, Oct 28, 2016 at 1:21 PM, Romain Manni-Bucau < >>> [email protected]<mailto:[email protected]><mailto:r >> [email protected]> >>> <mailto:[email protected]>> wrote: >>> Hi Zachary, >>> >>> 2016-10-28 19:18 GMT+02:00 Zachary Bedell <[email protected]<mailto:z >> [email protected]> >>> <mailto: >>> z >>> [email protected]<mailto:[email protected]><mailto:bedel >> [email protected]>>>: >>> >>> Good afternoon, >>> >>> I'm working on a monitoring agent for TomEE to plugin to an in-house >>> package we use. One of the most common failures in our current app >>> server >>> (JBoss) usually manifests as expended JDBC connection pools, so we >>> alert >>> as >>> pools approach full to get some kind of warning of impending doom >>> when >>> the >>> database can't keep up. >>> >>> I need to get a handle on TomEE's datasource pools to check their >>> maximum >>> size & current active connection count programatically. I've tried >>> searching through both JMX (how we do it in JBoss) and the JNDI >>> tree. >>> I >>> can find the javax.sql.DataSource in both trees as well as a >>> reference >>> to >>> org.apache.openejb.resource.jdbc.DataSourceFactory in JMX. It >>> doesn't >>> appear any of the objects I've been able to find expose a count of >>> active >>> connections nor what the configured maximum is. >>> >>> >>> in openejb MBeans it should be there >>> >>> >>> Is there a way to get the count of active connections & the >>> configured >>> max >>> for a named connection pool (I can find the names via JMX or JNDI) >>> or >>> for >>> all connection pools? >>> >>> >>> >>> Thanks in advance, >>> Zac Bedell >>> >>> >>> >>> >>> >>> -- >>> Adam Cornett >>> [email protected]<mailto:[email protected]><mailto: >> [email protected]><mailto: >>> [email protected]<mailto:[email protected]>> >>> (678) 296-1150 >>> >>> >>> >>> >>> -- >>> Adam Cornett >>> [email protected]<mailto:[email protected]><mailto: >> [email protected]> >>> (678) 296-1150 >>> >>> >>> >>> >>> -- >>> Adam Cornett >>> [email protected]<mailto:[email protected]><mailto: >> [email protected]> >>> (678) 296-1150 >>>
