非 DPL 环境中的 TI

非联接环境(即非 DPL 环境)是不使用 IBM 分布式程序联接 (DPL) 的环境。 可以使用 TI 来调用大型机交易程序 (TP),该程序使用 EXEC CICS RECEIVE INTO 和 EXEC CICS SEND FROM 这两个 COBOL 命令 。 当你希望 CICS TP 承担 SNA (APPC/LU 6.2) 对话责任,从而绕过镜像 TP 时,这两个 COBOL 命令非常有用。 换句话说,EXEC CICS RECEIVE INTO 和 EXEC CICS SEND FROM 这两个 COBOL 命令最常用于非链接环境,以将数据传入和传出 6.2 类型的 LU (APPC) 。

TI 对联接环境和非联接环境都支持 LU 6.2 模型。 可以创建下面的远程环境 (RE) 类型来支持每个模型:

  • 使用 LU 6.2 的 CICS 链接

    用于使用镜像 TP 的 IBM DPL 环境中。

  • 使用 LU 6.2 的 CICS

    用于绕过镜像 TP 的非 DPL 环境中。

    许多客户在非 DPL 环境中使用 TI。 唯一需要注意的是,终端逻辑是否嵌入了业务逻辑。 如果 COBOL TP 支持 IBM DPL,则说明表示逻辑已与业务逻辑分离,因此你可能不需要修改 COBOL。 但是,如果编写 TP 是为了与终端通信,那么很可能需要修改 COBOL 代码,以将业务逻辑与表示逻辑分离。

    例如,以下 COBOL 代码示例演示了如何通过使用 EXEC CICS RECEIVE INTO 和 EXEC CICS SEND FROM 这两个 COBOL 命令来处理未绑定的记录集:

*****************************************************  
* 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.  
  

另请参阅

Windows 启动处理