1

Spring3とHibernate3をTomcat7にデプロイして開発したシンプルなWebアプリがあります。データベースサーバーがシャットダウンするまで、アプリケーションは正常に動作します。データベースサーバーが再びオンになった後、アプリが機能することを期待していましたが、applを再び機能させるには、Tomcatを再起動する必要がありました。そうでない場合、次の例外が発生します

org.springframework.web.util.NestedServletException:リクエストの処理に失敗しました。ネストされた>例外はorg.springframework.jdbc.UncategorizedSQLExceptionです:Hibernate操作:クエリを実行できませんでしたか?> SQLの未分類のSQLException

使用されるデータベースプロパティのスナップショットは以下のとおりです

<bean id="OradataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-    method="close">
    <property name="driverClassName" value="oracle.jdbc.OracleDriver"/>
    <property name="url" value="xyz"/>
    <property name="username" value="xyz"/>
    <property name="password" value="xyz"/>       
</bean>
<bean id="OraDbHibernateProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="properties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
            <prop key="log4j.logger.net.sf.hibernate">trace</prop>
        </props>
    </property>
</bean>

どんな助けでも大歓迎です。ありがとう

4

1 に答える 1

1

さらに2つのプロパティを追加する必要があります。

<property name="validationQuery" value="SELECT 1" />
<property name="testOnBorrow" value="true" />
  1. 検証クエリ-呼び出し元に返す前に、プールからの接続を検証します。
  2. testOnBorrow-trueに設定されている場合、接続はプールから借用される前に検証されます。接続が無効な場合、プールから削除され、別の接続が借用されます。
于 2012-08-28T12:18:00.347 に答える