CIB documentServer technischer Leitfaden (DE)


Schneller Einstieg

Konfiguration

Sie können die Anzahl der gestarteten Socketserver, verschiedene Timeouts und andere Parameter, die auch das Framework anbietet leicht konfigurieren. Dieser Abschnitt gibt einen Überblick, wie Sie die Konfiguration des CIB documentServers auf Ihre individuellen Bedürfnisse anpassen können. Hier finden Sie eine Beschreibung des Inhalts der Konfigurationsdatei CibDocumentServer.properties und wie Sie diese verändern müssen, um Einstellungen am CIB documentServer vorzunehmen.

CibDocumentServer.properties
CibDocumentServer-Forward.properties
Angabe von Konfigurationen auf der Kommandozeile
Inhalt der CibDocumentServer.properties
Jobconfig.xml für CIB docgen Default properties
Konfiguration von Sprachdateien für die Texterkennung durch CIB ocr
Beispielsituation zur Konfiguration einschließlich Forward properties
Monitoring with MBean DocservRuntime


 
CibDocumentServer.properties

Konfigurieren Sie Ihren CIB documentServer, indem Sie die Einstellungen in der Datei CibDocumentServer.properties anpassen, nicht in der Datei CibDocumentServer/WEB-INF/web.xml, da diese bei der Lieferung einer aktualisierten CIB documentServer Version ersetzt wird.

Diese Datei enthält dann Ihre kunden- und serverspezifische Konfiguration.

Eine umfangreich kommentierte Vorlage wird für Ihre Plattform mitgeliefert.

Sollten Sie den CIB documentServer als EAR-Datei deployen, so legen sie die CibDocumentServer.properties ins EAR neben die CibDocumentServer.war.

 Deployen Sie den CIB documentServer als WAR-Datei, so legen Sie die CibDocumentServer.properties neben das WAR (abhängig vom Application-Server).

Zuerst wird die CibDocumentServer.properties stets im Classpath der CibDocumentServer-Webanwendung gesucht. Hierüber wird auch die Properties-Datei im EAR gefunden.

CibDocumentServer-Forward.properties

Falls Sie die CibDocumentServer.properties außerhalb der Verzeichnisstruktur Ihres Application-Servers konfigurieren möchten, so verwenden Sie die Einstellung de.cib.docserv.ForwardConfigurationFilename, um aus dem Application-Server auf Ihre gewünschte .properties-Datei zu verweisen. Im Application-Server wird also eine verkürzte und konstante CibDocumentServer.properties-Datei deployed, die auf die eigentliche Konfiguration verweist. Eine Vorlage mit enthaltener Kurzanleitung finden Sie mit der CibDocumentServer-Forward.properties.

Beispiel:

##CIB documentserver Forward Configuration.
de.cib.docserv.ForwardConfigurationFilename= /opt/cib/conf/CibDocumentServer.properties

Falls Sie den CIB documentServer in mehreren Instanzen betreiben, kann durch Angabe des ForwardConfiguration­Filenames für jede Instanz ein getrennter Baum an Konfigurationseinstellungen aufgespannt werden (siehe Grafik zur Beispielsituation in diesem Abschnitt).

Angabe von Konfigurationen auf der Kommandozeile

Diese Konfigurationseinstellungen, angefangen mit dem ForwardConfigurationFilename können darüber hinaus auf der Kommandozeile der Java VM angegeben werden mit –D, falls dies in Ihrer Situation praktikabel sein sollte, etwa auf den beiden Nodes eines Clusters:

-Dde.cib.docserv.ForwardConfigurationFilename=
/opt/cib/conf/CibDocumentServer.properties

Im Fall, dass Sie eine Konfigurationsdatei im Anwedungsverzeichnis verwenden, beachten Sie bitte, dass die Angabe der Property ForwardConfigurationFilename über die Kommandozeile Vorrang hat.

Inhalt der CibDocumentServer.properties

