PersistenceManager で整合性チェック及び修正を行うとエラーが生じます。
PersistenceManager で整合性チェックを実行し修正をすると、ログに次のエラーのうちの1つまたは複数を取得します。(uuids がこれらのエラーとは異なる場合があります。)
- ChildNode has invalid parent id: 651da1a9-fdbb-49ca-b908-8939d0fb7976 (instead of d3fb8c83-5453-421b-a862-245a4b243af2)
- NodeState 4ee97820-2137-48e0-b664-f804c34eb24f references inexistent child {}node3_etc_workflow_instances_2009-09-22_delete_asset_497741622317431 with id dd7e1f37-9480-4c40-af45-218db4c48190
- NodeState '80b19738-b62b-4a6a-af9b-70f245d2a7bc' references inexistent parent uuid '9b353130-29f4-4825-8c20-03f3a8786e5a'
- javax.jcr.ItemNotFoundException: failed to build path of 46bbf932-3bd1-466d-bf93-7e0c99dc5707: ad09118a-45cb-422d-b201-e0cbc938ade7 has no child entry for 46bbf932-3bd1-466d-bf93-7e0c99dc5707
- ConsistencyCheck: Not repairable: Node 918fea28-f6ab-42bc-aff4-008d073632db has unknown parent: 42d4bb3e-2107-4560-ad54-f309b0db02dc (ConsistencyCheck.java, line 116)
または、検索インデックスを再実行すると、このエラー(同じ uuid が表示されている)で失敗します。
NoSuchItemStateException: deadbeef-cafe-babe-cafe-babecafebabe.
解決策
上記のリストの問題がある場合は、以下のプロセスを実行して破損を修正します。
CRX2.2 までは、古い CRX コンソールを使用します。
- CRX インスタンスの停止(CRX の実行中は CRX コンソールが機能しない)
- コンソールの起動スクリプトを修正する必要がある場合があります。それを行うために、server/console.sh を編集し、REPOSITORY_HOME="$CONTEXT/../repository" を使用して変数 REPOSITORY_HOME="$CONTEXT/crx" を置き換えます。(注意:コンテキストが設定されていない場合コンソールが別のリポジトリを使用するため、単純にスクリプト上に行を追加することはできません。)
- CQ5.3/CRX2.x の場合:server/lib/common/cq-shared-libs-5.3.4.jar を server/lib/container にコピーしてください。
- ターミナルウィンドウで CRX コンソールを開始し、次のコマンドを入力します。crx-quickstart/server
/console.sh - コンソールプロンプトが表示されたら、次のコマンドを入力し管理者としてログインします:
login crx.default admin <pwd>
「ChildNode has invalid parent id」の修正
CRX コンソールで、次の手順に従います。
- 例えば、次のエラーが発生しました。
ChildNode に無効な parent ID があります。INVALID_PARENT_UUID(EXPECTED_PARENT_UUID ではなく)
「正しい」親ノードの低いレベルのビューを得るためにこのコマンドを実行します。
stat EXPECTED_PARENT_UUID
次に子ノードごとの stat を実行し、parentId が EXPECTED_PARENT_UUID で表示されるようにします。
次のようなパッチコマンドを使用している場合に、誤った ID を持つものを修正します。patch -p EXPECTED_PARENT_UUID CHILD_UUID
「NodeState が存在しない child を参照する」を修正する
CRX コンソールで、次の手順に従います。
- 例えば、次のエラーが発生しました。
NodeState 4ee97820-2137-48e0-b664-f804c34eb24f references inexistent child {}node3_etc_workflow_instances_2009-09-22_delete_asset_497741622317431 with id dd7e1f37-9480-4c40-af45-218db4c48190
NodeState の item のパスを取得するためには、次のコマンドを実行してください。stat 4ee97820-2137-48e0-b664-f804c34eb24f- このコマンドの[パス]引数としてこれらのコマンドによって出力されたパスを使用します。
cd [パス]
これらのコマンドを実行し、見つからないの子ノードの参照が削除されたら、ファイルを保存して終了します。rm -c dd7e1f37-9480-4c40-af45-218db4c48190
save
exit- タイムアウトしてもよい場合は、全文検索インデックスの整合性チェックを実行して、検索インデックスから孤立したノードを削除するように修正します。この方法について詳しくは、次の記事を参照してください。あるいは、その後の手順を続けてください。
- その時点で CRX が停止していることを確認します。ファイル名の X が crx-quickstart/repository/workspaces/<workspace>/index/indexes_ X ファイルの最後の文字と一致する、crx-quickstart/repository/workspaces/<workspace>/index/ に redo_X.log の名前でファイルを作成します。
ファイルに次のように入力します。1 DEL dd7e1f37-9480-4c40-af45-218db4c48190
1 COM - CRX を起動します
- すべてが正常に起動されている場合は、CRX の起動時に logs/crx/error.log に次のようなログメッセージが表示されます。
*INFO * Recovery: Found uncommitted redo log.Applying changes now... (Recovery.java, line 82)
*INFO * Recovery: Redo changes applied. (Recovery.java, line 85)
「References inexistent parent uuid」および「ConsistencyCheck : Not repairable : Node ... has unknown parent :」の修正
CRX コンソールで、次の手順に従います。
- 例えば、次のエラーが発生しました。
NodeState '80b19738-b62b-4a6a-af9b-70f245d2a7bc' references inexistent parent uuid '9b353130-29f4-4825-8c20-03f3a8786e5a' - これらのコマンドを実行して孤立している子ノードを削除し、保存して終了します。
rm [80b19738-b62b-4a6a-af9b-70f245d2a7bc]
save
exit - タイムアウトしてもよい場合は、全文検索インデックスの整合性チェックを実行して、検索インデックスから孤立したノードを削除するように修正します。これを行う方法については、記事 & amp;nbsp;を参照してください。またはその後の手順を続けてください。
- その時点で CRX が停止していることを確認します。ファイル名の X が crx-quickstart/repository/workspaces/<workspace>/index/indexes_X file の最後の X と一致する、rx-quickstart/repository/workspaces/<workspace>/index/に redo_X.log の名前でファイルを作成します。ファイルに次のように入力します。
1 DEL 80b19738-b62b-4a6a-af9b-70f245d2a7bc
1 COM - CRX を起動します
- すべてが正常に起動されている場合は、CRX 起動時に logs/crx/error に次のようなログメッセージが表示されます。
*INFO * Recovery: Found uncommitted redo log.Applying changes now... (Recovery.java, line 82)
*INFO * Recovery: Redo changes applied. (Recovery.java, line 85)
注意:修正が必要なエラーが多く生じた場合、これらの手順の複数のアイテムを準備できます。
手順4、テキストファイルを開いて、複数の RM コマンドを用意し、CRX コンソールにファイル全体のコンテンツをペーストします。次に例を示します。
RM[<child uuid 1>]
RM[<child uuid 2>]
save
exit
手順6では、次のように redo_ X.log に複数のアイテムを入力します。
1 DEL <child uuid 1>
1 DEL <child uuid 2>
1 COM
これより上の例で使用されているエラーメッセージなどの子ノードの実際の uuids と<child uuid 1>を置き換えます。80b19738-b62b-4a6a-af9b-70f245d2a7bc
「javax.jcr.ItemNotFoundException : ...~のパスをビルドできませんでした。...~の子エントリがありません。」を修正する
CRX コンソールで、次の手順に従います。
- 例えば、次のエラーが発生しました。
javax.jcr.ItemNotFoundException: failed to build path of 46bbf932-3bd1-466d-bf93-7e0c99dc5707: ad09118a-45cb-422d-b201-e0cbc938ade7 has no child entry for 46bbf932-3bd1-466d-bf93-7e0c99dc5707 - 次のコマンドを実行し、孤立子ノードを削除し、保存して CRX コンソールを c 終了します。
rm [46bbf932-3bd1-466d-bf93-7e0c99dc5707]
保存
終了 - タイムアウトしてもよい場合は、全文検索インデックスの整合性チェックを実行して、検索インデックスから孤立したノードを削除するように修正します。この方法について詳しくは、次の記事を参照してください。あるいはその後の手順を続けて下さい。
- CRX が、その時点で終了していることを確認してください。ファイル名の X が crx-quickstart/repository/workspaces/<workspace>/index/indexes_X ファイルの最後の文字と一致する crx-quickstart/repository/workspaces/<workspace>/index/ に redo_X.log の名前でファイルを作成します。
ファイルに次のように入力します。1 DEL 46bbf932-3bd1-466d-bf93-7e0c99dc5707
1 COM - CRX を起動します
- すべてが正常に起動されている場合は、CRX の起動時に logs/crx/error.log に次のようなログメッセージが表示されます。
*INFO * Recovery: Found uncommitted redo log.Applying changes now... (Recovery.java, line 82)
*INFO * Recovery: Redo changes applied. (Recovery.java, line 85)
注意:修正が必要なエラーが多く生じた場合、これらの手順の複数のアイテムを準備できます。
手順4、テキストファイルを開いて、複数の RM コマンドを用意し、CRX コンソールにファイル全体のコンテンツをペーストします。次に例を示します。
RM[<child uuid 1>]
RM[<child uuid 2>]
save
exit
手順 6 で、次のように redo_ X.log に複数のアイテムを入力します。
1 削除<child uuid 1>
1 削除<child uuid 2>
1 COM
これより上の例で使用されているエラーメッセージのような子ノードの実際の uuids と<child uuid 1>を置き換えます。これは46bbf932-3bd1-466d- bf93-7e0c99dc5707
「NoSuchItemStateException : deadbeef-cafe-babe-cafe-babecafebabe」の修正方法
この記事を参照のこと
適用対象
CRX 1.4.x, CRX 2.x
アカウントにログイン