eBiss 3

Hilfe & Dokumentation

Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Themen

howtos:plugins:webservices:bundling

Web-Service Anfragenbündelung

Wenn Sie einen Web-Service einrichten, dann wird für jede Web-Service Anfrage ein eBiss Job gestartet. Was in den meisten Fällen genauso sein soll.

Sollten Ihnen Clients viele kleinen Anfragen schicken, dann haben Sie mit der Anfragenbündelung die Möglichkeit, diese Web-Service Aufrufe:

  • in einem Job zu bearbeiten und
  • die empfangenen Dokumente in einer Nachricht zu bündeln, z.B. solange der DocumentRecipient, der DocumentSender und die InterchangeReference gleiche bleibt.

Womit sich die Anzahl der gestarteten und parallel laufenden Jobs um eine vielfaches reduziert. Sowie die Anzahl der erstellten Nachrichten verringert wird.

Die Anfragenbündelung aktivieren Sie im Code, in dem Sie an die Basisklasse WebServiceBase im Konstruktor die folgenden Parameter übergeben:

  • bundlingMaxSeconds: wie lange sollen die Anfragen einem Job entgegengenommen werden und
  • bundlingIdleSeconds: wie lange soll maximal nach dem Eintreffen der letzten Web-Service Anfrage gewartet werden. Ist kein Pflichtparameter.
  • maxRequests: wie viele Anfragen sollen maximal entgegengenommen werden und somit in einem eBiss Job verarbeitet werden. Wenn nicht gesetzt, dann besteht keine Einschränkung.

Ein Code Beispiel:

   [ServiceContract]
   public class ExampleService : WebServiceBase, ISystemVariableConsumer, IRunningJobConsumer
   {
 
       public ExampleService() : base(bundlingMaxSeconds: 120, bundlingIdleSeconds: 10, bundlingMaxRequests: 20)
       {
       }
       ...

Wichtig für eine korrekte Verarbeitung ist, dass in der Web-Service Methode:

  • am Anfang ein using(WaitForInitialization()) steht, womit auf die Initialisierung gewartet wird. Mit dem „using“ ist der Abbruch im Fehlerfall gesichert.
  • am Ende innerhalb vom „using“ entweder:
    • Über einen Aufruf von WaitForMessageCreated() die Erstellung der Nachricht abgewartet wird, oder
    • wenn man die Nachricht selbst erstellt hat dies über den Aufruf von MessageCreated() bekanntgibt.
howtos/plugins/webservices/bundling.txt · Zuletzt geändert: 2025/06/01 15:50 von 127.0.0.1