Sie sehen sich Hilfeinhalte der folgenden Version an:

Überblick

Mit dieser Funktion können Sie prüfen, ob vorhandene AEM-Instanzen aktualisiert werden können, indem Sie verwendete Muster ermitteln, die:

  1. Gegen bestimmte Regeln verstoßen und Bereiche betreffen, die durch das Upgrade überschrieben werden.
  2. Eine Funktion von AEM 6.x oder eine API verwenden, die nicht in AEM 6.4 abwärtskompatibel ist und nach der Aktualisierung möglicherweise nicht mehr funktioniert.

Dies kann als Bewertungsgrundlage für den erforderlichen Entwicklungsaufwand bei der Aktualisierung auf AEM 6.4 dienen.

Einrichtung

Der Musterdetektor wird im neuen Pre-Upgrade-Paket für die AEM-Versionen 6.1 bis 6.3 veröffentlicht und kann mit dem Package Manager installiert werden.

Die folgenden Links führen zu den Paketen für die einzelnen AEM 6-Versionen (beginnend mit AEM 6.1):

 

Verwendung

Hinweis:

Der Musterdetektor ist als integraler Bestandteil von AEM 6.4 konzipiert. Um die Erkennungsrate zu erhöhen und das System nicht zu verlangsamen, wird jedoch empfohlen, den Musterdetektor in einer Stagingumgebung auszuführen, die möglichst nah an die Produktionsumgebung heranreicht, was Benutzeranwendungen, Content und Konfigurationen betrifft.

Sie haben verschiedene Möglichkeiten, das Ergebnis des Musterdetektors zu prüfen:

  • Über die Felix Inventory-Konsole:
  1. Navigieren Sie zur AEM Web-Konsole unter http://serveraddress:serverport/system/console/configMgr.

  2. Wählen Sie Status - Musterdetektor aus, wie im Bild unten dargestellt:

    screenshot-2018-2-5pattern-detector
  • Über eine auf reaktivem Text basierende oder die reguläre JSON-Schnittstelle
  • Über eine reaktive JSON Lines-Schnittstelle, die in jeder Zeile ein separates JSON-Dokument erstellt.

Beide Methoden werden im Folgenden erläutert:

Reaktive Schnittstelle

Mit einer reaktiven Schnittstelle kann der Bericht zu den Verstößen verarbeitet werden, sobald ein Problem erkannt wird.

Die Ausgabe ist zurzeit unter 2 URLs verfügbar:

  1. Nur-Text-Schnittstelle
  2. JSON-Schnittstelle

Handhabung der Nur-Text-Schnittstelle

Die in der Ausgabe enthaltenen Informationen sind als Serie von Ereigniseinträgen formatiert. Es gibt zwei Kanäle - einen für die Veröffentlichung von Verstößen und einen zweiten für die Veröffentlichung des aktuellen Fortschritts.

Sie können mit den folgenden Befehlen abgerufen werden:

curl -Nsu 'admin:admin' http://localhost:4502/system/console/status-pattern-detector.txt | tee patterns-report.log | grep SUSPICION

Die Ausgabe sieht folgendermaßen aus:

2018-02-13T14:18:32.071+01:00 [SUSPICION] The pattern=ECU/extraneous.content.usage was found by detector=ContentAccessDetector with id=a07fd94318f12312c165e06d890cbd3c2c8b8dad0c030663db8b4c800dd7c33f message="Cross-boundary overlay of internal marked path /libs/granite/operations/components/commons/commons.jsp/jcr:content referenced at /apps/granite/operations/components/commons/commons.jsp/jcr:content with properties redefined: jcr:lastModifiedBy, jcr:mimeType, jcr:data, jcr:lastModified, jcr:uuid". More info at=https://www.adobe.com/go/aem6_EC

Der Fortschritt kann mit dem Befehl grep gefiltert werden:

curl -Nsu 'admin:admin' http://localhost:4502/system/console/status-pattern-detector.txt | tee patterns-report.log | grep PROGRESS

Dies führt zur folgenden Ausgabe:

