Einen Cluster Aware OSGi-Dienst erstellen

Problem

Wie erstelle ich einen OSGi-Dienst, der berücksichtigt, ob er auf einem CQ5-/CRX-Gruppen-Sklavenknoten oder einem Master-Knoten läuft?

Lösung

In CQ5 können Sie die ClusterAware-Schnittstelle verwenden, die regelmäßig automatisch den Deskriptor für Sie überprüft.  Dadurch ist es einfacher, wenn der Knoten als Master ausgewählt ist:

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
  }
}

Hinweis: Die ClusterAware-Funktion ist nur bei CQ5.3 mit installiertem Feature Pack 34071, CQ5.4 und höher verfügbar.

Gilt für

CQ 5.3

CQ 5.4

CRX 2.1

CRX 2.2

** Wenn Sie dieses in CQ5.3 verwenden möchten, benötigen Sie das 5.3 Feature Pack 34071 und CRX hotfix 2.1.0.10+.  Wenn Sie keine dieser Hotfixes haben, können Sie sie über Daycare anfordern.

Hinweis:

Ab AEM 5.6.1 wird eine neue Typologie-api verwendet. Details unter http://helpx.adobe.com/cq/kb/create-cluster-aware-osgi-service.html

 Adobe

Schneller und einfacher Hilfe erhalten

Neuer Benutzer?

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online