Server

Der jadice server ist ab Sun/Oracle Java VM in Version 11 11.0.8 oder neuer (Deprecated, aber unterstützt für 5.8: Sun/Oracle Java VM in Version 1.8.0 Update 3 (Java 8) oder neuer) lauffähig. Für die Installation muss zuerst die Distributionsdatei (i. d. R. jadice-server-5.x.y.z-dist.zip) in ein leeres Verzeichnis auf einem lokalen Laufwerk des Servers entpackt werden. Datei- oder Ordnernamen, die im weiteren Verlauf dieses Entwicklerhandbuchs genannt werden, sind relativ zu diesem Verzeichnis.

Die Installations-/Startdateien befinden sich im Verzeichnis /bin.

Um jadice server als Windows-Dienst zu installieren und zu administrieren, stehen folgende Dateien zur Verfügung:

installService.bat

Installiert einen Windowsdienst mit Namen levigo jadice server 5.

startService.bat

Startet den Dienst.

stopService.bat

Beendet den Dienst.

queryService.bat

Ermittelt den Status des Dienstes.

systemTrayIconW.bat

Startet ein Tray-Icon in der Taskleiste, über das der Windows-Dienst jadice server gestartet und gestopt werden kann. Außerdem werden Exceptions, die während des Betriebs von jadice server auftreten, als Benachrichtigungen eingeblendet.

Anmerkung

Zur Ausführung dieser Dateien werden gegebenenfalls Administrationsrechte angefordert.

Alternativ kann der Server mit dem Skript jadice-server.bat gestartet werden. Für Linux-basierte Betriebssysteme ist das Skript jadice-server.sh zu verwenden. Beim Start wird eine Konsole geöffnet; mit der Tastenkombination Strg+C kann jadice server beendet werden.

Um jadice server als Linux/Unix-Daemon zu installieren und zu administrieren, stehen folgende Dateien zur Verfügung:

startDaemon.sh

Startet den Daemon.

stopDaemon.sh

Beendet den Daemon.

queryDaemon.sh

Ermittelt den Status des Daemon.

systemTrayIcon.sh

Startet ein Tray-Icon in der Taskleiste, über das der Daemon jadice server gestartet und gestopt werden kann. Außerdem werden Exceptions, die während des Betriebs von jadice server auftreten, als Benachrichtigungen eingeblendet.

Die Dateien mit der Dateinamenendung NoPriv startet das jeweilige Shell-Script nicht unter dem sudo-Befehl.

Alle serverseitig benötigten jar-Dateien befinden sich im Verzeichnis /server-lib.

Lizenzdatei

Neben der Distributionsdatei von jadice server erhalten Sie eine separate Lizenzdatei (JadiceServerLicense.properties). Diese muss im Konfigurationsverzeichnis /server-config des jadice server abgelegt werden.

Ist diese Datei nicht vorhanden bzw. die Lizenz abgelaufen oder ungültig, wird beim Start des jadice servers sowie bei jeder Anforderung eines Jobs eine Fehlermeldung in das Server- und das Client-Log geschrieben.

Sollte es sich um eine zeitlich beschränkte Evaluationslizenz handeln, wird nur beim Start des Servers eine Meldung gezeigt. Darüber hinaus gibt es keine Funktionseinschränkungen des jadice server.

Manueller Download für Silbentrennung

jadice server verwendet Apache FOP zur Konvertierung von XML-Dokumenten und E-Mails nach PDF. Aus lizenzrechtlichen Gründen darf das optionale Paket zur Silbentrennung dem Auslieferungspaket von jadice server nicht beiliegen. Dies ist jedoch frei unter http://offo.sourceforge.net/ verfügbar. Zur Installation muss lediglich die Datei hyphenation.jar in den Ordner server-lib kopiert werden.

Konfiguration des Messagingsystems

