Das Beispielprogramm 'Verarbeitung der Zeitlimitüberschreitung' veranschaulicht die Verwendung der Zeitlimitfunktion, die vom Zeitlimitsteuerungsknoten und Zeitlimitbenachrichtigungsknoten bereitgestellt wird. Sie können die Nachrichtenflüsse mit Hilfe dieser Knoten automatisch in regelmäßigen Intervallen ausführen. Dies wird als 'automatische Zeitlimits' bezeichnet. Sie können jedoch auch auf der Basis einzelner Nachrichten 'gesteuerte Zeitlimits' für Anwendungen festlegen.
Automatische Zeitlimits werden durch einen einzelnen Zeitlimitbenachrichtigungsknoten, der im Automatikmodus ausgeführt wird, festgelegt. Dabei muss ein Intervall (in Sekunden) als Konfigurationsparameter angegeben werden, das die Zeitspanne zwischen den aufeinanderfolgenden Aufrufen des Nachrichtenflusses angibt. Beispiele für automatische Zeitlimits:
Gesteuerte Zeitlimits werden durch einen oder mehrere Zeitlimitsteuerungsknoten festgelegt, die paarweise in Kombination mit einem Zeitlimitbenachrichtigungsknoten verwendet werden. Die Knoten müssen einander zugeordnet werden, indem Sie dieselbe Kennung als Konfigurationsparameter angeben. (Zwischen den Zeitlimitsteuerungsknoten und dem Zeitlimitbenachrichtigungsknoten besteht eine Viele-zu-eins-Beziehung, d. h. ein einzelner Zeitlimitbenachrichtigungsknoten kann die Zeitlimitanforderungen aller Zeitlimitsteuerungsknoten mit derselben Kennung verarbeiten.) Die Zeitlimitsteuerungsknoten empfangen Nachrichten mit Zeitlimitanforderungen in einem festgelegten Format, die anschließend von den Zeitlimitbenachrichtigungsknoten ausgewertet, gespeichert und verarbeitet werden, wenn sie abgelaufen sind.
Eine Zeitlimitanforderung enthält eine Kennung, die innerhalb der für die Verarbeitung bereitgestellten Zeitlimitknoten eindeutig sein muss. Dabei handelt es sich um eine andere Kennung als die, die für die Zuordnung zwischen Zeitlimitknoten verwendet wird. Eine Zeitlimitanforderung basiert auf einer Startzeit, einem Intervall und einer Anzahl. Sie können Zeitlimitanforderungen so konfigurieren, dass Sie zu einem bestimmten Zeitpunkt in der Zukunft beginnen und einmalig oder mehrmals mit einer Anzahl von mindestens 1 ein Pingsignal aussenden. Wenn die Anzahl größer als 1 ist, erfolgt das Senden der aufeinanderfolgenden Pingsignale im Abstand so vieler Sekunden, wie für das Intervall angegeben wurden.
Das Beispielprogramm 'Verarbeitung der Zeitlimitüberschreitung' enthält zwei Nachrichtenflüsse:
Die Abbildung veranschaulicht die Verwendung eines Zeitlimitbenachrichtigungsknotens im Automatikmodus:
Dieser Nachrichtenfluss ist so konfiguriert, dass er alle zehn Sekunden ein Pingsignal sendet, solange der Broker ausgeführt wird.
Die Abbildung veranschaulicht die gemeinsame Verwendung von Zeitlimitsteuerungsknoten und Zeitlimitbenachrichtigungsknoten. Die MSGFLOW-Datei enthält zwei Nachrichtenflusse: einen zum Anfordern der Zeitlimits und einen zu deren Verarbeitung.
Diese Nachrichtenflüsse werden durch die nachfolgend beschriebenen Testnachrichten gestartet, die Zeitlimitanforderungen enthalten und durch die Zeitlimitsteuerungsknoten 'TimeoutAll' und 'TimeoutFragment' verarbeitet werden. Diese Knoten werten die Zeitlimitanforderungen aus und speichern die Nachrichten für den gesteuerten Zeitlimitbenachrichtigungsknoten im zweiten Nachrichtenfluss, damit sie bei ihrem Eingang sofort verarbeitet werden können.
Der Knoten 'TimeoutAll' speichert die gesamte eingehenden Nachricht, während der Knoten 'TimeoutFragment' nur einen definierten Teil der eingehenden Nachricht speichert. Dieses Verhalten wird durch die Eigenschaften gesteuert, die auf der Registerkarte 'Nachricht' des Zeitlimitsteuerungsknotens angegeben sind.
Die vier Testnachrichten, die zur Steuerung des Nachrichtenflusses 'ControlledTimeout' verwendet werden, sind ganz normale XML-Nachrichten, die Rechnungsdetails für einen Kunden enthalten. Die folgende XML-Nachricht ist ein Beispiel für die vier Nachrichten:
<SaleEnvelope>
<Header>
<SaleListCount>1</SaleListCount>
<TimeoutRequest>
<Action>SET</Action>
<Identifier>tentimes</Identifier>
<Count>10</Count>
<Interval>10</Interval>
<AllowOverwrite>FALSE</AllowOverwrite>
</TimeoutRequest>
</Header>
<SaleList>
<Invoice>
<Initial>K</Initial><Initial>A</Initial>
<Surname>Braithwaite</Surname>
<Item>
<Code>00</Code><Code>01</Code><Code>02</Code>
<Description>Twister</Description>
<Category>Games</Category>
<Price>00.30</Price>
<Quantity>01</Quantity>
</Item>
<Item>
<Code>02</Code><Code>03</Code><Code>01</Code>
<Description>The Times Newspaper</Description>
<Category>Books and Media</Category>
<Price>00.20</Price>
<Quantity>01</Quantity>
</Item>
<Balance>00.50</Balance>
<Currency>Sterling</Currency>
</Invoice>
<Invoice>
<Initial>T</Initial><Initial>J</Initial>
<Surname>Dunnwin</Surname>
<Item>
<Code>04</Code><Code>05</Code><Code>01</Code>
<Description>The Origin of Species</Description>
<Category>Books and Media</Category>
<Price>22.34</Price>
<Quantity>02</Quantity>
</Item>
<Item>
<Code>06</Code><Code>07</Code><Code>01</Code>
<Description>Microscope</Description>
<Category>Miscellaneous</Category>
<Price>36.20</Price>
<Quantity>01</Quantity>
</Item>
<Balance>81.84</Balance>
<Currency>Euros</Currency>
</Invoice>
</SaleList>
<Trailer>
<CompletionTime>12.00.00</CompletionTime>
</Trailer>
</SaleEnvelope>
Mit Hilfe des Feldes '<TimeoutRequest>', das in das Feld '<Header>' eingebettet ist, legt der Zeitlimitsteuerungsknoten das angeforderte Zeitlimit fest, das vom Zeitlimitbenachrichtigungsknoten verarbeitet werden soll. In diesem Fall wird das Startdatum und die Startzeit nicht definiert, so dass die Standardwerte 'TODAY' und 'NOW' verwendet werden. Mit den im Feld '<TimeoutRequest>' angegebenen Informationen wird angefordert, dass das Zeitlimit zehn Pingsignale jeweils im Abstand von 10 Sekunden sendet, bevor es abgeschlossen ist.
Zwei der bereitgestellten Nachrichten enthalten Zeitlimitanforderungen mit festgelegten Zeitlimits: in der einen wird nach zehn Pingsignale die Beendigung des Nachrichtenflusses angefordert, während in der anderen eine unbegrenzte Fortsetzung der Pingsignale angefordert wird. Die anderen beiden Testnachrichten enthalten Abbruchanforderungen für die beiden Zeitlimitanforderungen und werden auf dieselbe Weise verarbeitet.