Verfügbarkeit des Communication Log Service (Offline-Mode)‌

Der Communication Log Service 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. Im DMZ Server wird der Communication Log Service 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 im DMZ auf diesen Service sofort an den inneren Server weitergeleitet. Der Message Communication Log Service 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 Message Service 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 Message Communication Log Service kann im Offline Mode keine Jobnummer loggen, weil die Daten noch nicht verarbeitet werden. Diese Einträge haben keine Jobnummer.

Der Message Communication Log Service greift auf seinen lokalen Message Service zu, über einen Service Name, der mit dem Parameter messageServiceName konfiguriert werden kannmessageServiceName konfiguriert werden kann. Er muss zusätzlich Zugriff auf seinen lokalen Authentication Service über den Service Name haben, der durch den Parameter authenticationServiceName konfiguriert werden kann. Gültige Defaults sind bereits vordefiniert. Eine explizite Konfiguration ist nur in Spezialfällen erforderlich.

Analog zum Message Authentication Service kann die Message Queue, die für die Kommunikation mit dem inneren Server verwendet wird, durch die Parameter messageContext und messageQueue konfiguriert werden, ebenso der defTargetService. Es sind bereits gültige Defaults 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 Message Authentication Service konfiguriert wurde.

Der Parameter maxWait gibt die maximale Wartezeit in Millisekunden für die Antwort auf eine synchrone Message an. Der Defaultwert von 8000 ms wird in allen Einsatzfällen ausreichen. Der Wert soll ausreichend groß gewählt werden, so dass 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 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

messageContext

Kontext der Consumer Queue des inneren Communication Log Service.

System

messageQueue

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

CommlogCall

defaultTarget

:, wo die Remote-Schnittstelle des inneren Message Service erreichbar ist.

Port: 8020 (falls nur der Host und nicht der Port angegeben wird)

defTargetService

Name, unter dem der inneren Communication Log Service registriert ist.

CommunicationLogService

maxWait

Timeout bei synchronen Messages [ms].

8000 (8 Sek.)

lifeTime

Lebenszeit bei persistenten Messages [ms].

7200000 (2h)

messageServiceName

Registrierter Name des Message Service in diesem DMZ Server.

MessageService

authenticationServiceName

Registrierter Name des Authentication Services in diesem DMZ Server.

AuthenticationService