Confluence の再インデックスがスタックする

お困りですか?

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

コミュニティに質問

プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Fisheye および Crucible は除く

問題

新しく追加されたコンテンツが Confluence によって取得されず、キューのアイテムが増える。ゼロからの再インデックスを行うと問題が解決されるが、これは永続的な解決策ではない。

場合によっては、インデックスのタイムスタンプに誤りがある問題を確認し、それには該当しないことを把握している。

診断

スタック状態の原因を作ったアーティファクト (ページ、アーティファクト、または別の問題) を追跡することは困難で、また、すぐに有益な結果を得ることはできない場合があります。まず、再インデックスに関与する適切なクラスでデバッグ ロギングを有効化する必要があります。これにより、Confluence で再インデックスを行ったときにデバッグ情報を得て、問題のトリガーを確認できます。

Confluence をシャットダウンし、<Confluence のインストール ディレクトリ>/WEB-INF/classes/log4j.properties を次のように編集します。

  1. 最下部に次の行を追加します。

    log4j.logger.com.atlassian.confluence.search.lucene=DEBUG
    log4j.logger.com.atlassian.bonnie.search.extractor.BaseAttachmentContentExtractor=DEBUG
  2. インデックスをゼロから再構築します。これにより、Confluence に全データの再インデックスを行わせます。デバッグ ロギングにより、Confluence が再インデックス中に行っている内容の記録を得られます。
  3. When the number of items in the queue appears to rise without being flushed correctly, we'll need to check the most recent Confluence Logs will contain debug logs for when the queue was last flushed, as well as which attachments were reindex.
  4. 外部のスレッド ダンプをスタック状態のインスタンスから取得して、インデックス スレッドの処理内容やスタック原因を判断することもできます。

    • これは、添付ファイルの読み取りが非常に難しかったり、インデクサーがデータベースやファイル ロックなどの外部リソースを待機していたりする場合に、特に便利です。取得したスレッド ダンプの診断で支援が必要な場合はアトラシアン サポートにお問い合わせください。

デバッグ ログの例

ページの再インデックス中のログです。

2015-08-21 15:08:46,984 DEBUG [Indexer: 1] [confluence.search.lucene.ReindexWorkBatch] indexCollection Index page: Welcome to Confluence v.1 (98310) [com.atlassian.confluence.pages.Page]

添付ファイルの再インデックス中のログです。

2015-08-21 15:08:47,426 DEBUG [Indexer: 3] [confluence.search.lucene.ReindexWorkBatch] indexCollection Index Attachment: test.txt v.1 (1245337) admin [com.atlassian.confluence.pages.Attachment]
2015-08-21 15:08:47,428 DEBUG [Indexer: 3] [bonnie.search.extractor.BaseAttachmentContentExtractor] addFields Starting to index attachment: test.txt

考えられる原因と解決策

さまざまな原因が考えられますが、一般的な原因として次のようなものがあります。

データベースの中断

データベースが断続的に中断されているために再インデックス中に問題が発生しているが、それが素早く解決されるために Confluence 全体は影響を受けていない可能性があります。検証用のクエリを追加することで、データベースへの断続的な接続の問題を解決できます。

複雑な添付ファイル、生成に失敗した添付ファイル、破損した添付ファイル

一部の添付ファイルは読み取り時に問題を発生させます。添付ファイルのインデックスを一時的に無効化して、再インデックスを完了できるようにすることができます。デバッグ ロギングは、プロセスがスタック状態になる前にインデックスが試みられていた添付ファイルを特定するのに役立ちます。問題のある添付ファイルについては、いくつかのオプションがあります。

  1. 対象のタイプの添付ファイルについて、添付ファイルのインデックスを無効化します。これらの添付ファイルのコンテンツ内部を検索することはできなくなります。
  2. 問題のある添付ファイルを削除します。
  3. 添付ファイルをダウンロードして、Confluence から削除します。ダウンロードした添付ファイルを zip ファイルに追加し、zip 化したファイルを Confluence に再添付します。これによって対象のファイルを再インデックスから効果的に除外できます。

Microsoft Office または PDF ドキュメントを生成する一部のサードパーティ プログラムは、ファーストパーティ アプリケーションよりも機能が劣る可能性があります。対象のドキュメントをアプリケーションの最新バージョンで開き、そのアプリケーションで "名前をつけて保存" を行うことで、メタデータの不足を修正できる場合があります。

たとえば、サードパーティ製のあるレポート ツールで生成された Word ドキュメントがあった場合、それを Word で開き、新しいファイルとして保存し、Confluence に再アップロードすることで、Confluence で発生する問題を軽減できる場合があります。このプロセスは保証されたものではなく、すべてのファイルに効果があるとは限りませんが、一部のお客様で効果があったことが確認されています。

環境の問題

スレッド ダンプの分析を通じて、インデクサーのスレッドがファイルのロックやデータベース コネクションなどの外部リソースを待機していることがわかる場合があります。これは他のスケジュール済みのジョブでも発生する可能性があります。詳細については「1 つのジョブがスタックしたときにスケジュール済みのジョブが滞留し、処理に失敗する」をご確認ください。


最終更新日 2022 年 11 月 25 日

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

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