4

I have an application in WebSphere Application Server and I want to monitor HTTP connections pool (currently processed HTTP connections) and log this data to file. WebSphere Application Server has it's own monitoring tool, but as I see correctly there is no such parameter to monitor. It offers number of currently processed IIOP requests, servlet sessions, HTTP sessions, alive beans, concurrent outbound connection and some other statistics. Full info is is here

How can I monitor HTTP connections pool (currently processed HTTP connections) and log this data to file?

ctomek
  • 1,696
  • 16
  • 35
  • Not used WebSphere, but other containers I've used (i.e. weblogic, tomcat) usually expose JMX MBeans containing stuff like this – BretC Mar 27 '15 at 13:55
  • @Breat I've set up VisualVM, but I don't know exactly where can I find that info. Where exactly in VisualVM should I look? – ctomek Mar 27 '15 at 13:58
  • You might need to install the "MBeans" plugin. Once you connect to the process, some "MBeans" will appear in the appropriate tab. If you are running VisualVM on a different machine to WebSphere, you'll have to make sure WebSphere has a JMX port open. Sorry I can't be much more help, I've never used WebSphere – BretC Mar 27 '15 at 14:02
  • Doing a quick google for "WebSphere JMX" might help, i.e.... http://blog.monitis.com/2012/09/12/configuring-jmx-in-websphere-8-5/ – BretC Mar 27 '15 at 14:03
  • @Bert Ok, I'll try that plugin. By "I've set up VisualVM" I meant that I have successfully connected to WebSphere via JMX, but I didn't know where in VisualVM is info about HTTP connections. ; ) – ctomek Mar 27 '15 at 14:10
  • @Bert I don't see any beans related to HTTP. Here's what I see: [screen from visualvm](http://images68.fotosik.pl/746/99cab5fb90bd3091gen.png). Anyway I need a tool which would log this information to file and unfortunately VisualVM doesn't provide this. But If it is possible to monitor HTTP connections pool via VisualVM Im still interested. – ctomek Mar 27 '15 at 15:18
  • Sorry, like I said, never used WebSphere, in Tomcat etc you sould see more MBeans than that - according to http://www-01.ibm.com/support/knowledgecenter/SSD28V_8.5.5/com.ibm.websphere.wlp.core.doc/ae/rwlp_mbeans_list.html there should be a load of them, maybe you have to do something else to enable them... Not sure if this is useful... http://stackoverflow.com/questions/357095/how-do-you-enable-jmx-in-websphere – BretC Mar 27 '15 at 15:45

1 Answers1

1

You are not entirely correct.

First you can monitor any thread pool that is in WAS via PMI. See here for counters that you may get from monitoring pool - http://www-01.ibm.com/support/knowledgecenter/api/content/nl/pl/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/rprf_datacounter9.html

The thread pool is called WebContainer thread pool.

Second, you can store all these counters data to file directly using web admin console. Go to Monitoring and Tuning > Performance Viewer > Current activity, select server, then in PMI viewer select Settings > Log to define logging period and format. And in Modules > Thread pools > WebContainer you can view current counter values.

This is rather for short term monitoring, than for constant logging. There is also option to load and replay the log via console later, viewing gathered data.

These counters are of course available via JMX, so you can write your custom client if you need it.

UPDATE

If you are particularly interested in Web Serivces counters then there is separate Web Services monitoring module for that. Check this page for details Monitoring the performance of web services applications.

You will be able to see:

  • The number of requests dispatched to an implementation bean
  • The number of requests dispatched with successful replies
  • The average time in milliseconds to process full requests
  • The average time in milliseconds between receiving the request and dispatching it to the bean
  • The average time in milliseconds between the dispatch and receipt of a reply from the bean. This represents the time spent in business logic.
  • The average time in milliseconds between the receipt of a reply from a bean to the return of a result to the client
  • The average size of the SOAP request
  • The average size of the SOAP reply
Gas
  • 17,601
  • 4
  • 46
  • 93
  • My only problem was that I didn't know that I should look for HTTP connections pool in Thread pool counters, I was expecting something more like counter dedicated to HTTP connections. So big thanks for clearing this up. The rest of described things is known to me. Does WebContainer pool also contain threads with JavaBean Web Services requests? There is very little info about content of WebContainer thread pool. I've found that it includes: " servlet, JSP, EJB, dynamic page creation, and back-end pass-through processing." JavaBean WebServices are not mentioned so are they contained or no? – ctomek Mar 27 '15 at 17:22
  • @user3733758 WebContainer thread pool is used for incoming http traffic, so it is also used for http web services. – Gas Mar 31 '15 at 09:57
  • So If I create simple Web Service based on JavaBean, HTTP requests will be shown on graph. Thank you. – ctomek Mar 31 '15 at 10:41
  • @user3733758 I've updated answer in some more Web services monitoring details. – Gas Mar 31 '15 at 12:08
  • Thanks, I selected my web service in PMI tree: Web service -> myWebService.war -> services, clicked on View Modules and counters described by you showed up, but they are still at 0. I am sending requests via SoapUI and value of WebContainer counter ActiveCount increases, but Web Services counter ReceivedRequestCount is still at 0. What can be wrong? – ctomek Mar 31 '15 at 12:53
  • To be clear all Web Services counters are still at 0. – ctomek Mar 31 '15 at 13:04
  • @user3733758 Maybe you use 3rd party Web Services engine, embedded in your app, not one built in WebSphere, then this monitoring will not work as you use different implementation classes. – Gas Mar 31 '15 at 22:15
  • Web Service was created in Rational Application Developer with following setting: in RAD in Window -> Preferences: Web Services->Server and Executon Environment: Web Service Execution Environment is set to IBM WebSphere JAX-WS (Axis is available to choose in this field, but it is not selected). Web service is working on WAS for Developers and when I type Web Service URL in browser message from Axis appears so there is something wrong or I miss something. – ctomek Apr 01 '15 at 11:20
  • @user3733758 Yes, looks like something is wrong. You may open PMR in IBM Support. – Gas Apr 02 '15 at 08:34