Adobe Experience Manager レプリケーションに関するよくある質問

Adobe Experience Manager では、次の場合にレプリケーションエージェントが使用されます。

  • 作成者から公開環境へコンテンツを公開(アクティブ化)します。
  • ディスパッチャーキャッシュからコンテンツを明示的にフラッシュします。
  • ユーザー入力(例えば、入力フォーム)を公開環境からオーサー環境(オーサー環境の制御下で)に返します。

この記事では、AEM のレプリケーション機能の使用に関連するよくある質問について説明します。 

多くの兄弟とページを複製することは時間がかかります

1 つのレベルにすべての兄弟ページを含める代わりに、サブレベルを作成し、それに従ってページを配布します。1 つのレベルに、約 100 ページは含むことができます。詳しくは、https://helpx.adobe.com/jp/experience-manager/kb/ReplicationSiblingReordering.html を参照してください。

IP 更新後に複製エラーが発生しました

ホスト名の代わりに IP を使用するように、インスタンスを再起動するか、複製エージェントを再設定します。詳しくは、https://helpx.adobe.com/jp/experience-manager/kb/ReplicationFailureAfterNewIP.html を参照してください。

複製エージェントへのアクセスの制限

この設定は、etc/Replication の下(つまり /etc/replication ノード)のユーザー/グループページ権限を使用してこの設定を制御できます。詳しくは、https://helpx.adobe.com/jp/experience-manager/kb/LimitAccessToReplicationAgents.html を参照してください。

ページの権限は、ユーザーのアクティベーションにレプリケートされません。

ページ権限は、アクセスが許可されているノードの下に保存されるので、ユーザーにレプリケートされません。

一般に、ページの権限は、作成者から公開し、デフォルトではレプリケートしないようにしてください。これは、この 2 つの環境でアクセス権が異なるからです。したがって、作成者とは別に ACL を発行者に設定することをお勧めします。詳しくは、https://helpx.adobe.com/jp/experience-manager/kb/PagePermissionsNotReplicatedWithUser.html を参照してください。

リバースレプリケーションを使用

すぐに使える、cq: ページのみノードが、リバースレプリケーションされています。その他のノードについては、プロジェクト固有の実装として 2 つの最後のメソッドを使用する必要があります。

3 つの可能性があります。

  1. SlingPostServlet(カスタム post サーブレットまたは POST.jsp を作成しない)を使用して、関連する PageEvent を暗黙的にトリガーするように、post を作成しません。次に、プロパティ名「cq : distribution」を設定し、複製するノードで値を「true」に設定します。このソリューションを実装するには、任意のコードを記述する必要はありません。。Form コンポーネントを使用して、必要な非表示フィールドをすべて設定できます。
  2. リポジトリにアクセスする独自のコードを使用して、プロパティ "cq:lastModified"、"cq:lastModifiedBy" および "cq:distribute" を変更します。投稿済みデータは制御でき、内部コードはデータを書き込みます。このソリューションを実装するには、プロジェクトのコードを記述する必要があります。
  3. 配布モードを使用するオプションとともに、Replicator サービスからレプリケートメソッドを呼び出す独自のコードを使用します。レプリケーションはコードから制御されます。このソリューションを実装するには、プロジェクトに固有のコードを記述します。
詳しくは、https://helpx.adobe.com/jp/experience-manager/kb/HowToUseReverseReplication.html を参照してください。

特定のレプリケーションエージェントのアクティベート方法

AgentFilterReplicationOptions オブジェクトを作成できます:

ReplicationOptions opts = new ReplicationOptions();
opts.setFilter(new AgentFilter(){
public boolean isIncluded(final Agent agent) {
return "expectedAgentId".equals(agent.getId());
}
});

then use the Replicator"s replicate method:

/**
* 提供されたオプションを使用して新しいレプリケーションをトリガー。
*
* @param session user session
* @param type The type of replication
* @param path The path specified the content to be replicated
* @param options Additional replication options
* @throws ReplicationException if an error occurs
*/
void replicate(Session session, ReplicationActionType type, String path,
ReplicationOptions options)

詳しくは、https://helpx.adobe.com/jp/experience-manager/kb/CQ5ReplicateToSpecificAgents.html を参照してください。

レプリケーションイベントリスナーの実装方法

  1. EventHandler インターフェイスを実装するクラスを作成します。
  2. 次の SCR 注釈を追加します。
    @scr.component metatype="false" immediate="true"
  3. @scr.service interface="org.osgi.service.event.EventHandler" @scr.property name="event.topics" valueRef="ReplicationAction.EVENT_TOPIC"
  4. public void handleEvent(Event event) method メソッドを実装します。
詳しくは、https://helpx.adobe.com/jp/experience-manager/kb/ReplicationListener.html を参照してください。

レプリケーションキューの問題

CQ5 コンテンツのレプリケーションがブロックされているようです

エディターは、コンテンツを作成することができますが、アクティベートされたページは CQ5 パブリッシュインスタンスでアップロードされません。

