我有一個非常簡單的Hibernate項目,它連接到Oracle數據庫。如何減少超時以創建c3p0 ComboPooledDataSource並獲取Oracle數據庫連接?
如果由於某種原因無法連接到Oracle(例如網絡出現故障),則需要一分鐘才能失敗。在構建數據源時發生這種情況,並且在嘗試與數據庫進行交互時似乎也會發生。
我想改變它的設置在幾秒鐘內失敗。在改變了我相信的相關設置後,似乎沒有任何改變。 這就像我的配置被忽略。
<bean id="oracleDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="oracle.jdbc.OracleDriver"/>
<property name="jdbcUrl" value="jdbc:oracle:thin:@****"/>
<property name="user" value="****"/>
<property name="password" value="****"/>
</bean>
<bean id="oracleSessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="oracleDataSource"/>
<property name="configLocation">
<value>classpath:oracle.hibernate.cfg.xml</value>
</property>
</bean>
我的Hibernate配置文件:oracle.hibernate.cfg.xml:
<?xml version="1.0"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="hibernate.c3p0.max_size">1</property>
<property name="hibernate.c3p0.checkoutTimeout">5000</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="show_sql">true</property>
<mapping class="****"/>
</session-factory>
</hibernate-configuration>
我
做我的依賴注入,appContext.xml春文件的相關部分聽說這可能是由於在classpath中沒有hibernate-c3p0-version.jar引起的,所以這裏是我測試的類路徑設置...
...這裏就是我的Maven的pom.xml指定的Hibernate c3p0-4.2.11.Final.jar:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>4.2.11.Final</version>
</dependency>