目前,如果我们在Tomcat上托管的Spring应用程序的数据库不可用,则上下文初始化失败并且所有请求都返回404。克服这个问题的好方法是什么?我希望应用程序在下一个Tomcat之前不可用,而不是在不可用时向用户显示错误消息,并在数据库可用时自动恢复(就像在Tomcat已经运行时发生数据库故障一样)。我可以将所有bean设置为lazy-init,但我不确定这是最好的解决方案吗?Tomcat不能每x秒/请求重试一次初始化并同时显示一个像样的错误页面吗?对此有什么想法吗?数据库不可用时启动时抛出的错误示例:Causedby:java.sql.SQLException:Connections
我有使用hirbernate的重载java应用程序。我曾经用作连接池DBCP,但它有连接丢失的问题。比我切换到c3p0。但是现在它有时会阻塞线程,我不知道为什么。喜欢这里:"1343694829@qtp-515693101-1941"prio=10tid=0x00007fa6b0940000nid=0x4e12runnable[0x00007fa6f8f1c000]java.lang.Thread.State:RUNNABLEatcom.mchange.v2.resourcepool.BasicResourcePool.doCheckinManaged(BasicResourcePoo
当我通过tomcat或resin启动我的项目时,我的项目会抛出错误:APPARENTDEADLOCK我觉得是c3p0导致的错误,连接不上我的数据库,我改了xml,把域名换成了我数据库的ip,然后项目就启动了!我在我的c3p0工作之前使用了一个监听器,我可以得到正确的域名和ip,我找不到APPARENTDEADLOCK的原因。012-10-2216:53:0424344WARN[Timer-0]com.mchange.v2.async.ThreadPoolAsynchronousRunner:624-com.mchange.v2.async.ThreadPoolAsynchronousR
根据c3p0documentation,您可以手动指定日志的去向,是通过JDK1.4日志记录、Log4j还是通过System.out。我正在运行SLF4J,所以我在我的应用程序中包含org.slf4j.jul-to-slf4j并调用SLF4JBridgeHandler.install()以强制所有Javautil日志记录通过SLF4J。此外,我在我的c3p0.properties文件中包含了以下属性:com.mchange.v2.log.MLog=com.mchange.v2.log.jdk14logging.Jdk14MLog根据文档,这将强制c3p0记录到JDK1.4日志记录,这反
我正在使用Hibernate的c3p0连接池和标准Java1.4java.util.logging。启动时,我的应用程序在staticblock中设置它的日志记录属性(包括格式化程序和日志级别)。每次启动我的应用程序时,我都会看到以下内容:2011-04-1617-43-51[com.mchange.v2.log.MLog]INFO:{MLog.)MLogclientsusingjava1.4+standardlogging.2011-04-1617-43-51[com.mchange.v2.c3p0.C3P0Registry]INFO:{C3P0Registry.banner)Ini
我想知道如何正确确定用于c3p0max_statements的值。我遇到了一些缓存死锁,根据我阅读的所有SOQ&A,这似乎指向我的max_statements配置。我正在使用mysql,当我在有4个事件线程的地方执行一些多线程时,死锁似乎发生了。我的配置org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider10505018003600异常[WARN]async.ThreadPoolAsynchronousRunnercom.mchange.v2.async.ThreadPoolAsynchronous
我的SpringHibernateWeb应用程序在MySQL上运行,这给我带来了麻烦。我四处搜索并尝试了不同的配置,阅读了该网站上的不少主题,但它仍然会露出微笑的脑袋。错误信息是:Causedby:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:从服务器成功接收到的最后一个数据包是63,313,144毫秒前。最后一个成功发送到服务器的数据包是在63,313,144毫秒之前。比服务器配置的“wait_timeout”值长。在您的应用程序中使用之前,您应该考虑过期和/或测试连接有效性,增加服务器配置的客户端超时值,或使用Con
我有一个使用c3p0进行连接池的应用程序。当连接到数据库出现任何问题时,我会得到这样的异常:java.sql.SQLException:AnSQLExceptionwasprovokedbythefollowingfailure:com.mchange.v2.resourcepool.ResourcePoolException:AResourcePoolcannotacquireanewresource--thefactoryorsourceappearstobedown.atcom.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.jav
我们在使用c3p00.9.5.1(这是c3p0的最新版本)时面临明显的死锁。以下是我们正在使用的连接池配置。p:driverClass="${app.jdbc.driverClassReplica}"p:jdbcUrl="jdbc:mysql://database,database/dbname"p:acquireIncrement="5"p:idleConnectionTestPeriod="300"p:maxPoolSize="100"p:maxStatements="2000"p:minPoolSize="10"p:maxIdleTime="1800"p:maxConnectio
我的Hibernate下有MySQL,我还使用c3p0-0.9.1作为连接池。在我的笔记本电脑上运行时(我的意思是在本地)我没有错误。但是当我在服务器上部署它时,我得到了这个异常:com.mchange.v2.resourcepool.CannotAcquireResourceException:AResourcePoolcouldnotacquirearesourcefromitsprimaryfactoryorsource.这是我的堆栈跟踪:rootcausecom.mchange.v2.resourcepool.CannotAcquireResourceException:ARe