I was looking at the code for the Tomcat Manager application to try and find out how it is determining whether a webapp/context is running and how many sesions are active. Looking at the code i think it uses these two methods
Context.getAvailalbe() //check if available Context.getManager().findSessions().length // Number of sessions. Here is the relevant function protected void list(PrintWriter writer) { if (debug >= 1) log("list: Listing contexts for virtual host '" + host.getName() + "'"); writer.println(sm.getString("managerServlet.listed", host.getName())); Container[] contexts = host.findChildren(); for (int i = 0; i < contexts.length; i++) { Context context = (Context) contexts[i]; String displayPath = context.getPath(); if( displayPath.equals("") ) displayPath = "/"; if (context != null ) { if (context.getAvailable()) { writer.println(sm.getString("managerServlet.listitem", displayPath, "running", "" + context.getManager().findSessions().length, context.getDocBase())); } else { writer.println(sm.getString("managerServlet.listitem", displayPath, "stopped", "0", context.getDocBase())); } } } } I was looking at the above for the above information as i am working on a client tool that tries to find out this exact information. The tool i am using connects to Tomcat via JMX but i am not sure if i can get the same information via JMX. Can i access the Context class? or is there any other way (Mbeans?) i can check if a context is running via JMX?