1
2
不是。最常见的模式 多用户 客户端/服务器应用程序是 每个请求的会话 和A 每个应用程序的会话 多用户应用程序中的方法不仅是反模式,而且是完全错误的:
你真的需要通读 Chapter 11. Transactions and Concurrency .
要么使用OSIV(在视图中打开会话)模式,要么明确地加载每个流所需的内容。如果您想从全局缓存中获益,请使用第二级缓存。 |
2
1
延长会话的开放时间是可以的(尽管这不应该是永恒的):-)会话应该标识 工作单位 -逻辑上属于一起的一组连贯的查询/更新。你能在你的应用中识别出这样的单位吗?比如客户请求或对话?如果是这样,请为每个会话创建一个单独的会话。 您还应该为每个线程使用单独的会话(通常工作单元由单个线程处理)。实现这一点的一个简单方法是使用 thread local storage . |
3
0
这是一种反模式。 如果对所有请求使用一个会话。然后考虑100个客户机(100个请求/线程)几乎同时运行。您从会话中分离了一些内容,但随后另一个用户重新加载了相同的内容。您将需要同步,这将影响性能。您将拥有完全随机的行为,这将是调试的噩梦。
这个
|