Folgende wichtigen Einstellungen stehen zur Verfügung, um den CIB documentServer bezüglich Konfigurationspfad, Leistung, Ports und Logging zu konfigurieren.

Hinweis: Benutzen Sie zur Pfadangabe auch unter Windows immer Slashes (/).

 

Konfigurationspfad

de.cib.docserv.JobConfigfilename=/opt/cib/conf/jobconfig.xml

Legen Sie hier den Pfad zur Konfiguration von CIB job und CIB docgen fest. In der angegebenen Datei befinden sich keine Einstellungen zum CIB documentServer selbst.

Leistung

de.cib.docserv.http.PrestartOnLoad=true

Wenn die Socketserver-Prozesse beim Start der CIB documentServer Webanwendung gleich gestartet werden sollen, also auch beim Start des Application-Servers, geben Sie hier true an.

de.cib.docserv.socket.IdleShutdownTime=3600

Wenn in bestimmten Zeiträumen keine Last auf der Maschine ist, können sich die Socketserver-Prozesse nach dieser Zeit (in Sekunden) automatisch beenden. Sie werden bei Bedarf automatisch wieder gestartet. Bei einer Angabe von 0 werden die SocketServer-Prozesse nicht automatisch beendet.

de.cib.docserv.MaxProcessCount=10

An dieser Stelle sollten Sie den CIB documentServer an Ihre Serverhardware und den gewünschten Durchsatz anpassen. Mehr Socketserver-Prozesse lassen weniger Rechenleistung für andere Anwendungen. Weniger Prozesse erreichen gegebenenfalls die gesetzten Durchsatzzahlen nicht. Andere wesentliche performance-relevante Einstellungen gibt es im CIB documentServer nicht.

de.cib.docserv.MaxJobCountPerProcess=100

Damit aktivieren Sie einen automatischen Neustart der Socketserver-Prozesse, wenn die angegebene Zahl an Jobs bearbeitet wurde. Die Logdateien von CIB job und den CIB docgen werden dabei neu begonnen, und können auf diese Weise in der Größe begrenzt werden. Eine Angabe von -1 schaltet den automatischen Neustart ab.

de.cib.docserv.job.MaxJobExecutionTime=600000

Falls Anwender einen Einfluss auf die Laufzeit der Aufträge haben (RTF, Datensatzanzahl), kann mit dieser Einstellung die Laufzeit von Aufträgen begrenzt werden. Diese werden dann abgebrochen, und der Socketserver beendet. Die aufrufende Anwendung erhält eine Fehlerantwort, aber die Anwender können somit den Server nicht für längere Zeit blockieren. Bei einer Angabe von 0 wird kein Abbruch vorgenommen.

Diese Einstellung benötigt CIB socketserver 1.6.1, CIB job 1.6.2 und CIB merge 3.10.3. Die Funktion ist derzeit nur für „merge“-Kommandos wirksam.

de.cib.docserv.socket.MaxMemory=250

Mit dieser Einstellung kann die maximale Anzahl des allokierbaren Arbeitsspeichers für jeden Prozess des CIB socketserver in Megabyte definiert werden. Erreicht ein CIB socketserver dieses Limit, beendet sich der Prozess. Diese Einstellung, multipliziert mit der Anzahl der CIB socketserver (siehe Property de.cib.docserv.MaxProcessCount), ergibt einen groben Wert für den maximal verwendeten Arbeitsspeicher der nativen Prozesse.

Diese Einstellung benötigt den CIB socketserver 1.6.2 und steht derzeit unter den Plattformen Linux-x86, Solaris-x86 und Solaris Sparc zur Verfügung.

 

de.cib.docserv.MaxProcessCountAsync=3

Maximale Anzahl der SocketServer Ports für asynchrone Anfragen.

Die Anfragen werden zunächst in eine Queue abgelegt und dann sequenziell bearbeitet.

 

Portreservierung

Jeder Socketserver-Prozess benötigt die Reservierung und Zuweisung eines TCP-Ports.