Es stehen drei Varianten für den Aufbau des Messagingsystems zur Verfügung.

  • Eingebetteter Broker (Standard)

    • Betrieb eines Brokers innerhalb der JVM von jadice server

    • Einsatz von Apache ActiveMQ

    • Clusterfähig durch Network of Brokers

    • Konfiguration siehe nächster Abschnitt

  • Separater Broker

    • Einsatz eines separaten Brokers auf der Infrastruktur des jadice server

    • Einsatz beliebiger kompatibler MOM

    • Ggf. clusterfähig

  • Separate MOM-Infrastruktur

    • Einsatz separater MOM-Infrastruktur

    • Einsatz beliebiger kompatibler MOM

    • Verfügbarkeit muss durch Infrastruktur sichergestellt werden

Welche dieser drei Varianten zum Einsatz kommt, wird in der XML-Konfiguration bestimmt. Im Abschnitt <bean id="jms-connection-factory" …> in der Datei server-config/application/activemq-client.xml wird der zu verwendende Konnektor und in Datei server-config/application/server.xml im Abschnitt <property name="properties" …> unter jadice.server.queue-name der Name der Message-Queue und unter jadice.server.activemq-port der Port für ActiveMQ konfiguriert, wohin sich jadice server verbinden soll. Da die Klasse ActiveMQConnectionFactory sowohl QueueConnectionFactory wie auch TopicConnectionFactory implementiert, wird sie über die Aliase jms-queue-connection-factory wie auch jms-topic-connection-factory an den jeweils passenden Stellen referenziert.

Beispiele, wie Verbindungen über IBM Websphere MQ aufgebaut werden können, sind in der Datei server-config/application/example/jms.xml zu finden. Die passende Konfiguration muss anstelle der vorhandenen Abschnitte <bean id="jms-queue-connection-factory" …> bzw. <bean id="jms-topic-connection-factory" …> in die XML-Konfiguration eingebunden werden.

Konfiguration des eingebetteten Messagebrokers

jadice server stellt standardmäßig das zu verwendende Messagingsystem (d. h. den Message-Broker) in der Server-Instanz bereit. In diesem Falle wird Apache ActiveMQ als Messagingsystem verwendet. Es wird in der Datei server-config/application/embedded-activemq-broker.xml konfiguriert. Um die Übertragung zwischen Client und Server mit SSL zu verschlüsseln, findet sich unter http://activemq.apache.org/ssl-transport-reference.html und http://activemq.apache.org/how-do-i-use-ssl.html eine Anleitung, wie dies realisiert werden kann.

Der Port und der Name der verwendeten Messagequeue werden zentral in der Datei server-config/application/server.xml konfiguriert, siehe Abschnitt „Konfiguration des Messagingsystems“

Um diesen internen Broker nicht zu starten, muss der Abschnitt <feature>embedded-activemq-broker</feature> in der Datei server-config/application/active-features.xml auskommentiert werden.

Clustering

Folgende Konfigurationsänderung ist notwendig, um jadice server via ActiveMQ in einem Cluster zu betreiben:

  • In der Datei server-config/application/embedded-activemq-broker.xml die Kommentarzeichen um eins der beiden Elemente <networkConnector …> entfernen.

Der Cluster hat dabei folgenden Aufbau:

  • Auf jedem Knoten läuft eine Instanz von jadice server mit jeweils einem eingebetteten Broker unter Apache ActiveMQ.

  • Das Clustering basiert auf einem ActiveMQ Network-of-Brokers, d. h. der eingebettete Broker eines jeden Knotens nimmt gleichberechtigt an einem verteilten Broker teil.

  • Die Broker finden sich entweder gegenseitig über Auto-Discovery, das über Multicast realisiert wird, oder das Network-of-Brokers wird statisch definiert.

Damit das Clustering wirksam ist, müssen die Clients entsprechend konfiguriert werden. Finden sich die Broker über Auto-Discovery, so kann man für Clientverbindungen die Methode Multicast-Discovery verwenden. Dazu muss der Gruppenname des Clusters bekannt sein, den die jadice server-Instanzen bilden. Dieser wird in der Datei /server-config/application/server.xml unter jadice.server.activemq-group gesetzt und lautet standardmäßig jadice-server.cluster.

