Hochverfügbarkeit mit ThingWorx > ThingWorx Erweiterungen in ThingWorx HA verwalten
ThingWorx Erweiterungen in ThingWorx HA verwalten
In einer ThingWorx HA-Konfiguration werden ThingWorx Erweiterungen in der Datenbank gespeichert und im lokalen Dateisystem zwischengespeichert. Damit soll sichergestellt werden, dass ein neuer ThingWorx Leader die Operationen mit den neuesten in der Datenbank gespeicherten Erweiterungen wieder aufnehmen kann.
Während des Starts überprüft der ThingWorx Leader die Datenbank auf Aktualisierungen von Erweiterungen und wendet sie lokal an. Wenn es eine Diskrepanz zwischen den Erweiterungen in der Datenbank und den Erweiterungen im lokalen Verzeichnis ThingworxStorage/extensions gibt, betrachtet ThingWorx die Datenbankversion als die neueste und die lokale Version von ThingworxStorage/extensions als veraltet.
Import von Erweiterungen
Wenn Erweiterungen importiert werden, führt das System die folgenden Schritte aus:
1. Führt eine Prüfsumme für die ZIP-Erweiterungsdatei aus und speichert sie im Verzeichnis ThingworxStorage/extensions/<Name der Erweiterung> als Datei <Name der Erweiterung>.chk.
2. Entpackt die ZIP-Datei im Verzeichnis ThingworxStorage/extensions/<Name der Erweiterung>.
3. Erstellt eine ExtensionPackage-Entität, stellt sie bereit und speichert sie (und andere Entitäten) in der Datenbank.
4. Speichert die ZIP-Datei und die Prüfsumme in der Datenbank.
Wenn im System während dieser Schritte Fehler auftreten, versucht es, den Import zurückzuziehen. Die ZIP-Datei wird zuletzt gespeichert, sodass, wenn die Erweiterung nicht bereitgestellt werden kann, diese auch nicht für andere Standby-Knoten in der Datenbank bereitgestellt wird, damit keine Beschädigungen verursacht werden.
Prüfung der Erweiterungen von ThingWorx Leadern
Wenn ein ThingWorx Leader gestartet wird, werden für jede Erweiterung die folgenden Schritte ausgeführt:
1. Die Bereitstellung der Erweiterung wird zurückgenommen.
2. Der Prüfsummenwert wird aus der Prüfsummendatei namens ThingworxStorage/extensions/<Name der Erweiterung>/<Name der Erweiterung>.chk gelesen.
3. Der Prüfsummenwert der Erweiterung wird aus der Persistenzebene gelesen.
4. Diese beiden Prüfsummenwerte werden verglichen.
a. Wenn die Prüfsummenwerte identisch sind:
a. ThingWorx betrachtet Datenbankerweiterungen und lokale Erweiterungen als übereinstimmend.
b. Es werden keine Änderungen vorgenommen.
b. Wenn die Prüfsummenwerte nicht übereinstimmen:
a. Die Kopie der ZIP-Datei der Erweiterung wird aus der Persistenzebene gelesen.
b. Sie wird in ein temporäres Verzeichnis extrahiert, z.B. ThingworxStorage/extensions/temp/<Name der Erweiterung><random>.
c. Die alte Version der Erweiterung wird aus ThingworxStorage/extensions/<Name der Erweiterung> gelöscht.
d. Die Kopie der extrahierten ZIP-Datei wird in das alte Erweiterungsverzeichnis ThingworxStorage/extensions/<Name der Erweiterung> kopiert.
e. Eine neue Prüfsummendatei wird im Erweiterungsverzeichnis ThingworxStorage/extensions/<Name der Erweiterung>/<Name der Erweiterung>.chk erstellt.
f. Die Erweiterung wird bereitgestellt.
Wenn im System bei einem der obigen Schritte ein Fehler auftritt, wird versucht, möglichst viel zu bereinigen. Wenn die alte Kopie der Erweiterung nicht durch die Kopie aus der Persistenzebene ersetzt werden kann, wird die alte Kopie geladen.
Entfernung von Erweiterungen
Wenn Erweiterungen gelöscht werden, geschieht Folgendes:
1. Die Bereitstellung der Erweiterung wird zurückgenommen.
2. Die ZIP-Datei wird aus der Datenbank gelöscht.
3. Die ExtensionPackage-Entität wird aus der Datenbank gelöscht.
4. Das Verzeichnis ThingworxStorage/extensions/<Name der Erweiterung> wird gelöscht, einschließlich der Prüfsumme.