-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Rainer,
On 3/28/18 2:49 PM, Rainer Jung wrote: > I hope my below answers are all correct, but most should be. > > Am 28.03.2018 um 20:25 schrieb Greg Kaszycki: >> Tomcat version 7.0.82 >> >> I have some questions about tomcat monitoring and jmx. The short >> version is that I am trying to get session information about >> users logged into my app. >> >> I see documentation about different ways to get to the jmx beans >> but I don't understand the relationship between them. >> >> http://localhost:8080/ takes me to the tomcat homepage and I can >> click on the manager button and get to a page with some links to >> application folders (I've set my role). Do they use jmx beans? > > No. > >> I can also do like: >> http://localhost:8080/manager/text/sessions?path=/. and it >> returns number of sessions. Is that accessing an mbean? How >> does that name relate to the folders under the tomcat manager >> folder? > > No access to mbeans. No relation to folders. URIs can either point > to static content, JSPs or to servlets( code) that dynamically > enerate the responses. Your example points to a servlet, so no > relation with folders. How does Tomcat know, which URI relates to > which servlet? That's described in the servlet specification > (standards document) and one way is declaring servlets and their > mapping path in the config file WEB-INF/web.xml inside the webapp. > >> I can also access >> http://localhost:8080/manager/jmxproxy/?get=java.lang.type=Memory&att =HeapMemoryUsage >> >> >> and get memory usage stats. Is that accessing an mbean? > > Yes. The same web.xml file mapps the URI /jmxproxy underneath the > manager webapp to the so called JMXProxy servlet. That servlet > typically produces all it's responses from data retrieved > internally from MBeans. In the above case you are retrieving the > attribute named HeapMemoryUsage form an MBean named > java.lang.type=Memory (I think it should be: > java.lang:type=Memory). > >> I also don't see how these names relates to going to jconsole and >> looking at the mbean tab and accessing >> Catalina/Manager/examples/localhost. The names of the attributes >> in jconsole don't seem to match the names of the beans that I can >> access like the memory example above. > > They should without your typo. In jconsole you should find a MBean > group named java.lang and if you open that patr of the MBean tree, > you will finde the Memory-MBean there. You other path > "Catalina/Manager/examples/localhost" seems to be totally unrelated > (or I have not fully understood your question). > >> I found that memory example above online, but where are these >> beans documented? The documentation in > > Some of the MBeans - for example the Memory MBean - are part of any > Java process, not just Tomcat. So expect them to be documented in > generic Java docs. Since not only Tomcat, but also applications can > create their own additional MBean, these basic Java MBeans that > always exist are also called "platform mbeans". The first hit in a > search engine points to > > https://docs.oracle.com/javase/7/docs/technotes/guides/management/mxbe ans.html > > > > which starts describing how to access mbeans for developers, but in > the second part of the document also introduces to the data > contained in some of the platform MBeans. In addition to docs, it > is always very instructive to simply use a tool like JConsole (or > more modern JVisualVM) to click through the MBean tree and observe > what's there. Start with an easy setup, where you run Tomcat and > these GUI tools on the same machine. > > The Tomcat specific MBeans are listen in > https://tomcat.apache.org/tomcat-9.0-doc/funcspecs/mbean-names.html, > but I don't know how current that document is. It also gives no > hints, what data is actually contained in those MBeans. Most of the > MBean attributes have very descriptive names, so again browsing > through the tree helps a bit. > >> https://tomcat.apache.org/tomcat-7.0-doc/monitoring.html said I >> could also access it through a url like: >> service:jmx:rmi:///jndi/rmi://localhost:8081/jmxrmi but I could >> not get that to work. Would that access the same bean(s) as the >> other examples? > > I would start interactively with JConsole or JVisualVM to get an > idea what's there. You can also get a full textual dump with > > https://tomcat.apache.org/tomcat-9.0-doc/funcspecs/mbean-names.html?qr y=*:* > > That command and some more is explained e.g. in > https://tomcat.apache.org/tomcat-9.0-doc/manager-howto.html > > Then you need to decide, via which network protocol you want to > access MBean data remotely. You could either use an agent deployed > as a webapp inside Tomcat, speak http(s) to Tomcat and the agent > retrieves the data internally via JVM and returns a textual > representation. The manager webapp JMXProxy servlet is one such > agent, but it has some deficiencies. > > You could also look at Jolokia (Open Source), which provides a > more powerful other such agent. > > Alternatively you can also use JMX as a remote network protocol, > but that is a bit more subtle to configure and get it secure etc. > Your mentioned not-working URL fits into this realm. As I said, > that's the harder way and you need a client, that speaks the right > protocol over that URI. > > If you need something more complete, people here mention Moskito > (https://www.moskito.org/) or Java Melody > (https://github.com/javamelody/javamelody/wiki) and a few other > solutions. > >> I can set CATALINA_OPTS to do the jmxremote enabling as described >> in , but what exactly is that enabling? Is that what enabled the >> mbeans that I accessed? > > No, it would enable remote access to these MBeans using the JMX > protocol which itself is based on the RMI protocol. > >> Lastly, I created a listener (implements HttpSessionListener) >> and configured it in web.xml but when I set a breaklpoint in >> IDEA, it never hit it. When exactly does a session get created? >> when someone goes to any page on the host? When they log into >> the app? > > Maybe start with a tutorial on servlet sessions. The first search > machine hit > > https://www.tutorialspoint.com/servlets/servlets-session-tracking.htm > > already doesn't look too bad. Also, for some background: https://tomcat.apache.org/presentations.html Search the page for "jmx". - -chris -----BEGIN PGP SIGNATURE----- Comment: GPGTools - http://gpgtools.org Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAlq758wACgkQHPApP6U8 pFiYNA/8CNKle9re3CengtBRR0wCZ9RhoSGMcFdMuoMIjpjJ0nHdowT94Ar+G8cn JTaAgrHAj29bpgfm+9nfK3lxiFLZG1MBln7QnL65yPpwCS5KFpHImPeMBiU9DCbE 2Sf+9MmLBk7dfdcVjbyIUdlg8UvwaNXQVTZk5N3OmaOwcS3O4CAvRE1Ktn29u66m oQEJ9gYd7CjSiXJrszx6g+70LhE9BJshMlB2an8QQ7ADaPIfD9d3BrOCc+Fc/eBz KcctZ97MH6GcAO3eUnvfuucbW5HJ+CEk14JqQS64cQJpQrP5glmoE/GfBu8fU4ok MTOprpDDOQy9Pbj8vq68mKCUX6MwMP2bQ+SJfaGKm7Cv3II7RaiSx8K5SSfRinES OQddrs+gKSfgjfmC0LBUoI4pbLIYjI3o2/WuORWGGclNo3UjtDKP3dhh6T27Zor6 6Q0yHn6sHAFdSSKYXqfyrlDYUumQGyLcjcYwT34XDgkp8Gn6gMVv040RaMd7XBxP tlC/Jvi8sS2SiXXhmZLSmiGkN/bFRGjRCR6/LxjTozngbOTTXCBNWES+zQuIXZ/Z 3iGPeyGJ8sAKByviHm5dMb5lYzqCYq2sID68nUnu7T0aAMPZTJJcDlCgixYlexKr Jce4hRP2CvCdWams/yYNU5FX2epJHJxns5XDKvJRyB6GVX2DvWw= =AeMQ -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org