Die Reservierung kann auf zwei unterschiedlichen Weisen definiert werden:

  • Durch die feste Zuweisung der Portnummern
  • Durch dynamische Portauswahl

Feste Portauswahl

Für diese Konfiguration werden folgende Properties berücksichtigt:

  • de.cib.docserv.MaxProcessCount: Anzahl der Prozesse

de.cib.docserv.socket.FirstPort: Falls auf Ihrem System Ports bereits belegt sind oder Vorgaben für Ports existieren kann hier die Nummer des ersten Ports aus der Port-Range spezifiziert werden. Jeder weitere Socketserver-Prozess vergrößert die Range um eins.

Dynamische Portauswahl

Der documentServer übermittelt in diesem Fall keine Portnummer an den Socketserver-Prozess, Die dynamische Prüfung der freien Ports wird direkt durch den CIB socketserver durchgeführt und die reservierten Portnummern anschliessend an den documentServer zurückgeliefert.

Mit den zurückgebebenen Portnummern erstellt der documentServer die entsprechenden Requests an den Prozessen wieder.

Das Einsetzen der Property FirstPort ist nicht nötig und die Property LastPort steht nicht mehr zur Verfügung (deprecated). Das ausgesuchte Portrange hängt von dem Betriebsystem ab:

  • 49152 – 65535 für Windows
  • 32765 – 60999 für Linux

Logging

CIB documentServer - Java Traces

de.cib.docserv.LogConfigFilename = /opt/cib/conf/log4j2.xml

Ist ein LogConfigFilename angegeben, wird dieser für die Konfiguration des Loggings berückichtigt. Aktuell wird log4j2 über slf4j verwendet.

Wenn die Datei nicht existiert wird ausschliesslich auf der Konsole geloggt.

Logging der CIB docgen Module

de.cib.docserv.LogOptions=SJ

de.cib.docserv.LogPath=/opt/cib/logs

Diese beiden Parameter steuern die Art und den Ort der Logdateien.

Durch Angabe einer Buchstabenfolge in den LogOptions (z.B. de.cib.docserv.LogOptions=SMPFJEOIXZT) werden Logdateien erstellt. Die Dateinamen sind fest vorgegeben.

Ist ein LogPath angegeben, werden die Logdateien dort erzeugt. Ansonsten werden die Logdateien im Arbeitsverzeichnis des Socketserver-Prozesses angelegt.

Wenn der angegebene LogPath nicht existiert, werden die Logdateien im Arbeitsverzeichnis (Angabe über die Property „de.cib.docserv.ServerWorkingDirectory“) des Socketserver Prozesses angelegt.

Durch Angabe folgender Buchstaben kann die Logausgabe des entsprechenden Moduls aktiviert werden:

Character

Module

Log filename

S

Socketserver

socketserver.log

M

CIB merge

mrgtrace.log

P

CIB pdf toolbox

pdftrace.log

F

CIB format/output

prtrace.log

J

CIB job

jobtrace.log

E

CIB mail

mailtrace.log

O (Character O)

CIB ocr

ocrtrace.log

I

CIB image toolbox

imgtrace.log

T

CIB text toolbox

texttrace.log

X

CIB privacy toolbox

privacytrace.log

Z

CIB invoice toolbox

invtrace.log



Herunterladen von einer Zip-Datei mit den Tracedateien der native Module

de.cib.docserv.Downloadtraces = true 

Durch diese Option wird das Herunterladen einer Zip-Datei mit den in dem konfigurierten LogPath existierenden Tracedateien ermöglicht.

Dies erfolgt über die Testoberfläche durch die Option „Download CIB module tracefiles“

Configuration of the Maintenance Feature

Tracedateien löschen

  • de.cib.docserv.Deletetraces = true 
  • de.cib.docserv.DeletetracesAge = 

Durch diese Option wird das Löschen von den in dem konfigurierten LogPath existierenden Tracedateien ermöglicht. Dies erfolgt über die Testoberfläche durch die Option „Delete CIB module tracefiles“.

