Shilesh
Shilesh

Reputation: 9

How to get list of active users in tomcat

How do I get the list of active users logged in using session.

I have tried session.getOpenSessions() but the value is null.

This one I need it for my web socket chat program...

Pls help me.

Upvotes: 1

Views: 3222

Answers (2)

Terry Horner
Terry Horner

Reputation: 517

To get a session list within tomcat

import javax.management.remote.*;
import org.apache.catalina.*;


MBeanServer mBeanServer = MBeanServerFactory.findMBeanServer(null).get(0);
ObjectName name = new ObjectName("Catalina", "type", "Server");
Server tomcatServer = (org.apache.catalina.Server) mBeanServer.getAttribute(name, "managedResource");
Service service = tomcatServer.findService("Catalina");
Engine engine = (Engine) service.getContainer();
Host host = (Host) engine.findChild(engine.getDefaultHost());
Context context = (Context) host.findChild("");
StandardManager manager = (StandardManager) context.getManager();
Session[] sessions=manager.findSessions();

Upvotes: 1

Anas EL KORCHI
Anas EL KORCHI

Reputation: 2058

You should use JMX (Java Managemnet eXtension) like this :

jmxObjectName:    Catalina:host=localhost,path=/,type=Manager
jmxAttributeName: activeSessions

You can use jconsole to access this data. To get jmx running see http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html

Upvotes: 0

Related Questions