openejb.management > datasources
Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog <https://blog-rmannibucau.rhcloud.com> | Old Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory <https://javaeefactory-rmannibucau.rhcloud.com> 2016-10-28 21:41 GMT+02:00 Zachary Bedell <[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]> > wrote: > > > > they are, name is just prefixed with app name > > > > > > Romain Manni-Bucau > > @rmannibucau <https://twitter.com/rmannibucau> | Blog > > <https://blog-rmannibucau.rhcloud.com> | Old Blog > > <http://rmannibucau.wordpress.com> | Github <https://github.com/ > rmannibucau> | > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory > > <https://javaeefactory-rmannibucau.rhcloud.com> > > > > 2016-10-28 21:14 GMT+02:00 Adam Cornett <[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]> > >> 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]> > >> 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] > > > >>>> 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]>> 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]>> wrote: > >>>>> Hi Zachary, > >>>>> > >>>>> 2016-10-28 19:18 GMT+02:00 Zachary Bedell <[email protected] > >> <mailto: > >>> z > >>>>> [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]> > >>>>> (678) 296-1150 > >>>>> > >>>>> > >>>> > >>>> > >>>> -- > >>>> Adam Cornett > >>>> [email protected] > >>>> (678) 296-1150 > >>> > >>> > >> > >> > >> -- > >> Adam Cornett > >> [email protected] > >> (678) 296-1150 > >> > >
