春天 +休眠+ c3p0 +如果连接数据库失败,MySql 不会超时
我使用 Spring、Hibernate 和 Mysql 与 c3p0 的组合进行连接池。我的问题是,当数据库连接参数错误时,应用程序需要 15-20 分钟才能部署。 (当我给数据库提供了错误的网址时,我遇到了这个问题)。而且,当我检查我的tomcat日志时,我看不到任何异常。
我正在使用的配置:
<context:property-placeholder location="/WEB-INF/spring.properties" />
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
p:dataSource-ref="dataSource"
p:configLocation="${hibernate.config}"
p:packagesToScan="com.cronos"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close"
p:driverClass="${app.jdbc.driverClassName}"
p:jdbcUrl="${app.jdbc.url}"
p:user="${app.jdbc.username}"
p:password="${app.jdbc.password}"
p:acquireIncrement="5"
p:acquireRetryAttempts="3"
p:idleConnectionTestPeriod="60"
p:maxPoolSize="100"
p:maxStatements="50"
p:minPoolSize="10"/>
我需要帮助进行配置,以便应用程序在给定时间段后如果无法连接到数据库并在日志中抛出一些异常,就会超时。
I am using a combination of Spring, Hibernate and Mysql with c3p0 for connection pooling. My problem is that, the application takes 15-20 minutes to deploy when the database connection parameters are wrong. (i faced this when I had given a wrong url for the database). Moreover, when I check my tomcat logs, I cannot see any exceptions.
The configurations I am using :
<context:property-placeholder location="/WEB-INF/spring.properties" />
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
p:dataSource-ref="dataSource"
p:configLocation="${hibernate.config}"
p:packagesToScan="com.cronos"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close"
p:driverClass="${app.jdbc.driverClassName}"
p:jdbcUrl="${app.jdbc.url}"
p:user="${app.jdbc.username}"
p:password="${app.jdbc.password}"
p:acquireIncrement="5"
p:acquireRetryAttempts="3"
p:idleConnectionTestPeriod="60"
p:maxPoolSize="100"
p:maxStatements="50"
p:minPoolSize="10"/>
I need helping with the configuration, such that the application will timeout after a given period if it cannot connect to a database and throw some exception in the log.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以将数据库连接“存储”在 tomcat 上下文中,并使其可通过 JNDI 使用。因此,当需要更改配置时,只需重新启动服务器即可,而不必重新部署应用程序。
@see Tomcat 操作方法
You can "store" the database connection in the tomcat context and make it avaiable via JNDI. So when need to change the configuration then you only need to restart the server, but must not redeploy the application.
@see Tomcats How To