Zum Hauptinhalt springen
Hilfecenter

Versionsspezifische Update-Hinweise

Nachschlagewerk der versionsspezifischen Anpassungen bei Updates von teamspace/projectfacts – von 2023.1 (Java 17) über 2023.4 (Connection-Pool) bis 2025.3 (Tomcat 10, Genua-Oberfläche).

Bei bestimmten Versionssprüngen sind einmalige Anpassungen an der Installation nötig. Diese Seite fasst sie nach Version zusammen. Den allgemeinen Ablauf eines Updates beschreibt Update durchführen. Beachte zusätzlich immer die »Pinnwand« in teamspace-classic.

Springst du über mehrere Versionen, arbeite die Hinweise chronologisch ab (von deiner aktuellen Version aufwärts).

Update auf 2025.3

Für 2025.3 (die neue Genua-Oberfläche) müssen Änderungen an der bestehenden Installation vorgenommen werden. Außerdem muss zuvor mindestens Version 2025.2 installiert sein.

  • Wechsel von Tomcat 9 auf Tomcat 10
  • Anpassung der web.xml

Ist die Spezialversion 2025.2-Genua installiert, entfällt der Tomcat-Wechsel – dann kann das Update auf 2025.3 wie gewohnt installiert werden.

Tomcat 9 auf Tomcat 10 umstellen

Genua ist nur mit Tomcat 10 lauffähig. Die Schritte (Pfade können je nach System variieren):

  1. Sichere die ROOT.xml aus der Tomcat-9-Konfiguration.
    • Linux: /srv/tomcat9/conf/Catalina/localhost/ROOT.xml
    • Windows: C:\Program Files\Apache Software Foundation\Tomcat 9.0\conf\Catalina\localhost\ROOT.xml
  2. Sichere die jasper-font-default-1.2.0.jar.
    • Linux: /srv/tomcat9/lib/jasper-font-default-1.2.0.jar
    • Windows: C:\Program Files\Apache Software Foundation\Tomcat 10\lib\jasper-font-default-1.2.0.jar
  3. Deinstalliere Tomcat 9 und installiere Tomcat 10.
  4. Starte den Tomcat einmal, damit alle Pfade angelegt werden.
  5. Stoppe den Tomcat und lege ROOT.xml und jasper-font-default-1.2.0.jar wieder in die ursprünglichen Pfade.
  6. Passe die server.xml an (Linux: /srv/tomcat10/server.xml, Windows: …\Tomcat 10\conf\server.xml):
    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />
    […]
    <Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false">
  7. Passe den Arbeitsspeicher an.
    • Linux (/etc/defaults/tomcat9 bzw. tomcat10):
      JAVA_OPTS="-Djava.awt.headless=true -Xmx2048m"
    • Windows: Im Tomcat-10-Manager den Java-Pfad prüfen, unter Java Options -Dfile.encoding=UTF8 ergänzen und den „Maximum memory pool” anpassen.
  8. Passe den nächtlichen Tomcat-Neustart an.
    • Linux (crontab -e):
      00 4 * * * systemctl restart tomcat10 >/dev/null 2>&1
    • Windows: In C:\projectfacts\scripte\tomcat_restart.bat tomcat9 durch tomcat10 ersetzen.

Update auf 2024.3

Mit 2024.3 muss die web.xml um zwei Einträge ergänzt werden – jeweils in:

  • $basedir\java\webapp\WEB-INF\web.xml
  • $basedir\webapp\WEB-INF\web.xml
<context-param>
   <param-name>app.allowServerCommunication</param-name>
   <param-value>true</param-value>
</context-param>

<listener>
   <display-name>ImageIO service provider loader/unloader</display-name>
   <listener-class>com.twelvemonkeys.servlet.image.IIOProviderContextListener</listener-class>
</listener>

Update auf 2024.1

Mit 2024.1 wird in der MySQL ein Volltext-Index für die Ticket-Vorgänge erstellt. Dabei benötigt die Datenbank kurzzeitig etwa das 3,5-fache des Speicherplatzes der ticketprocessitem-Tabelle. Stelle sicher, dass genug Platz auf der Festplatte ist.

Hast du unter Linux ein tmpfs für die tmpdir-Konfiguration der MySQL eingerichtet, ergänze die innodb_tmpdir-Konfiguration (falls noch nicht vorhanden), z. B. in /etc/mysql/mariadb.conf.d/51-projectfacts.cnf:

tmpdir        = /var/log/mysql/tmp
innodb_tmpdir = /mnt/userfiles/tmp

Die Pfade sind beispielhaft. Auf dem Verzeichnis für innodb_tmpdir muss chmod 1777 tmp ausgeführt werden.

Update auf 2023.4

Mit 2023.4 wurde der Datenbank-Connection-Pool überarbeitet: Statt der eigenen Verwaltung wird nun der Connection-Pool des Tomcat genutzt. Das erhöht einmalig den Aufwand beim Update.

