【发布时间】:2011-06-23 02:05:34
【问题描述】:
单个会话中可以存储的数据量是否有上限?我知道仅在会话中存储大量数据是一件坏事。但是,存储的数量是否有限制,如果有,应用程序如何通知已达到此限制?有例外吗?
上下文:我指的是 Tomcat 6.0,没有集群,使用 StandardManager(用于会话)。
【问题讨论】:
标签: jsp session tomcat configuration jakarta-ee
单个会话中可以存储的数据量是否有上限?我知道仅在会话中存储大量数据是一件坏事。但是,存储的数量是否有限制,如果有,应用程序如何通知已达到此限制?有例外吗?
上下文:我指的是 Tomcat 6.0,没有集群,使用 StandardManager(用于会话)。
【问题讨论】:
标签: jsp session tomcat configuration jakarta-ee
从来没有听说过Tomcat有这样的限制,在幕后它只是一个映射,所以堆是限制,可能。
但如果您的会话如此庞大,您可能会考虑在会话上进行同步,因为修改大型对象可能会增加一些竞争条件的风险(出于性能原因,访问会话在不同线程/来自同一用户的请求之间不同步- 您正在做出选择,您是否可以接受风险)。
【讨论】:
我认为 Tomcat 在其默认配置中不会将任何内容钝化到磁盘,因此您放入会话中的所有内容都会占用内存空间。限制是运行 Tomcat 的 JVM 的堆大小。
如果您在会话中放置了太多对象,您有时可能会遇到 OutOfMemoryError。
【讨论】: