問題

CQ5/CRX クラスターのスレーブノードまたはマスターノードで実行されているかどうかを認識している OSGi サービスをどのようにして作成しますか?

解決策

CQ5で、ユーザーの記述子の定期的な確認を自動的に処理する ClusterAware インターフェイスを使用できます。  ノードがマスターとして選択されている場合、より簡単に行うことができます。

import com.day.cq.jcrclustersupport.ClusterAware;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Component(metatype = false, policy = ConfigurationPolicy.IGNORE)
@Service(ClusterAware.class)
public class MyClusterAwareService implements ClusterAware {
public void unbindRepository() {
log.info("No Repository is bound or Repository is unbound");
}

public void bindRepository(String repositoryId, String clusterId, boolean isMaster) {
log.info("Bound to Repository {} Node {} (Cluster: {})",
new Object[] { (isMaster ? "Master" : "Slave"), repositoryId, clusterId });
doSomethiing(isMaster);
}

private void doSomething(boolean isMaster) {
//TODO: your code here
}
}

注意:ClusterAware 機能は、Feature Pack 34071 がインストールされている CQ5.3 と、CQ5.4 以降のバージョンにのみ適用されます。

適用対象

CQ 5.3

CQ5.4

CRX 2.1

CRX 2.2

** CQ5.3 でこれを使用する場合は、5.3 Feature Pack 34071 および CRX ホットフィックス 2.1.0.10+ が必要です。  これらのホットフィックスがない場合は、Daycare を使用して要求することができます。

注意:

AEM 5.6.1 以降は新しいトポロジ api を使用します。http://helpx.adobe.com/cq/kb/create-cluster-aware-osgi-service.html に詳細があります

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー