Wenn Sie Zeitlimitflüsse konzeptionieren, können sich manche Ihrer Entscheidungen auf die Leistung Ihrer Broker und Anwendungen auswirken.
Mithilfe der Zeitlimitknoten TimeoutControl
und TimeoutNotification können Sie in Nachrichtenflüssen
die die Art und Weise steuern, in der Nachrichtenflüsse funktionieren:
- Setzen Sie die Eigenschaft Betriebsmodus des
TimeoutNotification-Knotens auf
Automatisch. Diese Einstellung bewirkt, dass ein
Nachrichtenfluss in dem Intervall aufgerufen wird, das Sie mit der Eigenschaft
Zeitlimitwert festlegen. Wenn die Downstream-Verarbeitung sehr
intensiv ist und der Nachrichtenfluss noch ausgelastet ist, wenn die nächste
Zeitlimitüberschreitung eintritt, wird der Nachrichtenfluss für die betreffende Zeitlimitinstanz
nicht gestartet.
Der Nachrichtenfluss wird benachrichtigt, nur dann erneut zu starten, wenn er beim
Eintreten eines bestimmten Zeitlimits betriebsbereit ist.
Der Wert für die Eigenschaft
Zusätzliche Instanzen des Nachrichtenflusses wird im
Downstream-Betrieb eines TimeoutNotification-Knotens
ignoriert, sodass Sie diese Eigenschaft nicht verwenden können, um das Verhalten des
Nachrichtenflusses zu ändern.
- Verwenden Sie zwei verknüpfte Nachrichtenflüsse, um eine benutzerdefinierte
Zeitlimitverarbeitung durchzuführen.
Legen Sie ein Zeitlimit mit einem
TimeoutControl-Knoten fest, und benachrichtigen Sie den
Nachrichtenfluss über einen TimeoutNotification-Knoten
(der sich wie ein Empfangsknoten zum Starten eines neuen Nachrichtenfluss-Threads verhält). Wenn
die Downstream-Verarbeitung vom
TimeoutNotification-Knoten erheblich ist, können sich
Anforderungen, die im TimeoutControl-Knoten entstehen,
stauen. Sie können angeben, dass die Zeitlimitnachrichten nur generiert werden, wenn der
Nachrichtenfluss, der mit dem TimeoutNotification-Knoten
gestartet wird, wieder frei wird.
Sie können den Wert der Eigenschaft
Zusätzliche Instanzen des Nachrichtenflusses nicht erhöhen, wenn
er mit einem TimeoutNotification-Knoten startet. Deshalb
können Sie nicht mehr Threads anwenden, um die Kapazität des Nachrichtenflusses zu erhöhen.
Zwar können Sie mithilfe eines
TimeoutNotification-Knotens bewirken, dass Knoten in
einem Nachrichtenfluss die nächste Arbeitseinheit abrufen. Diese Vorgehensweise erzwingt jedoch
eine Verzögerung zwischen den einzelnen Transaktionen und stellt in der Regel keine effiziente
Lösung dar. Wenn eine Ressource regelmäßig auf die nächste Arbeitseinheit überprüft werden soll und
die Verarbeitung unverzüglich erfolgen soll, bietet sich eine der folgenden alternativen Lösungen
an:
- Verwenden Sie einen integrierten Empfangsknoten.
- Schreiben Sie einen eigenen Empfangsknoten mithilfe der API für benutzerdefinierte Knoten (in
Java™ oder C).
- Erwerben Sie einen von IBM® oder einem Anbieter bereitgestellten Adapter, der das gewünschte
Subsystem abfragt und den Nachrichtenfluss auslöst.
Ein Nachrichtenfluss, der diese Optionen verwendet, kann insgesamt mehr Arbeit
erledigen, als er bei der Implementierung einer Zeitlimitlösung könnte, und verursacht einen
geringeren CPU-Aufwand. Allerdings können die anfänglichen Entwicklungskosten etwas höher liegen.