gpt4 book ai didi

Java spring 数据库应用程序不会退出对 org.enHydra.jdbc.pool.PoolKeeper 的引用仍然处于 Activity 状态,为什么?

转载 作者:行者123 更新时间:2023-12-01 16:10:27 27 4
gpt4 key购买 nike

大家好,我有一个简单的 Spring 应用程序,它不会结束,因为仍然有 org.enHydra.jdbc.pool.PoolKeeper 的引用。我在下面列出了我认为相关的所有引用资料,它看起来不错吗?以前有人经历过吗?

我运行 jstack 来查看正在运行的非守护线程,并发现了以下内容。

"Thread-1" prio=10 tid=0x00007f89b03d8000 nid=0x755 in Object.wait() [0x00007f89bc243000]    java.lang.Thread.State: TIMED_WAITING (on object monitor)  at java.lang.Object.wait(Native Method)
- waiting on <0x00007f89ec57de00> (a org.enhydra.jdbc.pool.PoolKeeper) at org.enhydra.jdbc.pool.PoolKeeper.run(PoolKeeper.java:55)
- locked <0x00007f89ec57de00> (a org.enhydra.jdbc.pool.PoolKeeper) at java.lang.Thread.run(Thread.java:619)

现在我很困惑为什么会发生这种情况,我包含了 JPA 配置的相关部分

<bean id="innerDataSource" class="org.enhydra.jdbc.standard.StandardXADataSource"
destroy-method="shutdown">
<property name="transactionManager" ref="jotm" />
<property name="driverName" value="${jdbc.driverClassName}"/>
<property name="url" value ="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<bean id="dataSource" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource"
destroy-method="shutdown">
<property name="dataSource" ref="innerDataSource"/>
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="maxSize" value="100" />
<!-- test your jdbc connection before using it -->
<property name="checkLevelObject" value="${jdbc.checkLevelObject}"/>
<property name="jdbcTestStmt" value="${jdbc.jdbcTestStmt}"/>
</bean>

谢谢保罗

最佳答案

Web 应用程序通常使用 ContextLoaderListener 配置 Spring 应用程序上下文,当 Web 应用程序停止时,它会关闭应用程序上下文。

独立Java应用程序必须调用close应用程序上下文中的方法,它在销毁 bean 时调用在 destroy-method 属性中配置的方法。或者,调用registerShutdownHook方法注册一个关闭钩子(Hook),该钩子(Hook)在 JVM 关闭时关闭应用程序上下文。

关于Java spring 数据库应用程序不会退出对 org.enHydra.jdbc.pool.PoolKeeper 的引用仍然处于 Activity 状态,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1445503/

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