gpt4 book ai didi

java - JDBC session 和 Oracle 进程之间的关系

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:56:14 24 4
gpt4 key购买 nike

当连接限制为 1,100(使用 C3P0)时,我们遇到了创建太多 Oracle 进程(超过 2,000)的问题

两个问题:

  • Oracle 进程和 JDBC 连接之间有什么关系?是否为每个 session 创建一个 Oracle 进程?是否为每个 JDBC 语句 创建一个?完全没有关系?

  • 您是否遇到过这种情况,您创建的进程多于 JDBC 连接?

如有任何意见,我们将不胜感激。

最佳答案

每个连接有一个 session 。这听起来像是连接泄漏,在某个地方你打开了一个新连接但没有正确关闭。一种可能是您在 try block 中打开、使用和关闭连接,并在 catch 中处理异常,或者由于其他原因提前返回。如果是这样,您需要确保连接关闭在 finally 中完成,否则它可能不会发生,从而使连接(以及 session )挂起。在同一范围内打开两个连接而中间没有显式关闭也可以做到这一点。

我不熟悉 C3PO,所以不知道连接是如何处理的,或者你的 1100 限制是在哪里以及如何施加的;如果它(或您)有一个连接池并且您提到的 1100 是最大池大小,那么这听起来不像是您在 session 上限之前达到池上限的问题。

您可以查看 v$session 以确认所有 session 都来自 JDBC,并且没有其他连接。

关于java - JDBC session 和 Oracle 进程之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9613447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com