GSB 7.0 Standardlösung

JCR Publisher

Der JCR Publisher stellt eine Brücke zum Übertragen von Inhalten aus einem GSB 7.2 (GSB/CM) Contentrepository in das JCR basierte Contentrepository des GSB 10.1 bereit.

1 Einleitung

Der JCR Publisher berücksichtigt die Dokumentmodelländerungen zwischen dem GSB 7 und GSB 10.1 und das geänderte interne Speicherformat der Dokumenten und deren Properties.

Der JCR Publisher ermöglicht so die initiale Migration von Content aus einem bestehenden GSB 7.2 Contentrepository in ein GSB 10 Contentrepository.

Hier können Sie den JRC-Publisher herunterladen.

1.1. Prinzipielle Arbeitsweise

Der JCR Publisher liest den Content aus einem GSB 7.2 Repository, transformiert diesen in ein GSB 10.1.0 kompatibles Format und importiert den transformierten Content anschließend in ein GSB 10.1.0 Repository.

Der zu migrierenden Content wird hierzu aus einem GSB 7.2 Live Contentrepository (bspw. dem GSB 7.2 Master-Server) gelesen. So wird sichergestellt, dass ausschließlich publizierte Stände bei der Migration mit berücksichtigt werden.

Hinweise:
Ein Export des GSB 7.2 Contents aus dem Redaktionssystem ist prinzipiell auch möglich. Hierbei gilt es aber zu beachten, dass bei dem Export durch den JCR Publisher jeweils der aktuellste Stand eines Dokumentes exportiert wird. Ein ggf. älterer publizierter Stand eines GSB Dokumentes wird bei dieser Konfiguration dann nicht berücksichtigt.
Eine Migration von GSB/CM Inhalte in den GSB 10.0 kann auch mit dem Publisher in der Version 10.1.2 durchgeführt werden, indem das temporärer Migrationsrepository als 10.1.2-er Repository aufgesetzt wird. Nach dem Export des Contents aus dem Migrationsrepository wird das Repository gelöscht und der exportierte Content in ein "produktives Contentrepository" importiert. Dieses produktive Repository kann ein 10.0-er oder aber 10.1-er Repository sein.

Der Import des vom JCR Publisher transformierten Contents in das GSB 10.1.0 Repository wird gegen ein GSB 10.1.0 Live-Repository durchgeführt. D.h. die GSB Dokumente und deren Ablagestruktur werden eins zu eins übernommen. Darüber hinaus benötigte Jackrabbit interne "Metainformationen" wie Events, etc. werden durch den JCR Publisher nicht angelegt. Der Content ist somit noch nicht für eine redaktionelle Bearbeitung geeignet.

Um den transformierten Content in ein GSB 10.1.0 Redaktionssystem importieren zu können, muss dieser abschließend noch aus dem "Migrationsrepository" exportiert und anschließend in das Contentrepository des GSB 10.1.0 Redaktionssystem importiert werden.

Der JCR Publisher ist als Standalone Java-Applikation realisiert, die außer eines Java-Runtime-Environments keine weitere Software benötigt. D.h. die "Connectoren" zu den GSB 7.2 und GSSB 10.0 Content-Repositories sind in der Applikation bereits vorhanden.

Hinweis:

Das CoreMedia CMS und damit auch der GSB 7.2 unterstützt nur Java 8, so dass der JCR Publisher mit Java 8 betrieben werden muss. Es gelten für die Nutzung des JCR Publishers somit die Installations- und Betriebsvoraussetzungen des GSB 7.2.

Die exemplarische Systemd Service-Unit infrastructure/jcrpublisher@service geht davon aus, dass die Java Installation unter /usr/java/default vorhanden ist. Dieser Pfad muss auf einer konkreten Infrastruktur ggf. auf den jeweiligen Installationsordner der Java 8 Installation angepasst werden.

2. Installation

Um den JCR Publisher für die Migration von Inhalten aus einem bestehenden GSB 7.2 in ein GSB 10.1.0 Repository zu verwenden, muss neben dem GSB 7.2 Contentrepository sowohl der JCR Publisher als auch ein temporär für den Import benötigtes JCR Content Repository installiert werden.

Die folgenden Unterkapitel beschreiben jeweils die Installation des JCR Publishers bzw. des JCR Repositories für die Migration.