Über die Property de.cib.docserv.DeletetracesAge wird das minimale Alter in Sekunden eingesetzt. 

Konfiguration von der Maintenance-Feature

Im Folgenden werden die zu setzenden Properties des Maintenance Features beschrieben.

  • de.cib.docserv.AutoMaintenance - Wenn die Maintenance Funktionalität beim Start des Application Servers gleich gestartet werden soll, geben Sie hier "true" an.
  • de.cib.docserv.KnownErrorCodes - Legen Sie hier fest, für welche Fehlermeldungen die Aufträge durch den Maintenance-Prozess nicht erneut ausgeführt werden sollen.
  • de.cib.docserv.ExecutionsNumber / de.cib.docserv.TimeSection - Mit diesen beiden Einstellungen kann die maximale Anzahl Aufträge pro angegebenen Zeitabschnitt, die durch den Maintenance-Prozess ausgeführt werden, definiert werden. Erreicht der Maintenance-Prozess dieses Limit, dann werden keine weiteren Aufträge durchgeführt, bis die angegebene Zeit abgelaufen ist.
  • de.cib.docserv.MaintenanceLogPath - Geben Sie hier ein spezifisches Verzeichnis zur Ausgabe der erzeugten Logdateien an. Das Verzeichnis muss bereits existieren.

Wird hier kein Verzeichnis angegeben, wird das Arbeitsverzeichnis unter CibDocumentServer/work verwendet.

Hinweis - Die erzeugten Logdateien werden in einem Unterverzeichnis gespeichert, benannt nach dem aktuellen Timestamp (Beispiel: "21-10-2016_13.39.29.569").

 

Umgebungsvariablen

  • de.cib.docserv.socket.Environment
  • von "de.cib.docserv.socket.Environment1" bis "de.cib.docserv.socket.Environment9"

Es besteht die Möglichkeit, bis zu 10 unterschiedliche Umgebungsvariablen zu konfigurieren. So können Sie beispielsweise den LD_LIBRARY_PATH, LIBPATH oder die Zeitzone setzen. Falls der Wert dieses Parameters leer ist, wird er nicht ausgewertet.

Beispiel:

de.cib.docserv.socket.Environment=LD_LIBRARY_PATH=../bin

de.cib.docserv.socket.Environment1=TZ=AST+04ADT

Diese und alle weiteren Konfigurationseinstellungen sind in der Vorlage CibDocumentServer.properties dokumentiert.


Konfiguration der Einbidung mit LibreOffice

CIB documentServer bietet die Möglichkeit eine Einbindung mit LibreOffice zu konfigurieren, die von anderen Projekten benötigt wird, wie beispielsweise CIB doXichange.

Dafür müssen folgende Parameter im CibDocumentServer.properties gesetzt werden:

  • Linux
    • de.cib.docserv.socket.Environment=LD_LIBRARY_PATH=../bin:/opt/cib/LO/program
    • de.cib.docserv.socket.Environment1=LOPath=/opt/cib/LO/program
  • Windows
    • de.cib.docserv.socket.Environment1=LOPath=c: \\opt\\cib\\LO\\program

In den Beispielen wird c:\opt\cib bzw. /opt/cib als Pfad für die Installation angenommen, bei abweichenden Installationspfaden muss die Konfiguration angepasst werden.

Man kann dazu optional das Workverzeichnis von CIB LibreOffice auf ein angegebenes Verzeichnis setzen. Dafür wird die Umgebungsvariable LOWorkerFolder verwendet:

  • Linux
    • de.cib.docserv.socket.Environment2=LOWorkerFolder=/opt/cib/LOWorkerFolder
  • Windows
    • de.cib.docserv.socket.Environment2=LOWorkerFolder=c: \\opt\\cib\\LOWorkerFolder

Setz man dieses Verzeichnis nicht, dann wird das Workverzeichnis standardmässig unter dem LibreOffice Program Pfad (LOPath) erstellt.

Zu beachten:

