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
.
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 Job
s 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.
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.
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.
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.
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)
.
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=...
|
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:
|
Fügt eine einzelne jar -Bibliothek zum Klassenpfad von jadice server
hinzu.
|
|
|
|
Alle jar -Bibliotheken, die im angegebenen Verzeichnis
vorhanden sind, werden in alphabetischer Reihenfolge zum
Klassenpfad von jadice server hinzugefügt.
|
|
Dabei ist zu beachten, dass zwischen der Option und dem Parameter ein Zeilenumbruch erfolgen muss. Der effektive Klassenpfad wird in folgender Weise gebildet:
-
Einträge unter
-cp
/--classpath
ausjadice-server.options
-
Einträge unter
-cp
/--classpath
ausjadice-server-local.options
-
Einträge unter
-ld
/--library-dir
ausjadice-server.options
-
Einträge unter
-ld
/--library-dir
ausjadice-server-local.options
Des Weiteren sind folgende Optionen möglich:
|
Bindet eine weitere Konfigurationsdatei ein. Diese muss hier gezeigter Syntax entsprechen. |
|
|
-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 |
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
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.
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.
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.
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:
-
Loggen Sie sich mit unter dem Benutzer, unter dem jadice server läuft, auf dem Server-Rechner ein.
-
Starten Sie eine Konvertierung, die den
MSOutlookNode
auslöst. -
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.
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:
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.
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.
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.
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“.
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“.
Ü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.