Verfügbarkeit des CommunicationLogServices (Offline-Mode)‌

Der CommunicationLogService zeichnet Kommunikationsvorgänge im Communication Log auf, wie z. B. die Einlieferung einer Datei per FTP, mit Zeitstempel, Jobnummer, usw. Die Datenbank-Tabelle wird vom inneren Server verwaltet. Auf dem DMZ-Server wird der CommunicationLogService durch folgende Klasse bereitgestellt: com.ebd.hub.services.commlog.MessageCommunicationLogService. In der mitgelieferten Datei ./etc/commlog_dmz.xml wird der Service konfiguriert (siehe Tabelle unten).

Im Online Mode (Normalfall) werden Zugriffe der Kommunikationsdienste auf dem DMZ-Server auf diesen Service sofort an den inneren Server weitergeleitet. Der MessageCommunicationLogService sendet dazu synchrone Messages an den inneren Server. Wenn die synchrone Message nicht zugestellt werden kann, weil z. B. der innere Server down ist, bzw. wenn die Antwort nicht innerhalb der maximalen Wartezeit maxWait zurück kommt, wird eine persistente Message erzeugt (Offline-Mode).

Im Offline Mode versucht der MessageService eigenständig, innerhalb der lifeTime dieser persistenten Message, sie an den inneren Server weiterzuleiten. Sobald dieser wieder erreichbar ist, wird das Kommunikations-Ereignis nachträglich geloggt. Wenn allerdings die lifeTime dieser Message überschritten ist, bevor der innere Server wieder erreichbar wird, geht dieser Log-Eintrag verloren. Hinweis: Der MessageCommunicationLogService kann im Offline-Mode keine Jobnummer loggen, weil die Daten noch nicht verarbeitet werden. Diese Einträge haben keine Jobnummer.

Der MessageCommunicationLogService greift auf seinen lokalen MessageService zu, über einen Service-Namen, der mit dem Parameter messageServiceName konfiguriert werden kann. Er muss zusätzlich Zugriff auf seinen lokalen AuthenticationService über den Service-Namen haben, der durch den Parameter authenticationServiceName konfiguriert werden kann. Gültige Default-Werte sind bereits vordefiniert. Eine explizite Konfiguration ist nur in Spezialfällen erforderlich.

Analog zum MessageAuthenticationService kann die Message Queue, die für die Kommunikation mit dem inneren Server verwendet wird, durch die Parameter messageContext, messageQueue und defTargetService konfiguriert werden. Es sind bereits gültige Default-Werte definiert, eine Änderung wäre nur im Ausnahmefall erforderlich und dann nur zusammen mit dem inneren Server.

Das defaultTarget definiert die Message-Route zum inneren Server und muss hier nicht konfiguriert werden, wenn sie bereits beim MessageAuthenticationService konfiguriert wurde.

Der Parameter maxWait gibt die maximale Wartezeit in Millisekunden für die Antwort auf eine synchrone Message an. Der Default-Wert von 8000 ms dürfte in allen Einsatzfällen ausreichen. Der Wert sollte ausreichend groß gewählt werden, sodass Antworten, die nach dieser Zeit eintreffen, praktisch nicht auftreten können.

Der Parameter lifeTime sollte explizit konfiguriert werden, wenn Ausfallzeiten überbrückt werden müssen, die länger dauern als der Default-Wert von zwei Stunden. Bei längeren Ausfällen des inneren Servers oder der Netzverbindung zwischen DMZ-Server und innerem Server, gehen die Log-Einträge, deren lifeTime überschritten ist, verloren.

Die Datei ./etc/commlog_dmz.xml enthält als Kommentarblöcke bereits die wichtigsten Konfigurationsparameter für den Service. Alle Parameter befinden sich im Configure-Element.


<Configure class="com.ebd.hub.services.commlog.MessageCommunicationLogService">
...
</Configure>


Jeder einzelne Parameter wird in der folgenden Form definiert (hier abstrakt).


<Set name="Parametername">Parameterwert</Set>


Parameter in Datei ./etc/commlog_dmz.xml


Parameter

Funktion

Default-Wert

authenticationServiceName

Registrierter Name des AuthenticationServices auf diesem DMZ-Server.

AuthenticationService

defaultTarget

<host>:<port>, wo die Remote-Schnittstelle des inneren Message Service erreichbar ist. Zum Beispiel 192.168.254.12:8020

8020 (Default-Wert für Port, falls nur der Host und nicht der Port angegeben wird)

defTargetService

Name, unter dem der inneren CommunicationLogService registriert ist.

CommunicationLogService

lifeTime

Lebenszeit bei persistenten Messages in ms.

7200000 (2 Stunden)

maxWait

Timeout bei synchronen Messages in ms.

8000 (8 Sekunden)

messageContext

Kontext der Consumer Queue des inneren CommunicationLogServices.

System

messageQueue

Name der Consumer Queue, die für Anfragen an den inneren CommunicationLogService verwendet wird. Er muss mit dem Namen der Queue übereinstimmen, an der der innere CommunicationLogService registriert ist.

CommlogCall

messageServiceName

Registrierter Name des MessageServices auf diesem DMZ-Server.

MessageService