Standardinstallation

Ergänze in der web.xml unter <display-name>projectfacts</display-name> (falls noch nicht vorhanden):

<resource-ref>
   <description>MySQL Database Resource</description>
   <res-ref-name>jdbc/app_db</res-ref-name>
   <res-type>javax.sql.DataSource</res-type>
   <res-auth>Container</res-auth>
</resource-ref>

Stoppe den Tomcat und entferne aus der server.xml folgenden Context-Block. Notiere dir vorher den docBase-Pfad:

<Context path="" reloadable="false" docBase="/srv/projectfacts/webapp/" useHttpOnly="false">
     <Resources cacheMaxSize="65536" />
     <Manager pathname="" />
     <Valve className="org.apache.catalina.valves.rewrite.RewriteValve" asyncSupported="true" />
     <Valve className="org.apache.catalina.valves.RemoteIpValve" />
</Context>

Lege im Tomcat-Ordner ([Tomcat]/conf/Catalina/localhost/ROOT.xml) die ROOT.xml an und übertrage docBase sowie die Zugangsdaten aus der bisherigen data-source.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="false" useHttpOnly="true" docBase="/srv/projectfacts/webapp/">
   <Resources cacheMaxSize="65536" />
   <Manager pathname="" />
   <CookieProcessor sameSiteCookies="lax" />
   <Valve className="org.apache.catalina.valves.rewrite.RewriteValve" asyncSupported="true" />
   <Valve className="org.apache.catalina.valves.RemoteIpValve" />
   <Resource name="jdbc/app_db" auth="Container" type="javax.sql.DataSource"
             factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
             maxActive="150" minIdle="30" testOnBorrow="true"
             validationQuery="SELECT 1" validationQueryTimeout="10" validationInterval="10000"
             username="projectfacts" password="projectfacts"
             driverClassName="com.mysql.cj.jdbc.Driver"
             url="jdbc:mysql://localhost:3306/projectfacts?useUnicode=true&amp;useSSL=false"
             defaultAutoCommit="false" />
</Context>

War in der data-source.xml nach dem false eine Zeitzone gesetzt (z. B. &amp;serverTimezone=Europe/Berlin), übernimm sie unbedingt mit.

deploy-war-Skript anpassen

Die data-source.xml wird nicht mehr benötigt – alle Informationen liegen jetzt in der ROOT.xml. Entferne in der deploy-war.sh/.bat die beiden Zeilen, die nach data-source.xml suchen (oder lade die neuen deploy-Skripte aus dem Ordner „Scripe” in teamspace-classic). Wichtig: Nach dem Update darf die data-source.xml nicht mehr vorhanden sein, sonst startet das System nicht ordnungsgemäß.

Docker-Installation (Linux)

Bei Docker legst du statt der ROOT.xml die context.xml unter [projectfacts]/webapp/META-INF/context.xml an (eine vorhandene Datei überschreibst du):

<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="false" useHttpOnly="true">
   <Resources cacheMaxSize="65536" />
   <Manager pathname="" />
   <CookieProcessor sameSiteCookies="lax" />
   <Valve className="org.apache.catalina.valves.rewrite.RewriteValve" asyncSupported="true" />
   <Valve className="org.apache.catalina.valves.RemoteIpValve" />
   <Resource name="jdbc/app_db" auth="Container" type="javax.sql.DataSource"
             factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
             maxActive="150" minIdle="30" testOnBorrow="true"
             validationQuery="SELECT 1" validationQueryTimeout="10" validationInterval="10000"
             username="projectfacts" password="projectfacts"
             driverClassName="com.mysql.cj.jdbc.Driver"
             url="jdbc:mysql://localhost:3306/projectfacts?useUnicode=true&amp;useSSL=false"
             defaultAutoCommit="false" />
</Context>

Passe das deploy-Skript so an, dass die context.xml gesichert wird (sonst wird sie beim Update überschrieben).

Update auf 2023.1

Mit Version 2023.1 wird Java 17 benötigt. Wechsle vor dem Update von Java 11 auf Java 17.

  • Linux: ab Debian 11 oder Ubuntu 22.04 LTS (bei Ubuntu 20.04 ist OpenJDK 17 die letzte verfügbare Java-Version).
  • Windows (gilt nicht für bestehende Systeme): ab Windows Server 2016 oder höher.

Unter Debian 12 wird aus dem Repository nur Tomcat 10 bereitgestellt. Wird Tomcat 9 benötigt, installiere ihn manuell (siehe Weitere Server-Konfigurationen).

Verwendest du eine LDAP-Verbindung, sichere vorher den Java-Keystore mit den SSL-Zertifikaten (siehe „SSL-Zertifikat in den Java-Truststore importieren” in Weitere Server-Konfigurationen).

Verwandte Themen