Unter Windows ist es erforderlich, dass die VisualC++ redistributables für die verwendete Architektur (x86/x64) installiert sind. Sie sind zu finden unter:

"https://www.microsoft.com/de-de/download/details.aspx?id=40784"

Bei Verwendung eines LibreOffice 64bit ist auch ein CIB documentserver 64bit erforderlich. Das analoge gilt für die 32bit Versionen.

Installierte makros ausführen

Ab CIB documentServer 1.10.5 ist es möglich ein in LibreOffice installiertes Macro ausführen.

Details hierzu werden im Leitfaden für CIB job ausführlich dargestellt, konkrett im Kapitel 4.11.

Jobconfig.xml für CIB docgen Default-Properties

Der Pfad zur jobconfig.xml wird in der Konfigurationsdatei CibDocumentServer.properties angegeben (siehe Abschnitt Configuration Path).

Die jobconfig.xml enthält Defaultwerte für alle in Aufträgen angebbaren Properties der CIB docgen, und zwar geordnet nach Kommando. Details hierzu werden im Leitfaden für CIB job ausführlich dargestellt. Aus Sicht des CIB documentServers ist es lediglich wichtig, dass der Pfad zur jobconfig.xml korrekt in der .properties Datei hinterlegt ist, und diese wiederum auf Fonts, Templates und Druckereinstellungen zeigt.

Die Pfadangaben zu den Templates in der jobconfig.xml sind unter Windows auf den Wert „C:/cib/templates“ und Unter Unix auf den Wert „/opt/cib/templates“ voreingestellt. Legen Sie ihre Templates an einer anderen Stelle ab, müssen Sie hier die Einstellungen entsprechend anpassen.

Configuration of the language file for text recognition with CIB ocr

CIB documentServer bietet optische Zeichenerkennung (OCR) unter Windows und Linux für die Sprachen Deutsch, Russisch und Englisch. Ab Version 1.9.6 werden zusätzlich unterstützt: Chinesisch, Französisch, Italienisch, Japanisch und Spanisch.

Damit wird der Funktionsumfang um die Unterstützung von automatischer Text- und Barcodeerkennung erweitert. Diese kann über das Modul CIB ocr erfolgen, welches hierzu entsprechende Dateien für jede zu erkennende Sprache benötigt.

Diese Sprachdateien sind entsprechend umfangreich (Dateigröße ca. 15 MB) und werden daher seit Version 1.9.6 nicht mehr im documentServer Paket mitgeliefert, sondern können bei entsprechender Anforderung unter folgendem Link bezogen werden: https://download.cib.de/CIBdocumentServer/anon/CIBocr-tessdata.zip

 

Die Pfadangaben zu den Sprachdateien in der Datei jobconfig.xml sind je nach System auf folgende Standardwerte voreingestellt:

Windows: "C:\opt\cib\tessdata"

Linux:"/opt/cib/tessdata"

Wenn Sie die Sprachdateien an anderer Stelle ablegen wollen, müssen die Einstellungen hier entsprechend angepasst werden.

Example situation to configure forward properties as well

Die CibDocumentServer.properties-Datei im EAR verwendet die Forward-Konfigurations-Einstellung, um auf eine CibDocumentServer.properties-Datei zu verweisen, die im gewünschten zentralen Verzeichnis /opt/cib/conf liegt (Beispiel JBoss):

/opt/jboss/servers/default/deploy/CibDocumentServer.ear enthält folgende CibDocumentServer.properties:

# Forward to this configuration:
de.cib.docserv.ForwardConfigurationFilename= /opt/cib/conf/CibDocumentServer.properties

Sie haben die folgenden Verzeichnisse angelegt:

  • /opt/cib/conf
  • /opt/cib/logs
  • /opt/cib/ppd
  • /opt/cib/fonts
  • /opt/cib/templates
  • /opt/cib/forms

Darin sind in folgenden Dateien neben weiteren Angaben folgende Pfadangaben gesetzt: /opt/cib/conf/CibDocumentServer.properties:

