Update auf 2023.4

Mit der Version 2023.4 wurde der Datenbank-Connection-Pool in projectfacts überarbeitet. Anstatt die Verbindungen selbst zu verwalten, nutzen wir jetzt den Connection-Pool vom Apache Tomcat, da dieser robuster und schneller arbeitet. Damit erhöht sich jedoch einmalig der Aufwand beim Update.

Standard Installation

Öffnen Sie die web.xml. Fügen Sie unter <display-name>projectfacts</display-name> folgenden Inhalt hinzu:
Windows-Pfad: C:\projectfacts\webapp\WEB-INF\web.xml
Linux-Pfad: /srv/projectfacts/WEB-INF\web.xml

Hinweis: Die Installationspfade könne je nach System Variieren

				
					<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>

				
			

Prüfen Sie zuvor der Inhalt schon in der web.xml vorhanden ist. Falls ja, wird dieser Schritt nicht benötigt.

ROOT.xml anlegen und server.xml anpassen

Stoppen Sie zunächst den Tomcat Server. Anschließend öffnen Sie die server.xml des Tomcats.
Windows-Pfad: C:\Program Files\Apache Software Foundation\Tomcat 9.0\conf\server.xml
Linux-Pfad: /etc/tomcat9/server.xml

Hinweis: Die Installationspfade könne je nach System Variieren

Entfernen Sie nun folgenden Inhalt aus der server.xml. Notieren Sie sich zuvor den docBase Pfad. Dieser wird in der ROOT.xml benötigt:

				
					<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>

				
			

Legen Sie nun im Tomcat Ordner die Datei ROOT.xml an und fügen Sie folgenden Inhalt hinzu:
Windows-Pfad: [Tomcat Ordner]/conf/Catalina/localhost/ROOT.xml
Linux-Pfad: [Tomcat Ordner]\etc\tomcat9\Catalina\localhost\ROOT.xml

Hinweis: Die Installationspfade könne je nach System Variieren

				
					<?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>

				
			

Passen Sie nun den docBase Pfad an den Sie sich aus der server.xml des Tomcats notiert haben.

Um die Datenbank Verbindung anzupassen müssen Sie die data-source.xml, die bis zur Version 2023.3 die Datenbankverbindungsinformationen enthält, sichern.
Die data-source.xml finden Sie unter [projectfacts Ordner]\webapp\WEB-INF\conf\data-source.xml.

Hinweis: Die Installationspfade könne je nach System Variieren

Nun entnehmen Sie die Informationen aus der data-source.xml und übertragen Sie diese in die ROOT.xml.

Folgende Informationen müssen Sie übertragen:
username=“projectfacts“ password=“projectfacts“
localhost:3306/projectfacts?useUnicode=true&amp;useSSL=false

Sollte in der data-source.xml nach dem false eine Zeitzone gesetzt sein ist es wichtig diese mit zu übernehmen!
Beipsiel: &amp;serverTimezone=Europe/Berlin

deploy-war Script anpassen

Die data-source.xml wird nicht mehr benötigt. Alle Information befinden sich nun in der ROOT.xml. Damit das Update auch Ordnungsgemäß funktioniert müssen Sie 2 Zeilen aus der deploy-war.sh/bat entfernen. Suchen sie in der Datei nach data-source.xml. Entfernen Sie nun diese Einträge und Speichern Sie die Datei ab. Nun wird die data-source.xml nicht mehr mit gesichert und nach dem Update auf die 2023.4 ist der Ordner [projectfacts Ordner]\webapp\WEB-INF\conf sowie die darin befindliche Datei data-source.xml nicht mehr vorhanden.

Es ist wichtig das die data-source.xml nicht mehr vorhanden ist. Ansonsten kann das System nicht Ordnungsgemäß gestartet werden.

Wenn Sie diese Anpassung nicht vornehmen möchten können Sie sich in teamspace-classic, wo Sie auch die Updates herunterladen, im Ordner Scripe die neuen deploy-war Scripte herunterladen.

Update druchführen

Haben Sie alle genannten Schritte durchgeführt, können Sie nun das Update via deploy-script durchführen.

Docker Installation (Linux)

Öffnen Sie die web.xml. Fügen Sie unter <display-name>projectfacts</display-name> folgenden Inhalt hinzu:
Pfad: /srv/projectfacts/WEB-INF\web.xml

Hinweis: Die Installationspfade könne je nach System Variieren

				
					<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>

				
			

Prüfen Sie zuvor der Inhalt schon in der web.xml vorhanden ist. Falls ja, wird dieser Schritt nicht benötigt.

context.xml anlegen und server.xml anpassen

Stoppen Sie zunächst den Tomcat Server. Anschließend öffnen Sie die server.xml des Tomcats.
Pfad: /etc/tomcat9/server.xml

Hinweis: Die Installationspfade könne je nach System Variieren

				
					<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>

				
			

Legen Sie nun die context.xml unter [projectfacts Ordner]/webapp/META-INF/context.xml an und fügen Sie folgenden Inhalt hinzu:

Hinweis: Es kann vorkommen das die context.xml schon vorhanden ist, wenn ja überschreiben Sie diese mit dem neuen Inhalt

				
					<?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>

				
			

Um die Datenbank Verbindung anzupassen müssen Sie die data-source.xml, die bis zur Version 2023.3 die Datenbankverbindungsinformationen enthält, sichern.
Die data-source.xml finden Sie unter [projectfacts Ordner]\webapp\WEB-INF\conf\data-source.xml.

Hinweis: Die Installationspfade könne je nach System Variieren

Nun entnehmen Sie die Informationen aus der data-source.xml und übertragen Sie diese in die context.xml.

Folgende Informationen müssen Sie übertragen:
username=“projectfacts“ password=“projectfacts“
localhost:3306/projectfacts?useUnicode=true&amp;useSSL=false

Sollte in der data-source.xml nach dem false eine Zeitzone gesetzt sein ist es wichtig diese mit zu übernehmen!
Beipsiel: &amp;serverTimezone=Europe/Berlin

deploy-war Script anpassen

Die data-source.xml wird nicht mehr benötigt. Alle Information befinden sich nun in der context.xml. Damit das Update auch Ordnungsgemäß funktioniert müssen Sie 2 Zeilen aus der deploy-war.sh anpassen. Suchen sie in der Datei nach data-source.xml. Passen Sie nun den Pfad jeweils an damit die context.xml gesichert wird. Ansonsten wird die context.xml nach dem Update überschrieben und alle Information gehen verloren. Nun wird die data-source.xml nicht mehr mit gesichert und nach dem Update auf die 2023.4 ist der Ordner [projectfacts Ordner]\webapp\WEB-INF\conf sowie die darin befindliche Datei data-source.xml nicht mehr vorhanden.

Es ist wichtig das die data-source.xml nicht mehr vorhanden ist. Ansonsten kann das System nicht Ordnungsgemäß gestartet werden.

Wenn Sie diese Anpassung nicht vornehmen möchten können Sie sich in teamspace-classic, wo Sie auch die Updates herunterladen, im Ordner Scripe die neuen deploy-war Scripte herunterladen.

Update druchführen

Haben Sie alle genannten Schritte durchgeführt, können Sie nun das Update via deploy-script durchführen.