Die URL, mit der sich ein Client in diesem Fall mit dem Cluster verbinden kann, lautet (vgl. Codebeispiel im Abschnitt „Erstellen eines Server-Jobs“): discovery:(multicast://default)?group=jadice-server.cluster&initialReconnectDelay=100

Wurde ein statisches Network-of-Brokers definiert, muss die Verbindungs-URL ebenfalls statisch definiert werden: failover:(<URL_Server_A>,<URL_Server_B>), zum Beispiel: failover:(tcp://serverA:61616,tcp://serverB:61616).

Konfiguration Wrapper

Der Server wird über einen betriebssystemabhängigen Wrapper gestartet. Hier werden Java VM und Klassenpfad-Parameter definiert.

Die Wrapper-Konfigurationsdatei wrapper.conf befindet sich im Verzeichnis /wrapper.

Pfad zur Java VM:

# Java Application
wrapper.java.command=java

Definition weiterer Klassenpfadeinträge:

# Java Classpath (include wrapper.jar)  Add class path # elements as needed starting from 1
wrapper.java.classpath.1=../bin/server-console.jar
wrapper.java.classpath.2=../msoffice-lib
# Beispiel eines weiteren Klassenpfadeintrags:
wrapper.java.classpath.N=...
	  			

1

Die Nummerierung muss fortlaufend sein und darf sich nicht mit bereits vorhandenen Einträgen überschneiden.

Werden für die Java Virtual Machine (JVM) zusätzliche Parameter benötigt, z. B. Setzen des temporären Verzeichnisses für die VM, können diese auf folgende Weise gesetzt werden:

# Beispiel zusätzlicher JVM Parameter
wrapper.java.additional.1=-server
wrapper.java.additional.2=-Djava.io.tmpdir=C:\tmp
wrapper.java.additional.N=<weitere Parameter>
	  			

Anmerkung

Wird der jadice server im Multi-VM-Modus gestartet, werden diese Parameter nur für die zentrale Instanz wirksam (vgl. Abschnitt „Konfiguration Multi-VM-Modus“)

Definition JVM-Speichereinstellungen, wrapper.java.initmemory entspricht Parameter -Xms, wrapper.java.maxmemory entspricht Parameter -Xmx:

# Initial Java Heap Size (in MB)
#wrapper.java.initmemory=3

# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=512
	  			

Außerdem ist es möglich, den Klassenpfad und somit die geladenen Java-Bibliotheken zu ändern, um beispielsweise jadice server um eigene Worker-Implementierungen zu erweitern. Dies geschieht in den Dateien /server-config/jadice-server.options und /server-config/jadice-server-local.options. Folgende Einträge sind hier möglich:

-cp 
<jar-Bibliothek>
Fügt eine einzelne jar-Bibliothek zum Klassenpfad von jadice server hinzu.
--classpath
<jar-Bibliothek>
-ld 
<Verzeichnis>
Alle jar-Bibliotheken, die im angegebenen Verzeichnis vorhanden sind, werden in alphabetischer Reihenfolge zum Klassenpfad von jadice server hinzugefügt.
--library-dir 
<Verzeichnis>

Dabei ist zu beachten, dass zwischen der Option und dem Parameter ein Zeilenumbruch erfolgen muss. Der effektive Klassenpfad wird in folgender Weise gebildet:

  1. Einträge unter -cp / --classpath aus jadice-server.options

  2. Einträge unter -cp / --classpath aus jadice-server-local.options

  3. Einträge unter -ld / --library-dir aus jadice-server.options

  4. Einträge unter -ld / --library-dir aus jadice-server-local.options

Des Weiteren sind folgende Optionen möglich:

-xo 
<Konfigurationsdatei>
Bindet eine weitere Konfigurationsdatei ein. Diese muss hier gezeigter Syntax entsprechen.
--extra-options
<Konfigurationsdatei>
-dCL Beim Start wird eine Auflistung des effektiven Klassenpfads und der Classloader-Hierarchie angezeigt.
--debug-classpath
-dX Eventuelle Exceptions und Stacktraces, die während des Startens geworfen werden, werden ausgegeben.
--debug-using-exceptions

Kompatibilität mit Drittkomponenten

In unserer Knowledge Base finden Sie eine Übersicht über die Kompatibilität von jadice server 5 mit Drittkomponenten. Dieser Knowledge Base Eintrag bezieht sich immer auf die aktuellste jadice server 5 Version

Konfiguration LibreOffice

Es muss auf das Verzeichnis <LibreOffice-Verzeichnis>/program verwiesen werden, damit der Server auf die Programmdatei von LibreOffice zugreifen kann. Die Konfiguration steht in der Datei /server-config/jadice-server-local.options, z. B.

# LibreOffice Verzeichnis
-cp
C:\Program Files\Libre Office 5\program\
				

Anmerkung

Unter MS Windows Vista, Windows 7 und Server 2008 dürfen nicht die symbolischen Dateipfade verwendet werden; anstelle von z. B. C:\Programme (x86)\ muss C:\Program Files (x86)\ angegeben werden.

Außerdem ist es notwendig, die Dateien <LibreOffice-Verzeichnis>/program/classes/java_uno.jar, juh.jar, jurt.jar, ridl.jar, unoloader.jar und unoil.jar im Klassenpfad einzubinden. Zusätzlich müssen die JVM und LibreOffice binärkompatibel sein (x86 / x64).

Sind die Pfade nicht richtig konfiguriert, wird bei einer Konvertierung ein Fehler ausgegeben.

Auf Nicht-Windows-Betriebssystemen (Linux, Unix u. ä.) muss außerdem das Paket Xvfb (X window virtual framebuffer) installiert sein, damit ein fensterloser und somit automatisierter Betrieb von LibreOffice erfolgen kann.

Konfiguration MS Office

Die Ansteuerung von MS Office wird via DCOM-Schnittstelle vorgenommen. Nach dem Sicherheitsupdate KB3155544 werden Berechtigungen für den DCOM Zugriff benötigt. Eine detaillierte Beschreibung der Einstellung dieser Berechtigungen finden Sie unter Jadice Server MS-Office Konvertierung nach Sicherheitsupdate.

Im Trust Center (deutsch: Vertrauensstellungscenter) von MS Office muss eingestellt werden, wie mit Makros umgegangen werden soll. Da im Serverbetrieb keine Benutzerabfrage möglich ist, ist die Optionen Alle Makros ohne Benachrichtigung deaktivieren (siehe Abbildung 5.1, „Zulässige Einstellung für Makros in MS Office“). Ebenso ist mit den ActiveX-Einstellungen zu verfahren.

Abbildung 5.1. Zulässige Einstellung für Makros in MS Office

Im Trust Center von MS Office darf nur die Option „Alle Makros ohne Benachrichtigung deaktivieren“ ausgewählt werden

Ist jadice server wie in „Server“ beschrieben als Windows-Dienst installiert, darf dieser nicht unter dem lokalen Systemkonto angemeldet sein, sondern unter einem technischen Benutzerkonto (siehe Abbildung 5.2, „Installation von jadice server unter einem technischen Benutzerkonto“). Andernfalls kann es bei der Konvertierung über MS Office zu diversen, nicht nachvollziehbaren Fehlern kommen.

Abbildung 5.2. Installation von jadice server unter einem technischen Benutzerkonto

Der Dienst von jadice server wird unter einem technischen Benutzerkonto angemeldet

Konfiguration MS Outlook

Um die Sicherheitsbestimmung zu umgehen, die es verbieten, dass jadice server auf MS Outlook zugreift, muss das Programm Advanced Security for Outlook installiert und konfiguriert werden.

Konfiguration:

  1. Loggen Sie sich mit unter dem Benutzer, unter dem jadice server läuft, auf dem Server-Rechner ein.

  2. Starten Sie eine Konvertierung, die den MSOutlookNode auslöst.

  3. Bestätigen Sie den Dialog von Advanced Security for Outlook mit Allow Access und Always perform …

Außerdem müssen unter MS Outlook 2007 die Option Bei Programmbeendigung Ordner 'Gelöschte Objekte' leeren aktiviert. Sie finden diese Einstellung unter → Optionen → Weitere. Außerdem muss die Option Warnung anzeigen, bevor Elemente endgültig gelöscht werden deaktiviert sein. Diese Einstellung befindet sich unter unter Extras → Optionen → Weitere → Erweiterte Optionen.

Ab MS Outlook 2019 ist es nicht mehr möglich Outlook mit einem Profil ohne E-Mail-Konto zu starten, da die Option ohne ein Konto fortzufahren nicht mehr verfügbar ist. Stattdessen können Sie Outlook einmalig via Outlook.exe /PIM <profile name> starten (https://support.office.com/de-de/article/verwenden-von-outlook-ohne-e-mail-konto-477a1fc3-4423-4156-bef4-67489edfdbef), um ein leeres Profil anzulegen.

Außerdem muss ab MS Outlook 2019 beim DCOM-Eintrag Outlook Message Attachment ebenfalls der technischer User hinterlegt werden. Eine detaillierte Beschreibung für das Setzen von DCOM-Einstellungen finden Sie unter Jadice Server MS-Office Konvertierung nach Sicherheitsupdate.

Konfiguration MS Project 2010

Um MS Project-Dateien konvertieren zu können, die mit vorhergehenden Versionen erstellt wurden, muss das Laden von Dateien mit Vorversions- oder nicht standardmäßigen Dateiformaten zugelassen im Sicherheitscenter (engl. Trust Center) von MS Project 2010 eingestellt werden:

Abbildung 5.3. Einstellung für Legacyformate in MS Project 2010

Im Trust Center von MS Project 2010 muss das Laden von Dateien mit Vorversionsformat zugelassen werden.


Konfiguration logging

Zur Verwaltung von Log-Einträgen wird auf das Framework log4j zurückgegriffen. Dieses wird in der Datei /server-config/logging/log4j-appenders.xml bzw. /server-config/log4j-appenders-mvm.xml im Multi-VM-Modus (siehe Abschnitt „Konfiguration Multi-VM-Modus“) konfiguriert. Standardmäßig werden Log-Meldungen auf die Konsole ausgeschrieben sowie im Verzeichnis /log/ gespeichert.

Die Dateien, die in diesem Verzeichnis gespeichert werden, werden in der Standardkonfiguration täglich rotiert. Diese geschieht mit Hilfe des LogAppenders DailyRollingFileAppender . Da dieser nicht die Option bietet, dass nur die Log-Dateien der letzten n Tage aufbewahrt werden, sollten Sie sicherstellen, dass für das Speichern der Log-Dateien ausreichend Speicherplatz zur Verfügung steht oder die ältesten Dateien automatisch und regelmäßig ausgelagert oder gelöscht werden. Falls dies nicht möglich ist, empfiehlt es sich, den RollingFileAppender zu verwenden; dieser bietet die Option nur eine maximale Anzahl an Dateien aufzubewahren.

Weitere Möglichkeiten für das Logging sind in der Konfigurationsdatei als Kommentare aufgeführt und müssen lediglich aktiviert werden.

Konfiguration Ghostscript

Um den GhostscriptNode verwenden zu können, müssen zunächst folgende Voraussetzungen geschaffen werden:

  • Installation von GPL Ghostscript, Version 8.64 oder neuer

  • Anpassung der Datei /server-config/ghostscript/ghostscript.xml. Unter <bean id="ghostscript" …> muss ein Element eingefügt werden, das folgenden Inhalt hat: <property name="executableName" value="<Ort der Ghostscript-Anwendungsdatei>" />

    Anmerkung

    Für die Orte, unter denen Ghostscript unter Windows bzw. Linux standardmäßig installiert wird, sind bereits Vorlagen vorhanden. Hierzu muss nur der passende XML-Kommentar entfernt werden.

Konfiguration Multi-VM-Modus

Anmerkung

Mit der nächsten Major-Version von jadice server wird der Multi-VM-Modus nicht weiter angeboten.

Durch die Einbindung von externen Bibliotheken ist es möglich, dass diese in einem Fehlerfall die Java Virtual Machine und somit auch den kompletten jadice server zum Absturz bringen.

Um in diesem Fall mit der Bearbeitung von weiteren Jobs fortzufahren, gibt es die Möglichkeit, den jadice server auf einem Rechner in mehreren Instanzen zu starten. Hierbei übernimmt eine zentrale Instanz des jadice servers die Überwachung aller anderen, die die eigentliche Arbeit durchführen. Sollte eine dieser Arbeiter-Instanzen nicht mehr reagieren oder abgestürzt sein, beendet die zentrale Instanz den zugehörigen Prozess und startet automatisch eine neue Instanz des jadice servers.

Um jadice server in diesem Modus zu starten, muss in der Datei /server-config/application/active-features.xml das Kommentarzeichen um <feature>mvm</feature> entfernt werden.

In der Datei /server-config/application/multi-vm-manager.xml können die Arbeiterinstanzen im Abschnitt <bean id="mvm-manager" …> konfiguriert werden. Um die Anzahl der zu startenden Arbeiter-Instanzen anzupassen, gibt es folgende Möglichkeiten:

  • Feste Anzahl an Arbeiterinstanzen: <property name="fixedVMCount" value="<n>" />

  • n Arbeiterinstanzen je Prozessorkern: <property name="perProcessorVMCount" value="<n> />"

Des Weiteren können unter <property name="instanceJVMOptions" …> der zu startenden JVM Startparameter wie z. B. die verfügbare Speichergröße mitgegeben werden.

Konfiguration SOAP-Schnittstelle

Um die SOAP-Schnittstelle, über die Anfragen im XML-Format an den jadice server gestellt werden können, zu aktivieren, muss in der Datei server-config/application/active-features.xml die Kommentarmarkierung um das Element <feature>soap</feature> entfernt werden.

In der Datei server-config/application/soap.xml wird im Element <jaxws:endpoint …> ein Endpunkt (als Instanz von javax.xml.ws.Endpoint) des Webservices propagiert. Das vorgegebene Attribut address="http://${jadice.server.hostname}:9000/jadiceServer" stellt den Endpunkt unter dem Namen des Rechners auf Port 9000 bereit.

Zur Verwendung der SOAP-Schnittstelle siehe SOAP-Schnittstelle“.

Konfiguration REST-Schnittstelle

Um die REST-Schnittstelle, über die Anfragen im XML- oder im JSON-Format an den jadice server gestellt werden können, zu aktivieren, muss in der Datei server-config/application/active-features.xml die Kommentarmarkierung um das Element <feature>rest</feature> entfernt werden.

In der Datei server-config/application/rest.xml wird im Element <jaxrs:server …> der JAX-RS-Endpunkt der REST-Schnittstelle propagiert. Das vorgegebene Attribut address="http://${jadice.server.hostname}:9001/jadiceServer" stellt den Endpunkt unter dem Namen des Rechners auf Port 9001 bereit.

Zur Verwendung der REST-Schnittstelle siehe REST-Schnittstelle“.

Konfiguration Security-Schnittstelle

Über die Security-Schnittstelle kann verhindert werden, dass Clients ohne Authentifikation auf jadice server und ohne Beschränkungen auf dessen vollen Funktionsumfang zugreifen. Um diese Schnittstelle zu aktivieren, muss zunächst in der Datei server-config/application/active-features.xml die Kommentarmarkierung um die Abschnitte mit <feature>security</feature> entfernt werden.

Die Datei server-config/application/security.xml enthält eine beispielhafte Konfiguration, die zunächst auf die gewünschte Sicherheitsstufe angepasst werden muss. Dies und wie die Sicherheits-Schnittstelle anschließend verwendet werden kann, ist in Kapitel 8, Sicherheits-Schnittstelle beschrieben.

[jadice server Version 5.8.7.0: Dokumentation für Entwickler und Administratoren. Veröffentlicht: 2021-04-15]