0

我使用 JBoss 7 提供的连接池,并在每次操作后执行 connection.close()。

但是当我创建一个临时表时,它不会保留给当前用户,因为他正在使用数据库中的新会话(由于 connection.close() 和池化)。

例如,我在操作中创建了一个临时表。用户更改页面。新操作必须在临时表中进行查询,但这不再存在。

所以,我真的不知道如何为这种架构提供临时表。

4

1 回答 1

1

临时表与连接池相结合意味着临时表的请求范围。您希望拥有会话范围的临时表。

我不知道开箱即用的解决方案。所以选项是

  1. 创建带有前缀/后缀的普通表以将这些表与用户相关联
  2. 在整个会话期间为用户使用相同的连接
  3. 重写应用程序:代替临时表,完全读取数据,并将其存储在HTTP 会话中。可能数据库可以分页,因此不需要缓存中间结果等。

选项 1 和 2 需要cleanup,尤其是在会话未正确关闭的情况下。选项 2 可能需要很多资源。所以我会调查第三个选项,即使它似乎是最麻烦的一个。

于 2013-08-08T09:15:50.057 回答