gpt4 book ai didi

java - 为什么从/manager 重新启动应用程序会导致大量 "this web application instance has been stopped already. "警告。为什么?

转载 作者:行者123 更新时间:2023-11-28 22:51:56 25 4
gpt4 key购买 nike

Tomcat 7 安装 w/jvm 1.7。
加载了几个网络应用程序。在受影响的应用程序上运行带有 c3p0 连接池的 Hibernate 3.3。
在受影响的应用程序上运行的 Quartz 1.8.3 作业。

如果我从/manager 控制台重新启动一个网络应用程序,我的 catalina out 开始填满这种东西:

信息:非法访问:此 Web 应用程序实例已被停止。无法加载 org.hsqldb.jdbc.JDBCDriver。最终的后续堆栈跟踪是由出于调试目的以及试图终止导致非法访问的线程而抛出的错误引起的,并且没有任何功能影响。java.lang.IllegalStateException异常 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1610) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569) 在 java.lang.Class.forName0( native 方法) 在 java.lang.Class.forName(未知来源) 在 java.sql.DriverManager.isDriverAllowed(未知来源) 在 java.sql.DriverManager.getDrivers(未知来源) 在 oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:317) 在 com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134) 在 com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182) 在 com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171) 在 com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137) 在 com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014) 在 com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32) 在 com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810) 在 com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)

最奇怪的是,我并没有尝试运行任何调用 hsqldb 的东西,而是试图访问 oracle 数据库。无论如何,一旦我在日志中看到这种行为,oracle 环境就会开始充斥着登录请求,listener.log 开始填满,最终 DBA 对我的流程大喊大叫。

如果我重新启动整个应用程序服务器,这些都不会发生并且一切都很好。

这是怎么回事?非常感谢任何见解。

最佳答案

  1. 请参阅 http://www.mchange.com/projects/c3p0/#configuring_to_avoid_memory_leaks_on_redeploy
  2. 如果您在 Web 应用程序中启动 c3p0 连接,则必须注意在应用程序未部署时正确关闭()。 ServletContextListener 是处理连接池初始化和销毁​​的好地方。

关于java - 为什么从/manager 重新启动应用程序会导致大量 "this web application instance has been stopped already. "警告。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37194958/

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