【问题标题】:Spring + Hibernate + c3p0 + MySql does not timeout if connection to database fails如果连接数据库失败,Spring + Hibernate + c3p0 + MySql 不会超时
【发布时间】:2011-12-26 12:10:06
【问题描述】:

我将 Spring、Hibernate 和 Mysql 与 c3p0 结合用于连接池。我的问题是,当数据库连接参数错误时,应用程序需要 15-20 分钟才能部署。 (当我为数据库提供了错误的 url 时,我遇到了这个问题)。此外,当我检查我的 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"/>

我需要帮助进行配置,这样如果应用程序无法连接到数据库并在日志中抛出一些异常,它会在给定时间段后超时。

【问题讨论】:

    标签: mysql hibernate spring database-connection c3p0


    【解决方案1】:

    您可以在 tomcat 上下文中“存储”数据库连接,并通过 JNDI 使其可用。所以当需要更改配置时,只需要重启服务器,不能重新部署应用程序。

    @见Tomcats How To

    【讨论】:

      猜你喜欢
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      • 2018-06-09
      • 1970-01-01
      • 2013-03-06
      相关资源
      最近更新 更多