レプリケーションエージェントは、次の目的で使用されるメカニズムとして Adobe Experience Manager(AEM)の中核を成すものです。
要求は適切なエージェントに登録され、処理を待機します。
ユーザーデータ(ユーザー、ユーザーグループおよびユーザープロファイル)は、オーサーインスタンスとパブリッシュインスタンスの間でレプリケートされません。
パブリッシュインスタンスが複数ある場合は、ユーザーの同期が有効化されたときにユーザーデータが Sling 分配されます。
パブリッシュインスタンスまたは Dispatcher へのレプリケーションは、いくつかの段階を踏んで実行されます。
作成者が特定のコンテンツの公開(アクティベート)を要求します。これは、手動の要求または設定済みの自動トリガーによって開始できます。
デフォルトの適切なレプリケーションエージェントに要求が渡されます。このようなアクションのために選択されるデフォルトエージェントを、1 つの環境にいくつか用意することができます。
レプリケーションエージェントがコンテンツを「パッケージ化」して、レプリケーションキューに配置します。
「Web サイト」タブで、個々のページに対して色付きのステータスインジケーターが設定されます。
設定されたプロトコル(通常は HTTP)を使用して、コンテンツがキューから取り出されて、パブリッシュ環境に移されます。
パブリッシュ環境内のサーブレットが要求を受信し、受信したコンテンツを公開します。デフォルトのサーブレットは http://localhost:4503/bin/receive
です。
複数のオーサー環境とパブリッシュ環境を設定できます。
一部の機能は、ユーザーに対してパブリッシュインスタンス上でのデータ入力を許可します。
状況によっては、このデータをオーサー環境に返してそこから別のパブリッシュ環境へ再分配するために、リバースレプリケーションという種類のレプリケーションが必要になることがあります。セキュリティ上の配慮から、発行から作成者環境へのトラフィックは厳密に制御する必要があります。
リバースレプリケーションでは、オーサー環境を参照するパブリッシュ環境内のエージェントを使用します。このエージェントが、データをアウトボックスに配置します。このアウトボックスは、オーサー環境のレプリケーションリスナーに対応付けられています。リスナーはアウトボックスをポーリングして、入力されているすべてのデータを収集し、必要に応じて配布します。これにより、オーサー環境がすべてのトラフィックを確実に制御できるようになります。
その他の場合、例えばフォーラム、ブログ、コメント、レビューなどのコミュニティ機能では、パブリッシュ環境に入力されるユーザー生成コンテンツ(UGC)の量が多いので、AEM インスタンス間の効率的な同期をレプリケーションで実現することは難しくなります。
AEM コミュニティは、UGCのレプリケーションを使用しません。 代わりに、Communities向けのデプロイメントにはUGC用の共通ストアが必要です(コミュニティコンテンツストレージを参照)。
AEM の標準インストールに含まれている Geometrixx Web サイトを使用して、レプリケーションの仕組みを見ていきましょう。
この例に従ってデフォルトのレプリケーションエージェントを使用するには、AEMを次のコマンドでインストールする必要があります。
4502
)4503
)以下はデフォルトで有効になっています。
事実上、以下はデフォルトで無効になっています(AEM 6.1 以降)。
エージェントまたはキューのステータスを確認するには、ツールコンソールを使用します。
レプリケーションエージェントの監視を参照してください。
作成者環境のサポートページに移動します。
http://localhost:4502/content/geometrixx/en/support.html
ページを編集して、新しいテキストをいくつか追加します。
ページをアクティベートして変更内容を公開します。
公開環境のサポートページを開きます。
http://localhost:4503/content/geometrixx/en/support.html
オーサー環境で入力した変更内容を確認できます。
このレプリケーションは、次のエージェントによってオーサー環境から実行されます。
デフォルトエージェント(発行)
このエージェントは、デフォルトの発行インスタンスにコンテンツを複製します。
この詳細(設定とログ)は、作成者環境のツールコンソールからアクセスできます。または
http://localhost:4502/etc/replication/agents.author/publish.html
.
次に示すエージェントは標準の AEM インストールで使用できます。
デフォルトのエージェント — 作成者から発行への複製に使用されます。
ディスパッチャーフラッシュ — ディスパッチャーキャッシュの管理に使用します。詳しくは、オーサリング環境からのディスパッチャーキャッシュの無効化および発行インスタンスからのディスパッチャーキャッシュの無効化を参照してください。
逆複製 — 発行から作成者への複製に使用します。フォーラム、ブログ、コメントなどのコミュニティ機能では、逆複製は使用されません。 Outboxが有効になっていないので、有効にすると無効になります。 逆複製を使用する場合は、カスタム構成が必要です。
静的エージェント — 「ノードの静的表現をファイル・システムに保存するエージェント」。 例えば、デフォルト設定では、コンテンツページとdamアセットは、HTMLまたは適切なアセット形式で/tmp
に保存されます。 設定については、Settings
タブとRules
タブを参照してください。 これは、ページがアプリケーションサーバーから直接要求される場合に、コンテンツを確認できるようにするためのエージェントです。これは特殊なエージェントであり、(おそらく)ほとんどのインスタンスでは必要ありません。
ツールコンソールからレプリケーションエージェントを設定する場合は、ダイアログ内の 4 つのタブを使用できます。
名前
レプリケーションエージェントの一意の名前です。
説明
このレプリケーションエージェントの用途の説明です。
有効
現在レプリケーションエージェントが有効かどうかを示します。
エージェントが有効な場合は、キューが次のように表示されます。
シリアル化の種類
シリアル化の種類です。
再試行遅延
問題が発生した場合の、2 回の再試行の間の遅延(ミリ秒単位の待機時間)です。
デフォルト: 60000
エージェントユーザー ID
環境に応じて、エージェントはこのユーザーアカウントを使用して次の処理をおこないます。
システムユーザーアカウント(sling で管理者ユーザーとして定義したアカウント。デフォルトでは、admin
です)を使用するには、このフィールドを空白のままにします。
オーサー環境におけるエージェントの場合、このアカウントには、レプリケーションしたすべてのパスに対する読み取りアクセス権が必要です。**
パブリッシュ環境におけるエージェントの場合、このアカウントでコンテンツをレプリケーションするには、作成/書き込みアクセス権が必要です。
これは、レプリケーション用の特定のコンテンツを選択するためのメカニズムとして使用できます。
ログレベル
ログメッセージに使用する詳細レベルを指定します。
Error
:エラーのみがログに記録されますInfo
:エラー、警告、およびその他の情報メッセージがログに記録されますDebug
:メッセージでは、主にデバッグ目的で詳細の高いレベルが使用されますデフォルト: Info
リバースレプリケーションに使用
このエージェントをリバースレプリケーションに使用するかどうかを示します。パブリッシュ環境からオーサー環境にユーザーの入力を戻します。
エイリアスの更新
このオプションを選択すると、Dispatcher へのエイリアスまたはバニティーパスの無効化要求が有効になります。また、「ディスパッチャーフラッシュエージェントの設定」も参照してください。
URI
ターゲットの場所にある受信側のサーブレットを指定します。具体的には、ホスト名(またはエイリアス)とターゲットインスタンスのコンテキストパスを指定できます。
次に例を示します。
http://localhost:4503/bin/receive
に複製できますhttp://localhost:8000/dispatcher/invalidate.cache
に複製できますここで指定するプロトコル(HTTP または HTTPS)によってトランスポート方法が決まります。
ディスパッチャーフラッシュエージェントの場合、URIプロパティは、パスベースの仮想ホストエントリを使用してファームを区別する場合にのみ使用されます。このフィールドを使用して、無効にするファームをターゲットします。 例えば、ファーム #1 の仮想ホストは www.mysite.com/path1/*
で、ファーム #2 の仮想ホストは www.mysite.com/path2/*
です。この場合、/path1/invalidate.cache
の URL を使用して最初のファームをターゲット設定し、/path2/invalidate.cache
を使用して 2 つ目のファームをターゲット設定できます。
User
ターゲットへのアクセスに使用するアカウントのユーザー名です。
パスワード
ターゲットへのアクセスに使用するアカウントのパスワードです。
NTLM ドメイン
NTML 認証用のドメインです。
NTLM ホスト
NTML 認証用のホストです。
緩和された SSL を有効にする
自己証明 SSL 証明書を受け取る場合に有効にします。
期限切れの証明書を許可する
期限切れ SSL 証明書を受け取る場合に有効にします。
以下の設定は、プロキシが必要な場合にのみおこないます。
プロキシホスト
トランスポートに使用するプロキシのホスト名です。
プロキシポート
プロキシのポートです。
プロキシユーザー
使用するアカウントのユーザー名です。
プロキシパスワード
使用するアカウントのパスワードです。
プロキシ NTLM ドメイン
プロキシの NTLM ドメインです。
プロキシ NTLM ホスト
プロキシの NTLM ドメインです。
インターフェイス
ここでは、バインド先のソケットインターフェイスを定義できます。
接続の作成時に使用するローカルアドレスを設定します。設定しない場合は、デフォルトのアドレスが使用されます。これは、マルチホームシステムやクラスターシステムで使用するインターフェイスを指定する場合に役立ちます。
HTTP メソッド
使用する HTTP メソッドです。
Dispatcher フラッシュエージェントでは、ほとんどの場合 GET です。この設定を変更しないでください(有効なもう 1 つの値は POST です)。
HTTP ヘッダー
Dispatcher フラッシュエージェントで使用されます。フラッシュする必要のある要素を指定します。
Dispatcher フラッシュエージェントの場合、次の 3 つの標準エントリを変更する必要はありません。
CQ-Action:{action}
CQ-Handle:{path}
CQ-Path:{path}
必要に応じてこれらを使用して、ハンドルまたはパスのフラッシュ時に使用するアクションを指定します。サブパラメーターは動的です。
{action}
複製操作を示す{path}
パスを示します。これらは、要求に関連するパスまたはアクションで置き換えられるので、ハードコーディングする必要はありません。
推奨されるデフォルトのコンテキスト以外のコンテキストに AEM をインストールした場合は、「HTTP ヘッダー」にそのコンテキストを登録する必要があります。次に例を示します。
CQ-Handle:/<*yourContext*>{path}
接続を閉じる
各要求の後に接続を閉じられるようにします。
接続タイムアウト
接続の確立の試行時に適用するタイムアウト(ミリ秒単位)です。
Socket Timeout
接続の確立後のトラフィックの待機時に適用するタイムアウト(ミリ秒単位)です。
プロトコルのバージョン
プロトコルのバージョンです。例えば、HTTP/ の場合は 1.0
1.0 です。
以下の設定を使用して、自動化されたレプリケーションのトリガーを定義します。
デフォルトを無視
オンにすると、デフォルトのレプリケーションからエージェントが除外されます。つまり、コンテンツの作成者がレプリケーションのアクションを実行しても、そのエージェントは使用されません。
変更時
ページが変更されると、このエージェントによるレプリケーションが自動的にトリガーされます。これは主に Dispatcher フラッシュエージェントに使用されますが、リバースレプリケーションにも使用されます。
配布時
オンにすると、配布用にマークされたコンテンツの変更時に、エージェントがそのコンテンツを自動的にレプリケーションします。
オン / オフタイムに達しました
ページに対して定義されたオンタイムまたはオフタイムになると、自動レプリケーションをトリガーします(必要に応じて、ページをアクティベート/アクティベート解除します)。これは主に Dispatcher フラッシュエージェントに使用されます。
受信時
オンにすると、レプリケーションイベントを受信するたびにエージェントがチェーンレプリケーションをおこないます。
ステータス更新がありません
オンにすると、エージェントはレプリケーションステータスの更新を強制しません。
バージョン管理がありません
オンにすると、エージェントはアクティベートされたページのバージョン管理を強制しません。
MSSL を使用してレプリケーションエージェントをパブリッシュインスタンスに接続する方法については、相互 SSL を使用したレプリケーションを参照してください。
オーサー環境の「ツール」タブから、オーサー環境(作成者のエージェント)またはパブリッシュ環境(発行のエージェント)にあるレプリケーションエージェントを設定できます。次の手順は、オーサー環境用のエージェントの設定方法を示していますが、どちらの環境にも使用できます。
Dispatcher がオーサーインスタンスまたはパブリッシュインスタンスの HTTP 要求を処理する場合は、レプリケーションエージェントからの HTTP 要求に PATH ヘッダーが含まれている必要があります。次の手順に加えて、クライアントヘッダーの Dispatcher のリストに PATH ヘッダーを追加する必要があります(/clientheaders(クライアントヘッダー)に関するページを参照してください)。
AEM の「ツール」タブにアクセスします。
「レプリケーション」(フォルダーを開くための左側のウィンドウ)をクリックします。
「作成者のエージェント」(左側または右側のウィンドウ)をダブルクリックします。
適切なエージェント名(リンク)をクリックして、そのエージェントの詳細情報を表示します。
「編集」をクリックして設定ダイアログを開きます。
デフォルトのインストールには、値を十分に指定する必要があります。変更を行った場合は、OKをクリックして保存します(個々のパラメーターの詳細については、レプリケーションエージェント — 構成パラメーターを参照)。
AEM の標準インストールでは、admin
をデフォルトのレプリケーションエージェント内のトランスポート資格情報のユーザーとして指定します。
このユーザーを、必要なパスをレプリケーションする権限を持つ、サイト固有のレプリケーションのユーザーアカウントに変更する必要があります。
リバースレプリケーションは、パブリッシュインスタンスで生成されたユーザーコンテンツをオーサーインスタンスに戻すために使用されます。この機能は、通常はアンケート調査や登録フォームなどで使用されます。
ほとんどのネットワークトポロジは、セキュリティ上の理由により、「非武装地帯(DMZ)」(インターネットなどの信頼できないネットワークに外部サービスを公開するサブネットワーク)からの接続を許可しません。**
通常、パブリッシュ環境は DMZ にあるので、コンテンツをオーサー環境に戻すには、オーサーインスタンスから接続を開始する必要があります。そのためには、次のものを使用します。
AEM コミュニティの場合、レプリケーションは、発行インスタンス上のユーザー生成コンテンツには使用されません。 コミュニティコンテンツのストレージを参照してください。
そのためには、次のものが必要です。
作成者 環境の逆複製エージェント。これは、公開環境のoutboxから情報を収集するためのアクティブなコンポーネントとして機能します。
リバースレプリケーションを使用する場合は、このエージェントをアクティベートします。
発行環境の逆複製エージェント(outbox) これは、「outbox」として機能するパッシブな要素です。作成者環境内のエージェントによって収集された、ユーザー入力はここに配置されます。
コンテンツのみがレプリケートされます。ユーザーデータ(ユーザー、ユーザーグループ、ユーザープロファイル)はレプリケートされません。
複数の発行インスタンス間でユーザーデータを同期するには、ユーザー同期を有効にします。
インストール時には、localhost のポート 4503 で実行されているパブリッシュインスタンスにコンテンツをレプリケートするデフォルトエージェントが既に設定されています。
その他のパブリッシュインスタンスへのコンテンツレプリケーションを設定するには、新しいレプリケーションエージェントを作成し、設定する必要があります。
AEM の「ツール」タブを開きます。
「レプリケーション」を選択し、左側のパネルで「作成者のエージェント」を選択します。
「新規」を選択します。
「タイトル」と「名前」を設定し、「レプリケーションエージェント」を選択します。
「作成」をクリックして新しいエージェントを作成します。
新しいエージェント項目をダブルクリックして、設定パネルを開きます。
「編集」をクリックします。エージェントの設定ダイアログが開きます。「シリアル化の種類」には既に「デフォルト」が定義されているので、そのままにしてください。
「設定」タブで、次のように設定します。
60000
に設定します。Default
のままにします。「トランスポート」タブで、次のように設定します。
新しい発行インスタンスの必要なURIを入力します。例えば、
http://localhost:4504/bin/receive
.
レプリケーションに使用する、サイト固有のユーザーアカウントを入力します。
必要に応じて、その他のパラメーターを設定できます。
「OK」をクリックして設定を保存します。
次に、オーサー環境でページを更新および公開して操作をテストできます。
更新された内容は、前述の手順で設定したすべてのパブリッシュインスタンスに表示されます。
問題が発生した場合は、作成者インスタンスのログを確認できます。 必要な詳細レベルに応じて、Agent Settingsダイアログを使用して、Log LevelをDebug
に設定することもできます。
この設定を「エージェントユーザー ID」と一緒に使用すると、個々のパブリッシュ環境にレプリケーションする別のコンテンツを選択できます。それぞれのパブリッシュ環境に対して、次の手順を実行します。
デフォルトエージェントはインストールに付属しています。ただし、一部の設定については調整が必要です。新しいエージェントを定義する場合も同様です。
AEM の「ツール」タブを開きます。
「導入」をクリックします。
「レプリケーション」を選択し、次に「発行のエージェント」を選択します。
Dispatcher フラッシュ項目をダブルクリックして、概要を開きます。
「編集」をクリックします。エージェントの設定ダイアログが開きます。
「設定」タブで、次のように設定します。
Dispatcher Flush
のままにしておくか、新しいエージェントを作成する場合はシリアル化タイプをのままにするか、新しいエージェントとして設定します。「トランスポート」タブで、次のように設定します。
新しい発行インスタンスの必要なURIを入力します。例えば、
http://localhost:80/dispatcher/invalidate.cache
.
レプリケーションに使用する、サイト固有のユーザーアカウントを入力します。
必要に応じて、その他のパラメーターを設定できます。
ディスパッチャーフラッシュエージェントの場合、URIプロパティは、パスベースの仮想ホストエントリを使用してファームを区別する場合にのみ使用されます。このフィールドを使用して、無効にするファームをターゲットします。 例えば、ファーム #1 の仮想ホストは www.mysite.com/path1/*
で、ファーム #2 の仮想ホストは www.mysite.com/path2/*
です。この場合、/path1/invalidate.cache
の URL を使用して最初のファームをターゲット設定し、/path2/invalidate.cache
を使用して 2 つ目のファームをターゲット設定できます。
推奨されるデフォルトのコンテキスト以外のコンテキストに AEM をインストールした場合は、「拡張」タブで HTTP ヘッダーを設定する必要があります。
「OK」をクリックして、変更を保存します。
「ツール」タブに戻ります。ここから Dispatcher フラッシュエージェント(発行のエージェント)をアクティベートできます。
Dispatcher フラッシュレプリケーションエージェントは、オーサーではアクティブではありません。同等の URI(例:http://localhost:4503/etc/replication/agents.publish/flush.html
)を使用すると、パブリッシュ環境で同じページにアクセスできます。
etc/replication
ノードに対するユーザーまたはグループのページの権限を使用して、レプリケーションエージェントの設定に使用するページへのアクセスを制御できます。
このような権限の設定は、例えば Web サイトコンソールやサイドキックのオプションからコンテンツをレプリケーションするユーザーには影響を及ぼしません。レプリケーションフレームワークでは、ページのレプリケーション時に、現在のユーザーの「ユーザーセッション」を使用してレプリケーションエージェントにアクセスしません。
[注意!]
レプリケーションエージェントの作成は、
/etc/replication
リポジトリの場所でのみサポートされます。 これは、関連するACLを正しく処理するために必要です。 ツリーの別の場所にレプリケーションエージェントを作成すると、不正アクセスが発生する可能性があります。
CRXDE Lite を使用して、レプリケーションエージェントの様々なパラメーターを設定できます。
/etc/replication
に移動すると、次の3つのノードが表示されます。
agents.author
agents.publish
treeactivation
2つのagents
は、適切な環境に関する設定情報を保持し、その環境が実行中の場合にのみアクティブになります。 例えば、agents.publish
はパブリッシュ環境でのみ使用されます。 次のスクリーンショットは、AEM WCMに含まれる、作成者環境の発行エージェントを示しています。
レプリケーションエージェントを監視するには:
AEM の「ツール」タブにアクセスします。
「レプリケーション」をクリックします。
適切な環境のエージェントへのリンクをダブルクリックします(左右いずれかのウィンドウ)。例えば、「オーサーのエージェント」などです。
ウィンドウが開き、オーサー環境のすべてのレプリケーションエージェントの概要が、それぞれのターゲットとステータスを含めて表示されます。
適切なエージェント名(リンク)をクリックして、そのエージェントの詳細情報を表示します。
ここでは、以下のことができます。
パブリッシュインスタンスのリバースレプリケーションアウトボックスには、「接続をテスト」リンクは使用しないでください。
アウトボックスクエリ用にレプリケーションテストが実行されると、リバースレプリケーションのたびに、テストレプリケーションより古い項目がすべて再処理されます。
そのような項目がキュー内に既に存在する場合は、次の XPath JCR クエリを使用して検索し、削除する必要があります。
/jcr:root/var/replication/outbox//*[@cq:repActionType='TEST']
バッチレプリケーションは、個々のページまたはアセットを複製しませんが、時間やサイズに基づく2つの最初のしきい値がトリガーされるのを待ちます。
次に、すべてのレプリケーションアイテムをパッケージにパックし、1つのファイルとしてパブリッシャにレプリケートします。
発行者はすべての項目を解凍し、保存して発言者に報告します。
http://serveraddress:serverport/siteadmin
に移動します。http://serveraddress:serverport/etc/replication/agents.author/publish.html
に直接移動して、デフォルトの発行レプリケーションエージェントに到達することもできます[!UICONTROL Enable Batch Mode]
— バッチレプリケーションモードを有効または無効にします[!UICONTROL Max Wait Time]
— バッチ要求が開始されるまでの最大待機時間(秒)。デフォルト値は 2 秒です。[!UICONTROL Trigger Size]
— このサイズ制限に達した場合のバッチレプリケーション(MB単位)を開始します。デフォルト値は 5 MB です。トラブルシューティングの詳細については、レプリケーションのトラブルシューティングページを参照してください。
Adobe では、追加情報として、レプリケーションに関連する一連のナレッジベースの記事を提供しています。
https://helpx.adobe.com/jp/experience-manager/kb/ReplicationSiblingReordering.html
https://helpx.adobe.com/jp/experience-manager/kb/ReplicationFailureAfterNewIP.html
https://helpx.adobe.com/jp/experience-manager/kb/LimitAccessToReplicationAgents.html
https://helpx.adobe.com/jp/experience-manager/kb/PagePermissionsNotReplicatedWithUser.html
https://helpx.adobe.com/jp/experience-manager/kb/HowToUseReverseReplication.html
https://helpx.adobe.com/jp/experience-manager/kb/CQ5ReplicateToSpecificAgents.html
https://helpx.adobe.com/jp/experience-manager/kb/ReplicationListener.html
https://helpx.adobe.com/jp/experience-manager/kb/replication-stuck.html
https://helpx.adobe.com/jp/experience-manager/kb/replication-privileges-missing-after-upgrade-to-cq-5-5.html
https://helpx.adobe.com/jp/experience-manager/kb/CQ53UnableToCreateJobQueueDueToMaxQueues.html
https://helpx.adobe.com/jp/experience-manager/kb/ACLReplication.html
https://helpx.adobe.com/jp/experience-manager/kb/content-grow-due-reverse-replication.html
https://helpx.adobe.com/jp/experience-manager/kb/ReplicationAgentUsingAnonUser.html