2018-02-13T14:19:26.909+01:00 [PROGRESS] emitted=127731/52 MB patterns (from=6.4), analysed=45780/16 MB items, found=0 suspicions so far in period=PT5.005S (throughput=34667 items/sec)
2018-02-13T14:19:31.904+01:00 [PROGRESS] emitted=127731/52 MB patterns (from=6.4), analysed=106050/39 MB items, found=0 suspicions so far in period=PT10S (throughput=23378 items/sec)
2018-02-13T14:19:35.685+01:00 [PROGRESS] Finished in period=PT13.782

Behandlung der JSON-Schnittstelle

JSON kann auf ähnliche Weise mit dem Tool jq verarbeitet werden, sobald die Veröffentlichung erfolgt ist.

curl -Nsu 'admin:admin' http://localhost:4502/system/console/status-pattern-detector.json | tee patterns-report.json | jq --unbuffered -C 'select(.suspicion == true)'

Mit der Ausgabe:

{
  "timestamp": "2018-02-13T14:20:18.894+01:00",
  "suspicion": true,
  "pattern": {
    "code": "ECU",
    "type": "extraneous.content.usage",
    "detective": "ContentAccessDetector",
    "moreInfo": "https://www.adobe.com/go/aem6_ECU"
  },
  "item": {
    "id": "a07fd94318f12312c165e06d890cbd3c2c8b8dad0c030663db8b4c800dd7c33f",
    "message": "Cross-boundary overlay of internal marked path /libs/granite/operations/components/commons/commons.jsp/jcr:content referenced at /apps/granite/operations/components/commons/commons.jsp/jcr:content with properties redefined: jcr:lastModifiedBy, jcr:mimeType, jcr:data, jcr:lastModified, jcr:uuid"
  }
}

Der Fortschritt wird alle 5 Sekunden gemeldet und kann unter Ausschluss der anderen, nicht verdächtigen Benachrichtigungen abgerufen werden:

curl -Nsu 'admin:admin' http://localhost:4502/system/console/status-pattern-detector.json | tee patterns-report.json | jq --unbuffered -C 'select(.suspicion == false)'

Mit der Ausgabe:

{
  "suspicion": false,
  "timestamp": "2018-02-13T14:21:17.279+01:00",
  "type": "PROGRESS",
  "database": {
    "patternsEmitted": 127731,
    "patternsEmittedSize": "52 MB",
    "databasesEmitted": [
      "6.4"
    ]
  },
  "state": {
    "itemsAnalysed": 57209,
    "itemsAnalysedSize": "26 MB",
    "suspicionsFound": 0
  },
  "progress": {
    "elapsedTime": "PT5.003S",
    "elapsedTimeMilliseconds": 5003,
    "itemsPerSecond": 36965
  }
}
{
  "suspicion": false,
  "timestamp": "2018-02-13T14:21:22.276+01:00",
  "type": "PROGRESS",
  "database": {
    "patternsEmitted": 127731,
    "patternsEmittedSize": "52 MB",
    "databasesEmitted": [
      "6.4"
    ]
  },
  "state": {
    "itemsAnalysed": 113194,
    "itemsAnalysedSize": "46 MB",
    "suspicionsFound": 0
  },
  "progress": {
    "elapsedTime": "PT10S",
    "elapsedTimeMilliseconds": 10000,
    "itemsPerSecond": 24092
  }
}
{
  "suspicion": false,
  "timestamp": "2018-02-13T14:21:25.762+01:00",
  "type": "FINISHED",
  "database": {
    "patternsEmitted": 127731,
    "patternsEmittedSize": "52 MB",
    "databasesEmitted": [
      "6.4"
    ]
  },
  "state": {
    "itemsAnalysed": 140744,
    "itemsAnalysedSize": "63 MB",
    "suspicionsFound": 1
  },
  "progress": {
    "elapsedTime": "PT13.486S",
    "elapsedTimeMilliseconds": 13486,
    "itemsPerSecond": 19907
  }
}
{
  "suspicion": false,
  "type": "SUMMARY",
  "suspicionsFound": 1,
  "totalTime": "PT13.487S"
}

Hinweis:

Es empfiehlt sich, die gesamte Ausgabe aus Curl in der Datei zu speichern und diese dann über jq oder grep zu verarbeiten, um einen Informationstyp zu filtern.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie