Übersicht
Der QueueService3 ist ein aktiver Service, welcher die Aufgabe hat, Nachrichten aus der Queue der B2B auszulesen und zu verarbeiten. Hierbei können mehrere QueueServices parallel arbeiten. Dies ermöglicht es, verschiedene spezialisierte QueueServices für verschiedene Nachichtengrößen zu verwenden. Nachfolgend werden einige Eigenschaften erläutert, über die der Administrator Einfluss auf das Verhalten des Services nehmen kann. Die Aufzählung der Eigenschaften kann ggf. unvolllständig sein.
Technische Beschreibung
Klassenpfad: org.b2bbp.service.inbound.queue.QueueService3
Konfiguration
Aufteilung nach Nachrichtengrößen
Nachrichten werden aufgrund ihrer Größe in 4 Gruppen eingeteilt: SMALL, MEDIUM, LARGE und EXCLUSIVE. Die Grenzen werden über die GlobalProperty EDI_SIZES
für Edifact Nachrichtung und XML_SIZES
für IDOC Nachichten definiert. Dabei werden die 3 Grenzen mit einem Komma getrennt in diese Property geschrieben
Beispiel: “100,1000,5000” => Nachrichten mit 1-99 Bytes sind SMALL, Nachrichten it 100-999 Bytes sind MEDIUM, Nachrichten mit 1000-4999 Bytes sind LARGE und Nachrichten mit 5000 und mehr Bytes sind EXCLUSIVE
Default
- Für Edifact:
"10000,500000,2500000"
- Für IDOC:
"100000,2000000,10000000"
Verteilung der Nachrichten auf verschiedene QueueServices
Über die ServiceProperties B3P_QUEUE_SIZE_GROUP_SMALL_MAX
, B3P_QUEUE_SIZE_GROUP_MEDIUM_MAX
und B3P_QUEUE_SIZE_GROUP_LARGE_MAX
wird die jeweilige maximale Anzahl von Nachrichten einer bestimmten Größenklasse festgelegt, die dieser QueueService pro Durchlauf verarbeitet. Hier werden ganzzahlige Eingaben erwartet. Ob ein QueueService Nachrichten der Größenklasse EXCLUSIVE verarbeitet wird über die ServiceProperty B3P_QUEUE_SIZE_GROUP_EXECUTE_EXCLUSIV
gesteuert. Anders als bei den anderen Gruppen werden hier die Angaben true
oder false
erwartet.
Default Werte:
- QueueSizes: 0
- Exclusiv-Verarbeitung
false
Wartezeit zwischen den Durchläufen des Service
Die Wartezeit zwischen dem Ende des vorherigen Laufs und dem Start des nächsten Laufs des QueueService lässt sich durch die ServiceProperty B3P_SERVICE_SCHEDULING_DELAY
steuern. Die Angabe der Verzögerung erfolgt in Millisekunden.
Default: 1000 Millisekunden
parallele Verarbeitung innerhalb eines QueueService
Ein QueueService kann Nachrichten in der Queue, die er verarbeitet entweder sequentiell oder parallel verarbeiten. Dies wird über die ServiceProperty B3P_SYNC_EXECUTION
gesteuert.
Mögliche Werte sind:
true
=> sequentielle Verarbeitungfalse
=> parallele Verarbeitung
Default: false
Handling doppelter Messages
Wird die ServiceProperty LAST_REFERENCE_ID_MAX_SIZE
gesetzt, überprüft der QueueService eingehende Edifact Nachrichten auf Dopplungen. Dabei wird ein Puffer mit der konfigurierten Größe der letzten verarbeiteten Messages vorgehalten. Dafür werden die Referenznummer sowie die Ids des Absenders und des Empfängers geprüft. Sollte diese Prüfung eine Dopplung ergeben, wird die Verabreitung des Nachricht für eine in der ServiceProperty BUFFER_TIME
konfigurierte Anzahl von Millisekunden pausiert. In der sequetiellen Verabreitung pausiert der QueueService für diese Zeit.
Defaults:
- Puffern doppelter Messages: aus
- Puffer Zeit bei eingeschaltetem Puffer: 2 Sekunden
Queue-spezifische Fehler als Systemfehler melden
Durch das Setzen der ServiceProperty LOG_QUEUE_SPECIFIC_ERRORS_IN_SYSTEM_ERRORS
auf true
oder false
kann gesteuert werden, ob Fehler innerhalb dieses QueueService als Systemfehler gemeldet werden.
Default: true