Show TOC

Dokumentation zur VorgehensweiseKanalspezifische Zeitüberschreitung setzen Dieses Dokument in der Navigationsstruktur finden

 

Um einen einzelnen Kanal vom Messaging-System abzukoppeln und damit einen eigenen Timeout definieren zu können, müssen Sie eine kanalspezifische Zeitüberschreitung setzen. Dies trägt dazu bei, die Antwortzeit der Anwendung zu verringern.

Vorgehensweise

Sie können den Timeout-Wert wie folgt setzen:

  • Bei den Modulen CallSapAdapter und RfcAFBean wechseln Sie in die Registerkarte Modul, geben den Parameternamen syncTimeout ein und fügen einen Wert in Millisekunden hinzu.

    CallSapAdapter ist Teil der folgenden Adapter:

    • File/FTP

    • JDBC

    • JMS

    • HTTP_AAE

    • IDoc_AAE

    • SOAP

    • JCA (Beispiel-Adapter für die Adapter-Entwicklung)

  • Bei den XI-Sender- und RFC-Sender-Adaptern geben Sie einen Wert in die Adapterkonfiguration ein.

Ergebnis

Das Modul CallSapAdapter wird so erweitert, dass der Wert für die Zeitüberschreitung zur Laufzeit ausgewählt und an das Messaging-System übergeben wird. Somit steht die Funktion für die kanalspezifische Zeitüberschreitung für alle Adapter zur Verfügung, die das Modul CallSapAdapter verwenden.

Das Modul CallSapAdapter liest den Wert des Modulparameters syncTimeout.

Wenn Sie den Parameter nicht setzen, wird der Wert für die Zeitüberschreitung aus dem Kanalkonfigurationsattribut genommen. Wenn auch in der Kanalkonfiguration kein Timeout gesetzt ist, dann wird eine Zeitüberschreitung pro Kanal nicht unterstützt und das Standardverhalten entsprechend berücksichtigt.

Wenn Sie den Wert für die Zeitüberschreitung in der Kanalkonfiguration mit Hilfe des Moduls bzw. des Kanalparameters setzen und dieser Wert nicht Null ist, dann führt das Modul CallSapAdapter folgendes aus:

  • Für das empfangende Messaging-System wird ein System-Header syncTimeout zur Message mit dem Namensraum http://sap.com/xi/XI/Message/30/general hinzugefügt.

  • Dieser Header wird zusammen mit der Message wie folgt an das Messaging-System weitergeleitet: connection.call(msMessageRequest,syncMessageDeliveryTimeoutMsec). SyncMessageDeliveryTimeoutMsec gibt die Zeitüberschreitung in Millisekunden an. So lange muss das Messaging-System auf den Eingang einer Antwort warten, bevor eine MessageExpiredException an den Sender zurückgegeben werden muss.

  • Der RFC-Adapter fügt einen Audit-Log-Eintrag mit dem Zeitüberschreitungswert in Millisekunden hinzu. Das Modul CallSapAdapter protokolliert den Zeitüberscheitungswert, der an das Messaging-System übergeben wird.

Das empfangende Messaging-System wählt den Zeitüberschreitungswert aus der Message aus und leitet die Message zur weiteren Verarbeitung weiter. So lange, wie der Wert vorgibt, wartet das System auf die Antwort. Wenn innerhalb der definierten Zeitspanne von Millisekunden keine Antwort eingeht, löst das empfangende Messaging-System eine MessageExpiredException aus, die an den Sender zurück geschickt wird.