2.1. Installation des JCR Publishers

Der JCR Publisher wird als Zip-Archiv ausgeliefert. Dieses Zip-Archiv muss auf dem Zielsystem entpackt werden. Der Standard-Installationspfad ist:

/opt/gsbos/software/jcrpublisher

Innerhalb des entpackten JCR Publishers befinden sich im Verzeichnis infrastructure die Beispiel-Laufzeitkonfiguration und eine systemd Service-Unit-Definition zum Starten des Publishers per Systemd.

Das runtime-Verzeichnis (infrastructure/runtime/jcrpublisher-standardlsg) wird analog zum GSB 10.1.0 nach '/opt/gsbos/runtime' kopiert. Dieses enthält eine Beispielkonfiguration für die Migration des Mandanten standardlsg. Diese Beispielkonfiguration kann als Grundlage und Ausgangsbasis für die Anpassung an konkrete Migrationsszenarien genutzt werden, indem die Konfigurationen für den Mandantennamen und die benötigten Endpunkte (GSB 7.2 und GSB 10.1.0 Repositories) an die jeweilige Infrastruktur angepasst werden.

Die Systemd Service-Unit muss nach /etc/systemd/system kopiert werden. Die Service-Unit entspricht vom Aufbau und den Definitionen her den Service-Units des GSB 10.1.0 und stützt sich auf dieselben Annahmen und Konventionen. Ggf. müssen die Definitionen in der Service-Unit an die Vorgaben der Migrationsinfrastruktur angepasst werden (bspw. der Pfad zur Java-Installation).

Auf den möglichen Anpassungen an der Runtime-Konfiguration wird im Kapitel "Runtime-Konfiguration" näher eingegangen.

2.2. Installation des JCR Repositories

Als Ziel für die Contentmigration des JCR Publishers wird ein JCR Repository benötigt. Dabei handelt es sich um ein GSB 10.1.0 Live Repository (s.a. Anmerkungen im Kapitel "Einleitung").

Das JCR Repository für die Migration sollte als dediziertes Migrationsrepsitory aufgesetzt werden, welches nach Abschluss der Contentmigration wieder gelöscht werden kann. Es empfiehlt sich als Vorlage für das Migrationsrepsitory die im GSB 10.1.0 Release vorhandene Runtime-Konfiguration des Master-Repositories zu verwenden (Service-Instanz repository-master). Die exemplarische Runtime-Konfiguration des JCR Publishers stützt sich auf diese Annahme, d.h. in der Runtime ist das Master-Repository (Servername repository.master.example.com und Port 7001) als GSB 10.1.0 Endpunkt für die Migration eingetragen.

Details zur Installation und Konfiguration des GSB 10.1.0 Master-Repositories finden sich in der GSB 10.1.0 Installationsanleitung und können dort nachvollzogen werden.

3. Runtime-Konfiguration

