Eine OLTP Message-Driven Bean empfängt die Inbound Message als record
-Parameter der onMessage()
-Methode des Interfaces MessageListener
. Das empfangene Objekt ist vom Typ BCRecord
und enthält ein OltpMessage
-Objekt. Aus dem OltpMessage
-Objekt können Sie ein OltpMessageContext
-Objekt abrufen, das seinerseits Attribute der empfangenen Nachricht enthält und auch den dialogbasierten OLTP Message-Driven Beans als Factory zur Erstellung einer Reply Message dient:
Extrahieren Sie das Objekt
OltpMessage
aus dem ObjektBCRecord
:OltpMessage inMsg = ((BCRecord)record).getOltpMessage();
Richten Sie den Nachrichtenkontext ein:
String inMsgTxt;
OltpMessageContext oltpMsgCtx = inMsg.getMessageContext();
Greifen Sie auf den Nachrichteninhalt zu:
Das Objekt
OltpMessage
erlaubt einen Zugriff auf den Nachrichteninhalt, der in Form vonOltpMessageRecord-
oderOltpMessagePart-
Objekten verarbeitet wird. Aus diesen Objekten können Sie den Nachrichteninhalt als Objekt eines der folgenden Typen abrufen:byte[]
String
ByteContainer
Im Falle eines
OltpMessagePart
-Objekts geben Sie an:if (inMsg.countMessageParts() > 0) { OltpMessagePart inMsgPart; Iterator it<OltpMessagePart> = inMsg.getMessageParts(); for ( ; it.hasNext(); ) { inMsgPart = it.next(); inMsgTxt = inMsgPart.getText(); } }
Im Falle eines
OltpMessageRecord
-Objekts geben Sie an:if (inMsg.countMessageRecords() > 0) { OltpMessageRecord inMsgRec; Iterator it<OltpMessageRecord> = inMsg.getMessageRecords(); for ( ; it.hasNext(); ) { inMsgRec = (OltpMessageRecord) it.next(); inMsgTxt = inMsgRec.getText(); } }
Erstellen Sie ein
OLTPMessage
-Objekt für die Reply Message:Eine OLTP Message-Driven Bean für dialogbasierte Kommunikation verwendet das Interface
OltpMessageContext
, um einOltpMessage
-Objekt für die Reply Message zu erstellen:OltpMessage outMsg = oltpMsgCtx.createMessage();
Das Objekt
OltpMessage
muss mit dem Inhalt der Reply Message versorgt werden. Verwenden Sie hierzu das ObjektOltpMessageRecord
und/oder das ObjektOltpMessagePart
.Im Falle eines
OltpMessagePart
-Objekts geben Sie an:OltpMessagePart outMsgPart = outMsg.createMessagePart(); outMsgPart.setText("reply"); outMsg.addMessagePart(outMsgPart);
Im Falle eines
OltpMessageRecord
-Objekts geben Sie an:OltpMessageRecord outMsgRec = outMsg.createMessageRecord(""); outMsgRec.setText("reply"); outMsg.addMessageRecord(outMsgRec);
Vor der Rückgabe muss die Reply Message in das Objekt
BCRecord
eingesetzt werden, das anschließend von dieser Methode zurückgegeben wird:((BCRecord)record).setOltpMessage(outMsg);
Ein Code-Beispiel finden Sie im Beispiel 19 im Code-Beispiel für Inbound-Kommunikation .