是否可以在Tomcat中可靠地找出开放会话的数量(即不仅是[当前时间] - [会话超时]之后已登录的用户数量,而是存储在服务器上的会话数量) )?
答案 0 :(得分:4)
您可以使用JMX找到此信息。有关如何启用JMX以及要查询的变量,请参阅here。
使用Ant JMX任务,您可以使用:
<!-- get all sessions and split result as delimiter <em>SPACE</em> for easy
access all session ids directly with ant property sessions.[0..n].
-->
<jmx:invoke
name="Catalina:type=Manager,path=/ClusterTest,host=localhost"
operation="listSessionIds"
resultproperty="sessions"
echo="false"
delimiter=" "
/>
但您可以使用其他工具,例如JConsole
答案 1 :(得分:2)
如果您的应用程序中需要此信息,则可以通过实现HttpSessionListener并将其添加到服务器上下文来跟踪创建或销毁会话的时间。
http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpSessionListener.html
答案 2 :(得分:-1)
您可以使用内置管理器以及http://server:8080/manager/status
找到此信息如果您没有启用管理员登录,请修改conf/tomcat-users.xml
并添加role="admin"
的用户。 Tomcat文档here中的更多信息。