Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Program Framework mit dem Interface javax.resource.cci.MessageListener

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:

  1. Extrahieren Sie das Objekt OltpMessage aus dem Objekt BCRecord:

    OltpMessage inMsg = ((BCRecord)record).getOltpMessage();
     

  2. Richten Sie den Nachrichtenkontext ein:

    String inMsgTxt;
    OltpMessageContext oltpMsgCtx = inMsg.getMessageContext();
     

  3. Greifen Sie auf den Nachrichteninhalt zu:

    Das Objekt OltpMessage erlaubt einen Zugriff auf den Nachrichteninhalt, der in Form von OltpMessageRecord- oder OltpMessagePart-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();
      }
    } 
  4. Erstellen Sie ein OLTPMessage-Objekt für die Reply Message:

    Eine OLTP Message-Driven Bean für dialogbasierte Kommunikation verwendet das Interface OltpMessageContext, um ein OltpMessage-Objekt für die Reply Message zu erstellen:

    OltpMessage outMsg = oltpMsgCtx.createMessage();
     

  5. Das Objekt OltpMessage muss mit dem Inhalt der Reply Message versorgt werden. Verwenden Sie hierzu das Objekt OltpMessageRecord und/oder das Objekt OltpMessagePart.

    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); 
  6. 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 .