Die Runtime-Konfiguration des JCR Publishers wird anhand der durch Systemd gestarteten `Service-Instanz ermittelt.

Dem Software-Packet liege eine Beispiel-Runtime-Konfiguration für die JCR-Publisher Instanz jcrpublisher-standardlsg bei.

3.1. Aufbau der Runtime-Konfiguration

Die Runtime-Konfiguration ist in der Datei jcrpublisher.properties definiert. Die folgende Definition entspricht der mitgelieferten Beispiel-Runtime-Konfiguration.

###############################################################################
#
# JcrPublisher Konfiguration
#
###############################################################################

customer=standardlsg

# GSB 7.2 Master-Repository
source.ior.url=http://cm.master.example.com:44441/capserver/ior
source.user=webserver
source.password=webserver

# GSB 10 Master-Repository
target.url=http://repository.master.example.com:7001

Die einzelnen Properties sind für ein konkretes Migrationsszenario wie folgt zu definieren:

  • customer enthält den Namen des zu migrierenden Mandanten. An dieser Stelle muss der technische Name des Mandanten angegeben werden.

Sektion GSB 7.2 Master-Repository

  • source.ior.url IOR-Url unter dem das GSB 7.2 Quellrepository erreichbar ist .
  • source.user definert den technischen Benutzer für den Abruf des zu migrierenden GSB 7.2 Contents (Default webserver)
  • source.password Passwort des technischen Benutzers für den Abruf des zu migrierenden GSB 7.2 Contents (Default webserver)

Sektion GSB 10 Master-Repository

  • target.url Url unter der das GSB 10.1.0 Master Repository erreichbar ist und in den der migrierte Content des Mandanten geschrieben wird.

3.2. Bereitstellen der Runtime-Konfiguration

Zur Bereitstellung einer eigenen Runtime-Konfiguration für die Migration des Mandanten MANDANT muss die mitgelieferte Beispielkonfiguration nach jcrpublisher-MANDANT kopiert werden.

In der kopierten Datei jcrpublisher.properties muss dann der Master-Server des zu migrierenden GSB 7.2 Servers in der Sektion GSB 7.2 Repository eingetragen werden. Das Auslesen des GSB 7.2 Contents erfolgt idealerweise mit dem Benutzer "webserver", der im GSB 7.2 auch für den Zugriff der cae-Webapplikation verwendet wird. Eine Anpassung des Benutzers und Passwords ist üblicherweise nicht erforderlich, da dieser Benutzer über hinreichende Rechte zum Auslesen des Contents eines Mandanten verfügt.

In der Sektion GSB 10 Repository der Propertydatei ist die Url des GSB 10.1.0 Live-Repository (Ziel der Migration) einzutragen.

Hinweis:

Es empfiehlt sich für die Durchführung der Migration ein dediziertes "Migrations-Repository" aufzusetzen, welches ausschließlich für die Migration genutzt und anschließend wieder gelöscht werden kann.

Die Nutzung eines ggf. in der Infrastruktur von handenen produktiven Master-Repositories empfiehlt sich nicht, da hier dann Inhalte von produktiven Mandanten und Migrationsinhalte gemischt werden.

4. Durchführung der Migration

Der JCR Publisher wird per Systemd gestartet und gestoppt. Die Befehle hierfür sind z.B. für die Instanz MANDANT:

  • Start des Publishers: systemctl start jcrpublisher@jcrpublisher-MANDANT
  • Stopp des Publishers: systemctl stop jcrpublisher@jcrpublisher-MANDANT

Der Fortschritt des JCR Publishers lässt sich über die Log-Files im Ordner /space/gsbos/logs/jcrpublisher-MANDANT verfolgen.

Nachdem die Inhalte aus dem GSB 7.2 Repository ausgelesen wurden, wird die Einspielung dieser in das JCR Repository gestartet. Der Abschluss dieses Vorgangs wird ebenfalls im Log-File vermerkt. Die relevanten Ausgaben sind wie folgt aufgebaut.

2018-10-04 18:02:45.139 [ INFO] de.bund.gsb.jcrpublisher.tx.TXProvider: Committed
transaction 'http://repository.master.example.com:7001/repository/importagent/transaction/5d12debe-2ea7-47da-8aa5-77a8865e6fe2'

2018-10-04 18:02:45.140 [ INFO] de.bund.gsb.jcrpublisher.JcrPublisherImpl: Synchronisierung abgeschlossen. Benutze für das Listening das Timestamp: 50876:2147483647:28680158 mit folgender Zeit: 04.10.18 17:57

Nachdem die Übernahme der Inhalte in das GSB 10.1.0 Repository abgeschlossen ist (s.a. Logausgabe "Synchronisierung abgeschlossen. …​"), kann der JCR Publisher gestoppt werden.

Anschließend muss der migrierte Content noch aus dem GSB 10.1.0 Master Repository exportiert werden, um diesen anschließend in das GSB 10.1.0 Repository des Contentservers zu importieren. Der Ex- und anschließende Import kann mit den entsprechenden GSB 10.1.0 Standardaufrufen durchgeführt werden, die in der GSB 10.1.0 Dokumentation beschrieben sind.

Hinweis:
Je nach Größe des zu exportierenden Contents kann entweder ein synchroner oder ein asynchroner Export gestartet werden. Im Anschluss hieran liegt der exportierte Content als Zip-Archiv vor, welches anschließend in das GSB 10.1.0 Redaktionssystem eingespielt werden kann.

Bei Verwendung eines dedizierten "Migrations-Repositories" (s.o.) kann dieses im Anschluss an die Migration gelöscht werden.

5 Best Practices

Unter Best Practices/JCR-Publisher befinden sich weitere Informationen zum Einsatz des JCR-Publishers.