データベースクエリのタイムアウトを設定する
データベースクエリの実行に時間がかかりすぎ、アプリケーションが応答しなくなっている場合、データベースクエリのタイムアウトを設定できます。Confluence には既定のタイムアウトはありません。データベースクエリのタイムアウトを設定するには、テストサーバーで以下を実行します。
1. Confluence をシャットダウンします。
2. confluence/WEB-INF/lib/
にある confluence-x.x.x.jar
から databaseSubsystemContext.xml
を抽出して、コピーを confluence/WEB-INF/classes/
に保存します。
3. confluence/WEB-INF/classes/databaseSubsystemContext.xml
を編集し、defaultTimeout プロパティを "transactionManager" Bean に追加します。
<bean id="tenantedTransactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager" plugin:available="true">
<property name="sessionFactory" ref="sessionFactory"/>
<property name="defaultTimeout" value="120"/>
</bean>
タイムアウトは秒単位で測定され、この時間を超過するクエリは強制的に中止されます。場合によっては、これらのエラーが Confluence によりうまく処理されず、Confluence エラーページが表示されることがあります。
4. Confluence を起動します。
テスト環境でタイムアウトが適切に機能したら、設定変更を Confluence に移行します。
これらの変更は、Confluence の更新時に再適用する必要があります。これは、元の databaseSubsystemContext.xml
ファイルがバージョンごとに変更されるためです。