有没有办法来编程跟踪的Java EE应用服务器上的特定会话的大小,还是我不得不求助于到应用服务器的供应商特定的仪器来做到这一点?的Java EE - 找到会话大小
两种方案:从应用程序(一种JMX-类型的接口)
- 轨道不具有(外) - 一个通用的代码段,所有的应用程序服务器上的工作原理。
有没有办法来编程跟踪的Java EE应用服务器上的特定会话的大小,还是我不得不求助于到应用服务器的供应商特定的仪器来做到这一点?的Java EE - 找到会话大小
两种方案:从应用程序(一种JMX-类型的接口)
没有待办事项这一种标准的方式。实际上,衡量一个对象并不是一个特别好的方法,假设它不仅仅是主要的。一种方法是将对象序列化为字节数组,并将其作为大小的指示器。
一种选择会是这样YourKit开关使一个很好的刺在计算基准的保留尺寸使用一个分析器。
有可能供应商特定的API为这是最SessionManager的有连载的复制和持久性的会话数据。
我担心这可能是答案,我一直在情况下,服务器超出内存由于一些wiseguy决定使用会话阁楼 无论如何,我总是使用一个分析器来做到这一点,我想我会在未来的一段时间内做同样的事情。 谢谢 – 2009-07-03 06:43:04
有两种方法:
如果你的会话无法序列化,那么它很难。我们采取的解决方案是遵循sizeofagent technique。它利用[Instrumentation.getObjectSize()方法](http://java.sun.com/j2se/1.5.0/docs/api/java/lang/instrument/Instrumentation.html#getObjectSize(java.lang.Object))它需要你有特殊代理启动JVM:
的java -javaagent:sizeofag.jar
这JEE服务器 – 2009-07-03 05:41:12
啊!我看你指的情景1 - 。Glassfish的 – 2009-07-03 06:36:06