Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Programmierinformationen zu OLTP Message-Driven Beans

&pagelevel(5)&pagelevel
  • Eine OLTP Message-Driven Bean muss genau eines der folgenden Interfaces implementieren:

    • AsyncOltpMessageListener

    • OltpMessageListener 

  • Ein OltpMessage-Objekt kann aus einem oder mehreren OltpMessagePart-Objekten und/oder einem oder mehreren OltpMessageRecord-Objekten bestehen. Während ein OltpMessageRecord beliebig lang sein kann, darf ein OltpMessagePart 32767 Bytes nicht übersteigen.

    Aus OltpMessagePart- und OltpMessageRecord-Objekten können Sie den Nachrichteninhalt als Objekt eines der folgenden Typen abrufen:

    • byte[]

    • String

    • ByteContainer 

    Eine OLTP Message-Driven Bean kann das Interface ByteContainer implementieren, wenn sie mit einer EIS-Anwendung strukturierte Objekte austauschen möchte, die Text und Binärdaten enthalten. In diesem Fall muss eine Code-Konvertierung für die Textinformationen des strukturieren Objekts durchgeführt werden. Bei Objekten des Typs String wird die Code-Konvertierung von BeanConnect durchgeführt. Weitere Einzelheiten hierzu finden Sie in der JavaDoc zu BeanConnect. 
  • Die Reihenfolge, in der OltpMessagePart- und/oder OltpMessageRecord-Objekte zu einem OltpMessage-Objekt hinzugefügt oder von einem OltpMessage-Objekt zurückgegeben werden, entspricht der Reihenfolge, in der die Nachricht gesendet wird bzw. empfangen wurde. 

  • Das Interface OltpMessageContext dient zwei Zwecken:

    • Es stellt eine Methode zum Generieren einer Reply Message bereit.

    • Es ermöglicht den Abruf von Statusinformationen. 

    Eine OLTP Message-Driven Bean kann die Interface-Methode OltpMessageContext nur von der Methode onMessage() aus aufrufen. 
  • Wenn Sie die Methoden addMessagePart() oder addMessageRecord() innerhalb der Methode onMessage() aufrufen, müssen Sie dieselbe OltpMessage verwenden, mit der auch die Methoden createMessagePart() oder createMessageRecord() aufgerufen wurden. 

  • Asynchrone OLTP Message-Driven Beans empfangen asynchrone Nachrichten, die unabhängig von der Verfügbarkeit des Auftraggebers eintreffen. Aus diesem Grund kann weder eine Reply Message noch eine durch eine asynchrones OLTP Message-Driven Bean ausgelöste Exception an den Auftraggeber der asynchronen Nachricht zurückgesendet werden. 

  • Wenn zwischen der EIS-Anwendung und BeanConnect transaktional über das OSI TP Protokoll kommuniziert wird, läuft die Methode onMessage(OltpMessage) einer dialogbasierten OLTP Message-Driven Bean innerhalb der verteilten Transaktion ab, falls dieser Methode das Transaktionsattribut Required zugewiesen wurde. 

  • Asynchrone OLTP Message-Driven Beans können niemals Teil einer zwischen dem EIS und dem Application Server verteilten Transaktion sein. 

  • Die Methode onMessage() einer asynchronen OLTP Message-Driven Bean, die mit dem Transaktionsattribut Required deployt wurde, wird innerhalb einer Transaktion aufgerufen, die vom Proxy gestartet wurde (niemals vom EIS). Wird die Transaktion zurückgesetzt, so wird die asynchrone Nachricht ggf. erneut an die OLTP MessageDriven Bean ausgeliefert.

    Die OLTP Message-Driven Bean kann eine solche Situation ermitteln, indem sie den Wert des Redelivery-Zählers eines asynchronen OltpMessage-Objekts auswertet. Die Konfigurations-Property redeliveryThreshold, die beim Deployment der OLTP Message-Driven Bean festgelegt wird, definiert die Anzahl der zusätzlichen Auslieferungsversuche für eine Nachricht im Falle einer Störung oder eines Fehlers (siehe „redeliveryThreshold“ im Konfigurations-Properties für Inbound-Kommunikation in ejb-jar.xml definieren). 

  • Für den Austausch von Nachrichten, die nicht in ASCII codiert sind, stehen über das Interface OltpMessageContext die Methoden des Interfaces EncodingDef zur Verfügung.

Weitere Einzelheiten hierzu finden Sie in der JavaDoc zu BeanConnect.