# Path to configuration file for CIB job
(jobconfig.xml) de.cib.docserv.JobConfigfilename=/opt/cib/conf/jobconfig.xml
 
# Logpath for Socketserver and CIB docgen modules
de.cib.docserv.LogPath=/opt/cib/logs
 
# Forms for CIB formserver
de.cib.formserv.FormsPath=/opt/cib/forms

/opt/cib/conf/jobconfig.xml:

<Comod>
       <defaults>
             <properties command="merge">
                    <property name="-a">/opt/cib/templates</property>
                    <property name="-q">/opt/cib/templates</property>
             </properties>
             <properties command="format">
                    <property name="WorkSpace">/opt/cib/templates</property>
                    <property name="PpdFilename">/opt/cib/ppd/hp4050_6.ppd</property>
                    <property name="FontWorkSpace">/opt/cib/fonts</property>
             </properties>
             <properties command="pdfjoin">
                    <property name="WorkSpace">/opt/cib/templates</property>
             </properties>
             <properties command="pdfmerge">
                    <property name="WorkSpace">/opt/cib/templates</property>
             </properties>
       </defaults>
</Comod>


Das ergibt folgendes Bild an Konfigurationseinstellungen:




Monitoring wih MBean DocservRuntime

Der Java Managed Extensions Spezifikation folgend ermöglicht CIB documentServer über die Managed Bean (MBean) „DocservRuntime“, bestimmte Kennzahlen während des Betriebes auszulesen und zu überwachen.  

Monitoring-Funktionalität aktivieren

Um die Monitoring-Funktionalität nutzen zu können, müssen am Applikationsserver die Java Management Extensions (JMX) aktiviert sein.

Am Beispiel eines Tomcat ist Folgendes im catalina.bat (catalina.sh) Skript zu konfigurieren (der Aufruf ist in einer Zeile zu schreiben, die Umbrüche hier wurden zur besseren Lesbarkeit eingefügt. Im Catalina.sh ist das „set“ zu entfernen):

set CATALINA_OPTS=-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=%my.jmx.port% 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false

 

In der CIB documentServer web.xml ist ein Listener zu registrieren. Standardmäßig ist die Zeile 

<listener-class> de.cib.docserv.http.jmx.RegisterMBeansListener </listener-class>

auskommentiert. Um die DocservRuntime MBean zu aktivieren, muss diese Zeile einkommentiert werden:

<listener>
<listener-class> de.cib.docserv.http.ContextListener </listener-class>
<!-- enable DocservRuntime MBean -->
<listener-class> de.cib.docserv.http.jmx.RegisterMBeansListener </listener-class>
</listener>

Nun können Sie aus Ihrer Monitoring Anwendung die MBean "DocservRuntime" ansteuern.


Überwachte Kennzahlen

Die folgenden Kennzahlen werden überwacht bzw. können ausgelesen werden:

  • "de.cib.docserv.NumberOfQueuedRequests": Anzahl der Requests in der Warteschlange 
  • "de.cib.docserv.NumberOfSocketServersInUse": Anzahl der belegten Socketserver 
  • "de.cib.docserv.MaxServerQueueLength": Der voreingestellte Wert für die maximale Länge der Serverwarteschlange

Am Beispiel der Java Monitoring & Management Console:



Hinweis:
Eine Abfrage durch die Monitoring Komponente über die MBean liefert immer nur eine Momentaufnahme des Zustands zum Zeitpunkt der Abfrage. Es werden also von der MBean keine Zwischenwerte bis zur nächsten Abfrage gesammelt. Das bedeutet z. B., dass Lastspitzen, die vor oder nach einer Abfrage auftreten, von dieser nicht erfasst werden.
Um über einen Zeitraum kontinuierlich Daten zu erheben muss das Polling auf entsprechend kurze Intervalle eingestellt werden. Dies ist abhängig vom eingesetzten Monitoring Tool in der Ansteuerung der MBean zu konfigurieren.