AEM リンクチェッカーを無効にします
この記事では、CPU プロファイルとスレッドダンプ分析中にリンクチェックがパフォーマンスに影響を与えているAdobe Experience Managerの問題について説明します。
説明 description
環境
Adobe Experience Manager 6.4
問題/症状
リンクが破損してもアクションを実行しないようにリンクチェッカーが設定されている場合、外部リンクチェッカーがリンクを検証できないようにする方法を教えてください。 CPU プロファイルを実行し、スレッドダンプを分析する場合、リンクチェックがパフォーマンスに影響を与えており、無効にする必要があります。
バックグラウンド: AEMにサイトが読み込まれると、リンクチェッカーはすべてのコンテンツページに埋め込まれているリンクを自動的に確認し、各リンクに有効または無効のマークを付けます。
ログに多数のリンクチェッカー警告があるため、インスタンスまたはサイトの速度が低下する場合があります。一部のリンクチェックを無効にするために決定を行うことができます。
注意: 公開インスタンスでは、リンクチェッカーを有効にしないでください。
解決策 resolution
AEM でリンクチェッカーを無効にしたり、リンクを有効としてマークするように設定する方法
-
ページでのリンクチェックを無効にします。
-
a タグ
x-cq-linkchecker="valid"パラメーターを追加して、リンクが常にリンクチェッカーによって有効としてマークされるようにします。 -
必要に応じて、a タグ で
x-cq-linkchecker="skip"を使用すると、リンクチェッカーは有効性をチェックしません。
-
-
AEM Web Console でリンクチェッカーを完全に無効にします。
-
AEM Web Console Configuration にアクセスします。1.
-
「Day CQ Link Checker Transformer」を検索します。
-
「Disable Checking」ボックスをオンにして「Save」をクリックします。
-
-
特定のドメインのリンクチェックを無効にします。
-
AEM Web Console Configuration にアクセスします。1.
-
「Day CQ Link Checker Service」を検索します。
-
Link Check Override Patterns パラメーターを編集します。
-
例 1:system/
システムから始まる外部リンクはチェックされません。 「+」をクリックして、追加のオーバーライドパターンをこのセクションに追加します。
例 2:
これにより、今後すべてのリンクが有効としてマークされます。
推奨 :/var/linkchecker の下のすべてのノードを削除して、定期的にリンクチェッカーが URL を再確認するのを停止します。
{1}http://[ host] :[ port] /system/console/configMgr
注意: service.special_link_patterns を使用する場合でも、リンクチェッカーは URL が文字および構造に関して有効かどうかを確認します。
プログラムによって外部リンクチェックを無効にする
このコードをページコンポーネント jsp に追加すると、LinkCheckerSettings.fromRequest(slingRequest).setIgnoreExternals(true を呼び出して外部リンクチェックを実行できなくなります。 ほとんどの場合、パブリッシュ インスタンスにのみ実装し、オーサーには実装しません。 以下に、デモ用のコードを示します。
<%org.apache.sling.runmode.RunMode runmode = sling.getService(org.apache.sling.runmode.RunMode.class);
String[ ] runmodes = runmode.getCurrentRunModes();
boolean isPublish = false;
String [ ] expectedRunModes = {"publish"};
if(runmode.isActive(expectedRunModes)) {
isPublish = true;
}
if(isPublish) {
LinkCheckerSettings s = LinkCheckerSettings.fromRequest(slingRequest);
s.setIgnoreExternals(true);
}
%>
特定のコンポーネントまたはページの一部のリンクチェックのみを無効にする場合は、次のコードを使用して、もう一度有効にすることができます。
<%
s.setIgnoreExternals(false);
%