AEM Link Checker を無効にする
この記事では、CPU プロファイリング中およびスレッドダンプの分析中にリンクチェックがパフォーマンスに影響を与える問題に対処します。
説明 description
環境
Adobe Experience Manager 6.4
問題/症状
リンクが壊れたときに何の操作も行わないようにリンクチェッカーが設定されている場合、外部リンクチェッカーがリンクを検証できないようにするにはどうすればよいですか? CPU プロファイリングを行い、スレッドダンプを分析する際、リンクチェックはパフォーマンスに影響を与え、オフにする必要があります。
背景: サイトがAEMに読み込まれるたびに、リンクチェッカーはすべてのコンテンツページに埋め込まれたリンクを自動的に確認し、各リンクを「有効」または「無効」としてマークします。
ログに多数のリンクチェッカー警告があるため、インスタンスまたはサイトの速度が低下する場合があります。一部のリンクチェックを無効にするために決定を行うことができます。
注意:パブリッシュインスタンスではリンクチェッカーを有効にしないでください。
解決策 resolution
AEM でリンクチェッカーを無効にしたり、リンクを有効としてマークするように設定する方法
-
ページでのリンクチェックを無効にする:
-
追加
x-cq-linkchecker="valid"
パラメーターを タグ を使用して、リンクが常にリンクチェッカーによって有効とマークされていることを確認します。 -
オプションで使用
x-cq-linkchecker="skip"
(内) タグ リンクチェッカーは、有効性をチェックすることもできません。
-
-
リンクチェッカーを完全に無効にするには、 AEM Web コンソール:
-
AEM Web Console Configuration 1 にアクセスします。
-
を検索 Day CQ Link Checker Transformer.
-
次を確認します。 チェックを無効にする 」ボックスをクリックし、「保存」をクリックします。
-
-
特定のドメインのリンクチェックを無効にする:
-
AEM Web Console Configuration 1 にアクセスします。
-
を検索 Day CQ Link Checker Service.
-
を編集します。 リンクチェック上書きパターン パラメーター。
-
例 1: system/
システムで始まる外部リンクはチェックされません。 「+」をクリックして、このセクションに上書きパターンを追加します。
例 2:
これにより、すべてのリンクが有効な次のリンクとしてマークされます。
推奨:/var/linkchecker の下のすべてのノードを削除して、リンクチェッカーが URL を再確認するのを停止します。
{1}http://[
ホスト]
:[
ポート]
/system/console/configMgr
注意: service.special_link_patterns を使用する場合、リンクチェッカーは引き続き URL をチェックし、文字と構造の点で 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);
%