Freigeben über


TI in einer Nicht-DPL-Umgebung

In einer nicht verknüpften Umgebung (also einer Nicht-DPL-Umgebung) wird IBM Distributed Program Link (DPL) nicht verwendet. TI kann zum Aufrufen eines Mainframetransaktionsprogramms (TP) verwendet werden, das die COBOL-Befehle EXEC CICS RECEIVE INTO und EXEC CICS SEND FROM verwendet. Diese beiden COBOL-Befehle sind nützlich, wenn Sie möchten, dass ein CICS-TP die Verantwortung für die SNA-Konversation (APPC/LU 6.2) übernimmt und daher das Spiegel-TP umgeht. Mit anderen Worten: Die COBOL-Befehle EXEC CICS RECEIVE INTO und EXEC CICS SEND FROM werden meist in einer nicht verknüpften Umgebung verwendet, um Daten in eine und aus einer logischen Einheit (LU) vom Typ 6.2 (APPC) zu übertragen.

TI unterstützt das LU 6.2-Modell für verknüpfte und nicht verknüpfte Umgebungen. Sie können die folgenden Remoteumgebungstypen erstellen, um die einzelnen Modelle zu unterstützen:

  • CICS-Verknüpfung mit LU 6.2

    Verwenden Sie dies in einer IBM-DPL-Umgebung mit einem Spiegel-TP.

  • CICS mit LU 6.2

    Verwenden Sie dies in einer Umgebung ohne DPL, in der das Spiegel-TP umgangen wird.

    Viele Kunden verwenden TI in einer Nicht-DPL-Umgebung. Es ist lediglich zu berücksichtigen, ob die Terminallogik in die Geschäftslogik eingebettet wird. Wenn IBM DPL von einem COBOL-TP unterstützt wird, wurde die Präsentationslogik bereits von der Geschäftslogik getrennt, sodass Sie den COBOL-Code wahrscheinlich nicht ändern müssen. Wenn das TP jedoch für die Kommunikation mit einem Terminal geschrieben wurde, müssen Sie wahrscheinlich den COBOL-Code ändern, um die Geschäftslogik von der Präsentationslogik zu trennen.

    Der folgende COBOL-Beispielcode zeigt, wie sie ungebundene Recordsets mithilfe der COBOL-Befehle EXEC CICS RECEIVE INTO und EXEC CICS SEND FROM behandeln:

*****************************************************  
* Example showing how to send unbounded recordsets  
* to a client application.  
*****************************************************  
 IDENTIFICATION DIVISION.  
  
 ENVIRONMENT DIVISION.  
  
 DATA DIVISION.  
  
 WORKING-STORAGE SECTION.  
  
* INPUT AREA  
 01  CUSTOMER-INPUT-NUMBER                PIC 9(9).  
  
* OUTPUT AREA  
 01  CUSTOMER-DATA.  
     05  LAST-NAME                        PIC X(20).  
     05  FIRST-NAME                       PIC X(20).  
  
* ONE ROW IN A DATABASE TABLE  
 01  INVOICES.  
     05  INVOICE-NUMBER                   PIC 9(10).  
     05  INVOICE-DATE                     PIC 9(7) COMP-3.  
     05  INVOICE-AMOUNT                   PIC S9(13)V9(2) COMP-3.  
     05  INVOICE-DESCRIPTION              PIC X(40).  
  
 LINKAGE SECTION.  
  
 PROCEDURE DIVISION.  
*  
*   Get the input customer account number from the  
*   client applicaton:  
*  
     MOVE LENGTH OF CUSTOMER-INPUT-NUMBER TO RECEIVE-LENGTH  
     EXEC-CICS RECEIVE INTO(CUSTOMER-INPUT-NUMBER)  
               LENGTH(RECEIVE-LENGTH)  
               END-EXEC.  
*  
*   Do some work; then send the first and last name back:  
*  
     MOVE LENGTH OF CUSTOMER-DATA TO SEND-LENGTH  
     EXEC-CICS SEND FROM(CUSTOMER-DATA)  
               LENGTH(SEND-LENGTH)  
               END-EXEC.  
*  
*   Follow regular data with unbounded table data that  
*   the client application sees as a recordset:  
*  
     MOVE LENGTH OF INVOICES TO SEND-LENGTH  
     PERFORM UNTIL        NO-MORE-INVOICES  
*  
*   Do some work to get the next row:  
*  
     MOVE DB-INVOICE-NUMBER TO INVOICE-NUMBER  
     MOVE DB-INVOICE-DATE   TO INVOICE-DATE  
     MOVE DB-INVOICE-AMOUNT TO INVOICE-AMOUNT  
     MOVE DB-INVOICE-DESC   TO INVOICE-DESCRIPTION  
*  
*   Send the row:  
*  
     EXEC-CICS SEND FROM(INVOICES)  
               LENGTH(SEND-LENGTH)  
               END-EXEC.  
     END-PERFORM.  
  

Weitere Informationen

Von Windows initiierte Verarbeitung