首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >glassfish JDBC连接池和oracle全局临时表相同的sessionId

问glassfish JDBC连接池和oracle全局临时表相同的sessionId
EN

Stack Overflow用户
提问于 2016-10-02 07:54:18
回答 1查看 579关注 0票数 0

在开始我的问题之前,我想澄清一下,我是java/j2ee开发人员,对甲骨文方面的事情了解有限。

我使用具有JDBC连接池的glassfish服务器,在后台使用oracle数据库。另外,我正在使用oracle的全局临时表来执行一些工作流程。

我将会话特定的数据存储在全局临时表中。

现在,我的问题是,在大多数情况下,我会为每个连接获得相同的sessionId。

这是否意味着我不能使用带有glassfish JDBC连接池的glboal临时表。

另一件有趣的事情是,如果我删除了连接池,那么我将为每个连接获得不同的sessionID。

请提供你的建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-02 13:27:17

在使用连接池时,当连接被释放到池中时,最好不要将状态留在数据库会话中。这是因为,不能保证下次需要连接时,您会恢复相同的连接。全局临时表(GTT)就是这种状态的一个例子,属于一个数据库会话,或者属于一个JDBC连接( DB会话和JDBC连接之间有一个1-1的映射)。如果使用另一个JDBC连接,它将不可见。因此,如果您的业务逻辑要求您使用GTT,那么在您使用此GTT之前,不应该将连接释放回池。请注意,这与建议尽快将连接释放回池的最佳实践背道而驰。作为另一种选择,您可以使用普通表并将临时结果提交到表中,以便可以通过任何其他连接访问它们。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39814981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档