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 > > > > >
