Jboss 临时表和连接池

Jboss 临时表和连接池,jboss,informix,Jboss,Informix,我使用JBoss7提供的连接池,并在每次操作后执行connection.close() 但是,当我创建临时表时,它不会保留给当前用户,因为他正在使用数据库中的新会话(由于connection.close()和pooling) 例如,我在一个动作中创建了一个临时表。用户更改页面。新操作必须在临时表中执行查询,但该操作不再存在 因此,我真的不知道如何提供具有这种体系结构的临时表。临时表与连接池相结合意味着请求临时表的作用域。您希望有会话范围临时表 我不知道有现成的解决方案。所以选择是 创建带有前缀/

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

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

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


因此,我真的不知道如何提供具有这种体系结构的临时表。

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

我不知道有现成的解决方案。所以选择是

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

  • 选项1和2需要清理,特别是在会话未正确关闭的情况下。选项2可能需要大量资源。因此,我会研究第三个选项,即使它似乎是最麻烦的一个。

    我刚刚更改了我的代码以使用选项2,它工作起来很有魅力。非常感谢。此外,我还制作了一个SessionListener来删除临时表并关闭连接。它不完全是请求范围,是吗?因为如果您使用连接池,而另一个查询从池中获取该连接,那么它可以使用上一个查询right?@tomer.z创建的临时表,这可能是真的。我无法判断当前的连接池实现是否会清理临时表。对于用户来说,它实际上是一个请求范围。至于其他用户,它正在泄漏数据,可能是一个安全漏洞,他们必须在之前清理。