wildfly上的Java堆使用和会话对象

wildfly上的Java堆使用和会话对象,java,session,memory,jax-rs,heap,Java,Session,Memory,Jax Rs,Heap,我们在生产环境中有一个应用程序,大约有200个并发用户。每个用户都维护一些简单的会话对象,但有些对象有许多条目,因为它们引用了用户与其他用户的关系。这意味着每个用户可能有一个包含800个条目(用户总数)的映射。是否有可能在某个时间点之后,Java没有足够的内存将此映射放到用户的会话中?我们没有得到任何相关的异常,但有一种特殊情况,即资源调用(创建并持久化此映射)对某些用户失败,而对其他用户有效。查看堆栈跟踪,似乎从未调用jersey资源函数。相反,它直接进入异常映射程序,再次失败,并抛出另一个R

我们在生产环境中有一个应用程序,大约有200个并发用户。每个用户都维护一些简单的会话对象,但有些对象有许多条目,因为它们引用了用户与其他用户的关系。这意味着每个用户可能有一个包含800个条目(用户总数)的
映射。是否有可能在某个时间点之后,Java没有足够的内存将此映射放到用户的会话中?我们没有得到任何相关的异常,但有一种特殊情况,即资源调用(创建并持久化此映射)对某些用户失败,而对其他用户有效。查看堆栈跟踪,似乎从未调用
jersey资源函数
。相反,它直接进入异常映射程序,再次失败,并抛出另一个
RuntimeException
,这显然是jax-rs响应函数之一上的
ArrayIndexOutOfBounds
mapException
)。我们不知道为什么会这样,我们只是在猜测


我们目前没有任何用于分析的工具,现在也没有时间来实现它们。任何洞察都将不胜感激。

取决于您的内存设置,但即使所有200个用户都有一个800个整数-整数项的映射(即200个映射和320000个整数),也应该只使用大约1到1.5 MB的堆内存。