-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Jerry,
On 12/5/19 13:42, Jerry Malcolm wrote:
> I'm trying to add some code to monitor my jdbc data connection
> pool.
Before you do that, is this a pool that is application-managed? If
Tomcat is managing the connection pool, then none of this is
necessary. If it's application-managed, I'm curious as to why you are
doing that rather than having Tomcat manage it for you. Would you mind
explaining if that's the case?
> Each time a connection is requested, I have some jmx code that
> logs values from the datasource mbean.
That sounds wasteful. Why not interrogate the connection pool whenever
a client probes the JMX bean?
> I haven't done much jmx coding. So consider me a rookie on this
> topic. I found some code on the web that does pretty much what I
> need. The relevant part of the code:
>
> MBeanServer server = ManagementFactory.getPlatformMBeanServer();
> Set<ObjectName> objectNames = server.queryNames(null, null); for
> (ObjectName name : objectNames) { MBeanInfo info =
> server.getMBeanInfo(name); if (info.getClassName().equals(
> "org.apache.tomcat.dbcp.pool2.impl.GenericObjectPool")) { for
> (MBeanAttributeInfo mf : info.getAttributes()) {
>
> This code works. The problem is that I have a bunch of virtual
> hosts running on the same instance of TC. So I get a bunch of
> matching mbeans, apparently one for each virtual host / resource
> defined.
>
> Is there any way to identify which mbean is for the datasource I
> currently care about? I was hoping there would be an attribute
> with the datasource name or the database name or even just some way
> to add a unique identifier when I create it. But I don't see
> anything. I've resorted to having maxTotal set to incrementally
> different values in all of my resource statements just so I can
> identify the datasource I'm looking at in the logs. But that's a
> hack.
>
> Is there a better way to uniquely identify datasource mbeans in
> jmx?
Tomcat usually uses the JMX URI (?) space by adding the application's
context-path (and possible hostname) as a part of the path to the
bean. So for you that might be:
com.yourcompany.yourapp/[host]/[app]/datasource
When/how are you binding your bean into the JNDI space?
- -chris
-----BEGIN PGP SIGNATURE-----
Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/
iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAl3pVXQACgkQHPApP6U8
pFiYkhAAj9UqGppFWTsvgiZg30BECln9mppvBCRGUSn/oV5SuGrRgpD+glcCWZEz
ZRcLG1pDF8ze+sS57mU2oMIHO/vPuuBFKM4KmeyXbW1iIKF01PmQxmIG88qjgi2Z
h2/AJKErGIpQ+GhrKSvX27vxrWzb1n7urCkq7PCCml5h20rl4OhaUnSmVGHQkr/6
OlhmL45u2MdLMYAPDasf0bjrA0OPo3jFnn8myjtwVUjo2AGm6SS5RJn7HSB8QxqU
ZNWnWiI40CaBGzJthDoRzKbspd+aCY/qM2dc6dIovL9hCCsEB+J6aJf9oE53+MyV
6md4wWBWVZSFzvkOg8Kjj+mx6QK/j9PC9HZ+nsbWk0kTfutCwZpQZQgtqe8tmAD9
o/xvSUCSRig+PlMK1eYkkU5dYziI/FpWDhURg9zMXiXXnmRr6V2S4zNMK240Zxt1
1ev+QOucv4sjb+Nt8rUc1HazYfcZqfcI/fJjlNjPgPOkjRX3ftbbRIwDBVFwwCFv
lOKt+fQvAZfM8pC7c50BLwl2fpvCRVt8+xHpp3t5EwKSycG55WsD9DmpMoLENNXp
G+UDj+mmkIrPY5zHR+hqB2rMWABk084pWoNlBXlfApwqLcZq6h0fvV6E3IdvqRRD
OhNwz1g2tF4HOgFlfVp0gfzzS9bnaNcgyGpXsrL4s/J8ZTVyfjs=
=QuqP
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]