【问题标题】:release db connections in standalone application在独立应用程序中释放数据库连接
【发布时间】:2013-08-26 11:35:04
【问题描述】:

我正在使用 Spring/JPA 开发一个独立的应用程序,并且我正在尝试正确释放所使用的数据库资源。

例如,在一个使用 tomcat 的 Web 应用程序中,我们关闭服务器,这样我们就让 Tomcat 管理资源。

但是由于我在一个独立的应用程序中,我必须注意这一点,我使用 Runtime.getRuntime().addShutdownHook 来“捕捉”关闭事件并调用 (( ClassPathXmlApplicationContext) context).close();,类似这样:

Runtime.getRuntime().addShutdownHook(new Thread() {
    @Override
    public void run() {
        ((ClassPathXmlApplicationContext) context).close();
    }

如果线程正在使用连接,它可以工作,但堆栈跟踪中会出现异常。 我想知道是否还有其他选择?也许得到一个打开的事务列表并强制它们回滚?

【问题讨论】:

标签: spring jpa shutdown


【解决方案1】:

我相信您需要实现 this 之类的东西,并且在您的 destroy 方法中,您将检索您的数据源并调用 close 方法或类似的东西。我还假设您在关闭应用程序时有一些事情要做。

我无法为正确的方法名称提供帮助,因为我不知道您将什么用于数据源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    相关资源
    最近更新 更多