2020.06

Migration MyCoRe LTS 2019.06 nach 2020.06

Diese Seite fasst Systemanforderungen für die Nutzung des MyCoRe LTS 2020.06 und die Migration von Version 2019.06 zu 2020.06 zusammen.

Systemanforderungen MyCoRe LTS 2020.06

Für den Betrieb einer MyCoRe-Anwendung unter LTS 2020.06 sind folgende Voraussetzungen zu erfüllen:

Betriebssystem

MyCoRe LTS 2020 ist auf diesen Betriebsystemen im Einsatz. Höhere Versionen sollten kein Problem darstellen.

  • Open SuSE Leap 15 / 15.1
  • SuSE SLES 15 / 15.1
  • Ubuntu 18.04 LTS
  • CentOS 8
  • RHEL 8
  • Windows 10 für Test- und Entwicklungssysteme

Standardsoftware

Zur Arbeit mit MyCoRe LTS 2020 sind folgende Softwarekomponenten erforderlich bzw. empfohlen. Diese sind alle von Drittanbietern und im Normalfall in den Distributionen enthalten.

  • Java 11 (OpenJDK) (muss in CentOS/RedHat extern nachinstalliert werden)
  • Tomcat 9.0 bzw. Jetty 9.4.18 (alternativ ein System mit Unterstützung von Servlet-3.1)
  • SOLR 8.5.1 oder höher
  • eine hibernate-fähige relationale Datenbank wie PostgreSQL 10, MySQL/Maria-DB 10, DB2; für Testzwecke genügt auch die integrierte Datenbank H2
  • Git 2.26 oder höher
  • Apache Maven 3.6.0 oder höher

Geänderte Einstellungen

Nachfolgende Grundeinstellungen wurden in den Properties geändert.

*IFS2* - MCR-2275
Standardmäßig ist nun das IFS2 aktiv. Wer noch nicht umgestellt hat, muss das folgende Property lokal setzen um das alte Verhalten zu behalten:

1
 MCR.NIO.DefaultScheme=ifs

*NestedDocuments* - MCR-2210
Ab Solr8 werden Nested Documents von der Solr-API korrekt behandelt und der MyCoRe-eigene Code muss nicht mehr ausgeführt werden. Wer noch mit Solr 7 oder älter arbeitet und NestedDocuments nutzt (z.B. bei MIR), muss das Property lokal setzen:

1
 MCR.Solr.NestedDocuments=true

*DynamicSolrFields* - MCR-2211
Wir haben uns dafür entschieden, dass wie die dynamische Generierung von Solr-Feldern nicht mehr als Default-Verhalten von MyCoRe anbieten wollen. Auch das muss man aktivieren. Wer diese Felder nutzt muss nun also auch lokal das Verhalten einstellen:

1
 MCR.Solr.DynamicFields=true

Migrationsschritte

Migrationskommandos einbinden

Um die Migrationskommandos nutzen zu können, muss die Komponente mycore-migration eingebunden werden.

1
2
3
4
5
 <dependency>
   <groupId>org.mycore</groupId>
   <artifactId>mycore-migration</artifactId>
   <version>2020.06.2-SNAPSHOT</version>
 </dependency>

Solrkonfiguration und Index aktualisieren

Mit der Umstellung auf SOLR 8 muss der Index neu aufgebaut werden. Die Konfiguration der Kerne wird im Abschnitt Solr-Nutzung beschrieben. Nach der Index-Aktualisierung muss im MyCoRe-CLI die Konfiguration neu geladen sowie der Metadaten- und Contentindex neu erstellt werden. Die Kommandos müssen INNERHALB der mycore.sh abgearbeitet werden!

1
2
3
4
 mycore.sh
   -> reload solr configuration main in core main
   -> rebuild solr metadata index in core main
   -> rebuild solr content index in core main

Derivate-Zugriffe

Die Nutzung des Schemas ifs oder ifs2 wird über das Property ‚MCR.NIO.DefaultScheme‘ gesteuert. Mit 2020.06.x ist der Standardwert nicht mehr ‚ifs‘ sondern ‚ifs2‘. Wer bereits eine Anwendung laufen hat und bislang nicht das Property schon auf ‚ifs2‘ gesetzt hatte, muss es also vorerst auf ‚ifs‘ manuell setzten und schauen, ob er einfach migrieren kann. Das ist GANZ WICHTIG!!!

Migration:

1
 MCR.CLI.Classes.Internal=%MCR.CLI.Classes.Internal%,org.mycore.frontend.cli.MCRIFSCommands

Damit werden die alten IFS-Kommandos aktiviert. Das Kommando zum Überprüfen lautet check IFS2 compatibility. Gibt das die Meldung aus: "Your content is ready for MyCoRe LTS 2019“, dann ist alles in Ordnung und man kann mit dem DefaultScheme ifs2 arbeiten. Andernfalls müssen ggf. Punkte zur manuellen Umstellung durchgeführt werden.

  1. Es darf nur einen ContentStore geben und der muss IFS2 sein (MCRCStoreIFS2)
  2. Die MD5-Summen für alle Dateien aus MCRFSNODES muss sich mit den Angaben aus mcrdata.xml decken.

Falls der zweite Punkt fehlschlägt, kann man die MD5-Summen aus MCRFSNODES mit dem Kommando update IFS2 MD5 sums darüberkopieren. Nach erfolgreichen Kompatibilitätscheck kann man die Änderungen an der Properties rückgängig machen und ggf. die Tabelle MCRFSNODES leeren.

Vorteil der Umstellung ist, dass weniger Softwareschichten in der Verarbeitung der Dateien beteiligt werden und damit die Performance besser sein sollte und wir die Fehlerquellen reduzieren können.

REST-API V2

...