【问题标题】:Java Hibernate Oracle sessions never get closedJava Hibernate Oracle 会话永远不会关闭
【发布时间】:2011-06-26 21:31:59
【问题描述】:

我正在从 java-hibernate 应用程序打开一些 Oracle 会话。当我关闭我的 java-hibernate 应用程序时,oracle 会话保持打开状态,即使 java 进程没有被视为使用 ps -fea | grep java 运行。

问题是这个 oracle 会话从不消亡,它们仍然存在,而杀死它们的唯一方法是手动终止 oracle 进程,重新启动 oracle 实例或重新启动 oracle 所在的 unix 机器。

无论如何,我的 java/hibernate 应用程序总是在源代码中使用最终语句关闭会话。

提前致谢。

【问题讨论】:

    标签: oracle hibernate


    【解决方案1】:

    如果没有更多信息,很难为您提供帮助,但我可以猜到。当您使用休眠打开或关闭会话时,您可能不会打开真正的 oracle 会话。当打开或不是真正的会话时,Hibernate 可能会使用池或控件。因此,您的问题不是在每个语句之后关闭您的 java 会话,而是在终止您的应用程序之前正确关闭并完成休眠池或其他任何操作。

    请发布更多信息,这样我就不必猜测了:)

    【讨论】:

    • 感谢您的帮助。我使用 C3P0 作为连接管理器。使用的设置几乎是标准设置,我只修改连接数和超时: c3p0.initialPoolSize=30 c3p0.minPoolSize=30 c3p0.maxPoolSize=70 c3p0.acquireIncrement=1 # close pooled Connections that go used for # more than半小时 c3p0.maxIdleTime=1800 所以,我对 C3P0 所做的事情并没有太大的改变。值得一提的是,我的应用程序通常使用 MySQL 部署,并且始终可以正常运行,但 Oracle 有时会出现意外行为。
    猜你喜欢
    • 2014-08-19
    • 2016-10-25
    • 2017-07-22
    • 2012-04-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多