各レプリケーションエージェントが正しく有効化および、設定されていることを確認してください

  1. 複製エージェント(/etc/replication/agents.author.html)に移動します。 
  2. レプリケーションエージェントごとに、次の操作を行います。
  • エージェントが有効であることを確認します。 
  • 「接続をテスト」をクリックして、パブリッシュインスタンスとの接続を確認します。失敗した場合は、TCP ネットワークレベルで、CQ Author インスタンスをホストするサーバーが発行インスタンスのポートに接続できることを確認します。
  • 「ログを表示」リンクを使用して複製ログを開き、最後の複製試行が正常に行われたことを確認します。
  • レプリケーションキュー内の最初のペイロードパスに注意してください。次に、レプリケーションキューの最初のエレメントのクリアを試行します。次に、レプリケーションが再開されるかどうかを検証します (CQ 5.4 以降)。再開したら、キューにある最初のペイロードを再度アクティブにします。
  • CRX コンテキストエクスプローラーをチェックし、/bin/receive ノードがパブリッシュインスタンスにないことを確認します。それ以外の場合は、削除します。
  • CRX コンテキストエクスプローラーをチェックして、作成者インスタンスに /bin/replicate ノードがないことを確認します。それ以外の場合は、削除します。 
  • ログに数分間レプリケートの試行が表示されない場合は、Felix コンソールでレプリケーションバンドルを再起動します。まだレプリケーションログにレプリケーションの試行がない場合は、イベントサポート Apache Sling バンドルを再起動します。
    (http://<host>:<port>/system/console/bundles/org.apache.sling.event)
詳しくは、https://helpx.adobe.com/jp/experience-manager/kb/replication-stuck.html を参照してください。

CQ 5.5 をアップグレード後に不明のレプリケーション権限

レプリケーションの権限は、CQ 5.5 で呼び出される crx:レプリケートに導入された新しいプロパティのため、失われます。

問題を修正するスクリプトを含むパッケージである添付ファイルを見つけることができます。CQ 5.5 にアップグレードする前に、それを実行します。詳しくは、https://helpx.adobe.com/jp/experience-manager/kb/replication-privileges-missing-after-upgrade-to-cq-5-5.html を参照してください。

CQ 5.3:最大ジョブキュー数による制限のための複製エージェントの不機能

この問題の原因は、org.apache.sling.event.impl.JobEventHandler がシステムが作成できるジョブキュー数に 10 のデフォルト制限があるためです。

ソリューション
は必要に応じてジョブキュの最大数を増大させることです(キューの数は設定されたレプリケーションエージェントの数 + ワークフローモデルの数より大きくなければなりません)

  1. Felix コンソールにログインします(http://host:port/system/console/configMgr)。 
  2. Felix コンソールの「設定」タブに移動します。 
  3. ドロップダウンリストから「Apache Sling Job Event Handler(org.apache.sling.event.impl.JobEventHandler)」を選択します。 
  4. 「ジョブキューの最大」値を変更します。 
  5. 「保存」をクリックします。

詳しくは、https://helpx.adobe.com/jp/experience-manager/kb/CQ53UnableToCreateJobQueueDueToMaxQueues.html を参照してください。

ACL レプリケーション

ACLs を(つまり、作成者インスタンスから発行インスタンスに)複製することはできません。この動作はデザインによって行われます。

CQ5 の ACLs はコンテンツ中心で、CQ4のようにユーザーを中心としているものではありません。通常、コンテンツの観点から発行および作成者の権利に関して異なるアクセス権が与えられています。このため、コンテンツ中心の ACLs を複製する意味はもはやありません。

CUG(閉鎖的ユーザーグループ)とともに、Adobe はすぐに使用できるソリューションを使用しています。ページの pageprops では、特定の CUG によってこのページ(およびすべてのサブページ)を保護できます。つまり、特定のグループのメンバーになっているユーザーのみがアクセス権を持っています。ページが認証された場合、公開されている ACL は自動的に公開設定にされます。詳しくは、https://helpx.adobe.com/jp/experience-manager/kb/ACLReplication.html を参照してください。

リバースレプリケーションによるコンテンツの変化

リポジトリは速度が増加(1 分あたり数メガバイト)し、リバースレプリケーションに関するエラーを記録します。
たとえば、「WARN[リバースレプリケーションプロセッサー]com.day.cq.replication.Agent.publish_reverse リバースレプリケーションは、実行されません:テスト。リモート送信パス:/var/replication/outbox」

パブリッシュインスタンスで、パブリッシュボックスから項目を手動で検索して削除します。

今後この問題を回避するため、CQ 5.6 をアップグレードするか、リバースレプリケーションエージェントで「接続をテスト」ボタンは使用しないでください。

リバースレプリケーションで同様の問題がある場合は、Adobe サポートで既存のホットフィックスをご確認ください。(または CQ 5.4. のホットフィックスの推奨のリストを参照してください)

詳細については、https://helpx.adobe.com/jp/experience-manager/kb/content-grow-due-reverse-replication.html を参照してください。

レプリケーションエージェントが匿名ユーザーをトランスポートユーザーとして使用する

正しい ACL 権限を持つレプリケーションエージェントがあります。ただし、このエージェントでレプリケートしようとすると、次の情報がレプリケーションログに表示されます。

13.06.2007 12:34:36 *INFO * author: << Date: Wed, 13 Jun 2007 10:34:36 GMT 13.06.2007 12:34:36 *INFO * author: << error: java.security.AccessControlException: User 'anonymous' not allowed rights '---c-' on handle /content/playground/en 13.06.2007 12:34:36 *INFO * author: Message sent.13.06.2007 12:34:36 *INFO * author: ---------------------------
この問題に対処するには、ターゲットインスタンスの匿名ユーザーに対する /system/replication/content の読み取りアクセスを拒否します。詳しくは、https://helpx.adobe.com/jp/experience-manager/kb/ReplicationAgentUsingAnonUser.html を参照してください。

アドビのロゴ

アカウントにログイン