Sie können den ESQL-Code des Mustercodes 'Message Routing' mit nur wenigen Änderungen auch in anderen Nachrichtenflüssen verwenden.
Zurzeit wird der Cache aktualisiert, wenn eine Aktualisierungsnachricht an die Warteschlange 'ROUTING.REFRESH' gesendet wird.
Für den Zeitpunkt der Aktualisierung des Cache können andere Bedingungen festgelegt werden, z. B.:
Bearbeiten Sie folgende Position im ESQL-Code, um die Bedingung zu ändern:
So legen Sie als Aktualisierungsbedingung ein Zeitintervall von 60 Sekunden fest:
IF CacheFile.LastUpDate is not null and (CURRENT_TIMESTAMP - CacheFile.LastUpDate) second < INTERVAL '60' SECOND THEN
IF CacheFile.Valid is not null THENin den Wert des vorherigen Schritts.
SET CacheFile.valid = true;in
SET CacheFile.LastUpDate = CURRENT_TIMESTAMP;
Zurzeit wählt der Mustercode den weiterzugebenden Datensatz aus, indem der Datensatzauswahlausdruck entsprechend festgelegt wird. Möglicherweise möchten Sie das jedes Mal, wenn eine Nachricht gesendet wird, der nächste Datensatz in der Datei abgerufen wird. Um dies zu erreichen, kann die relative Adresse (Offset) eingestellt werden.
Sie können die Offset-Eigenschaft wie folgt verwenden:
declare cache SHARED ROW;
SET OutputLocalEnvironment = InputLocalEnvironment; IF (cache.file.offset > 0) THEN SET OutputLocalEnvironment.Destination.File.Offset = cache.file.offset; ELSE SET OutputLocalEnvironment.Destination.File.Offset = 0; END IF;Setzen Sie die Eigenschaft Rechenmodus auf LocalEnvironment.
SET OutputLocalEnvironment = InputLocalEnvironment;Setzen Sie die Eigenschaft Rechenmodus auf LocalEnvironment.
SET cache.file.offset = OutputLocalEnvironment.File.Read.NextRecordOffset;
Der Mustercode zeigt, wie eine Nachricht an eine bestimmte Warteschlange weitergeleitet wird. Eine andere Möglichkeit besteht darin, die Nachricht an einen Label-Knoten weiterzuleiten. Gehen Sie zur Implementierung dieser Lösung wie folgt vor:
Sie können die MQOutput-Knoten durch andere Arten von Sendeknoten ersetzen. Sie können beispielsweise einen RouteToLabel-Knoten verwenden: