StorageService

Der StorageService dient zum kurzzeitigen (innerhalb des Arbeitsspeichers) oder längerfristigen Ablegen von Daten durch den Integration Server, die über eine einfache ID aufgefunden werden können.

Für das Speichern von Daten auf persistente Weise ist die Verwendung eines PersistentManagers erforderlich (siehe weiter unten).

XML-Konfiguration


Wichtiger Hinweis: Die Verfügbarkeit eines Services hängt von der erworbenen Lizenz ab und davon, ob der Service innerhalb der Konfigurationsdatei ./etc/factory.xml der Service-Factory eingetragen wurde (Änderungen erfordern Server-Neustart!). Dort finden Sie auch die zuständige Konfigurationsdatei für einen Service, ansonsten können Sie die Konfigurationsdatei des Services auch direkt in der GUI des Services bearbeiten (Änderungen erfordern Service-Neustart!).

Setzen der Standardwartezeit


Folgendes XML-Fragment setzt die Zeit, die zwischen zwei Überprüfungen auf Gültigkeit der gespeicherten Werte gewartet wird.


<Set name="waitTime">5000</Set>


Die Wartezeit wird in Millisekunden angegeben.

Setzen eines PersistentManagers


Folgendes XML-Fragment setzt und aktiviert den DefaultPersistentManager für den StorageService. Das Argument, das bei der Initialisierung des DefaultPersistentManagers übergeben wird, stellt hierbei das Verzeichnis dar, in dem die zu speichernden Objekte abgelegt werden sollen.


<Call name="setPersistentManager">
<Arg>
<New class="com.ebd.hub.services.storage.DefaultPersistentManager">
<Arg>./logs/storage</Arg>
</New>
</Arg>
</Call>


Folgendes XML-Fragment setzt und aktiviert den JDOPersistentManager für den StorageService. Das Argument, das bei der Initialisierung des JDOPersistentManager übergeben wird, stellt hierbei den zu verwendenden Datenbank-Alias dar.


<Call name="setPersistentManager">
<Arg>
<New class="com.ebd.hub.services.storage.JDOPersistentManager">
<Arg>hub</Arg>
<Set name="optimizeTables">true</Set>
</New>
</Arg>
</Call>


In einem Load-Balancing-Umfeld wird von Lobster die Datenbank Redis empfohlen. Folgendes XML-Fragment setzt und aktiviert den RedisPersistentManager für den StorageService.


<Call name="setPersistentManager">
<Arg>
<New class="com.ebd.hub.services.storage.RedisPersistentManager">
<Arg>redis://localhost:6379</Arg>
<Arg>my password</Arg>
</New>
</Arg>
</Call>


Will man bestehende Einträge vom JDOPersistentManager migrieren, reicht die Angabe des Datenbank-Aliases des JDO-Managers aus.


<Call name="setPersistentManager">
<Arg>
<New class="com.ebd.hub.services.storage.RedisPersistentManager">
<Arg>redis://localhost:6379</Arg>
<Arg>my password</Arg>
<Set name="jDOAlias">hub</Set>
<!-- only needed to migrate from JDOPersistentManager -->
</New>
</Arg>
</Call>


Falls ein Redis-Cluster angesprochen werden soll (hier bestehenden aus 3 Maschinen node1, node2 und node3), kann folgendes XML-Fragment verwendet werden.


<Call name="setPersistentManager">
<Arg>
<New class="com.ebd.hub.services.storage.RedisPersistentManager">
<Arg>
<New class="java.util.HashSet">
<Call name="add">
<Arg>
<New class="redis.clients.jedis.HostAndPort">
<Arg>node1</Arg>
<Arg type="int">6379</Arg>
</New>
</Arg>
</Call>
<Call name="add">
<Arg>
<New class="redis.clients.jedis.HostAndPort">
<Arg>node2</Arg>
<Arg type="int">6379</Arg>
</New>
</Arg>
</Call>
<Call name="add">
<Arg>
<New class="redis.clients.jedis.HostAndPort">
<Arg>node3</Arg>
<Arg type="int">6379</Arg>
</New>
</Arg>
</Call>
</New>
</Arg>
<Arg>my password</Arg>
</New>
</Arg>
</Call>

Allgemeine Einstellungen


images/download/attachments/189460946/Services_11-version-1-modificationdate-1737691367632-api-v2.png


(1) Die Zeit, die zwischen zwei Überprüfungen auf Gültigkeit der gespeicherten Werte gewartet wird.

(2) Der verwendete PersistenceManager und das Verzeichnis in dem die zu speichernden Objekte abgelegt werden sollen.

Aktuell verwaltete Objekte


images/download/attachments/189460946/Services_12-version-1-modificationdate-1737691367628-api-v2.png


(1) Die Liste der gerade verwalteten Objekte. Angezeigt werden der eindeutige Schlüssel, ob das Objekt persistent gespeichert ist, die Zeit bis zum Entfernen des Objektes, wenn darauf nicht mehr zugegriffen wird und der Wert des Objekts, wenn dieser darstellbar ist. Über das Kontextmenü kann ein Objekt aus dem Speicher gelöscht werden.

Loglevel-Abhängigkeiten


Änderungen des Loglevels beim LogService haben keinen Einfluss auf das Logverhalten des StorageServices.

Wird der Service in den Verbose-Mode gesetzt, werden die Schlüssel aller hinzugefügten und entfernten Einträge im Log festgehalten.