Confluence ログに APPARENT DEADLOCK メッセージが頻繁に表示される

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問


問題

The following message appears frequently in the atlassian-confluence.log . There doesn't appear to be any negative impact on the application performance from what has been observed. 

2018-12-05 11:43:12,489 WARN [C3P0PooledConnectionPoolManager[identityToken->2yu2zx9zrbkq9i6l1kgv|4b07f267]-AdminTaskTimer] [mchange.v2.async.ThreadPoolAsynchronousRunner] log com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@3eefb34a -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
2018-12-05 11:43:12,489 WARN [C3P0PooledConnectionPoolManager[identityToken->2yu2zx9zrbkq9i6l1kgv|4b07f267]-AdminTaskTimer] [mchange.v2.async.ThreadPoolAsynchronousRunner] log com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@3eefb34a -- APPARENT DEADLOCK!!! Complete Status: 
	Managed Threads: 3
	Active Threads: 3
	Active Tasks: 
		com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@442a2fb5
			on thread: C3P0PooledConnectionPoolManager[identityToken->2yu2zx9zrbkq9i6l1kgv|4b07f267]-HelperThread-#0
		com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@545e6f5e
			on thread: C3P0PooledConnectionPoolManager[identityToken->2yu2zx9zrbkq9i6l1kgv|4b07f267]-HelperThread-#1
		com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@43cf3636
			on thread: C3P0PooledConnectionPoolManager[identityToken->2yu2zx9zrbkq9i6l1kgv|4b07f267]-HelperThread-#2

診断

環境

  • Confluence

  • 任意のデータベースが接続済み

Diagnostic Steps

  • データベースでの性能低下は見られない

原因

このエラーは、データベース、データベースのコネクション プール、およびデータベースで新しいコネクションを取得するための機能に問題が発生している可能性があることを示します。

いずれの理由においても、データベース サーバーがリブートしたり、ネットワーク障害が発生したりすると、利用可能なデータベース コネクション プール内のすべてのコネクションが切断されます。何らかの理由によってコネクション プールが破損し、利用可能なスレッドがプールに準備されていなかった場合、データベースがリクエストを処理するために緊急のデータベース スレッドを作成しようとしており、それによって遅延が発生していることを説明するため、Confluence はこの問題を APPARENT DEADLOCK メッセージとしてログに記録する場合があります。

ソリューション

データベースのコネクション プール内で問題が発生している場合、破損したコネクションを確認してそれを利用可能なプールから削除するための検証クエリを追加する、データベース構成への小規模な変更で問題の影響を軽減することができます。これは新しいインストレーションでは既定で有効化されています (Confluence 6.5 以降) が、Confluence の以前のバージョンからアップグレードした場合、変更を手動で行う必要がある場合があります。

  1. Confluence を停止します。
  2. Perform a safety backup of  <confluence-home>/confluence.cfg.xml
  3. <confluence-home>/confluence.cfg.xml ファイルを編集します。
  4. PostgreSQL、MSSQL、MySQL 用に次のプロパティを追加します。

    <property name="hibernate.c3p0.preferredTestQuery">select 1</property>
  5. confluence.cfg.xml を保存します。
  6. Confluence を再起動します。

(warning) Oracle データベースを使用している場合、検証クエリは次のように少し異なるものになります。 

<property name="hibernate.c3p0.preferredTestQuery">select 1 from dual</property>

データソースに接続されたデータベースでの検証クエリの構成方法の詳細については「データベース コネクションのクローズに対処する」ドキュメントをご参照ください。 


(info)  Note that this setting doesn't apply to Confluence versions > 7.12.0 due to the implementation of CONFSERVER-62338: Update Default Confluence Configuration.


説明 Confluence ログに APPARENT DEADLOCK メッセージが頻繁に表示される
製品Confluence

Last modified on Mar 21, 2024

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.