次の方法で共有


非 DPL 環境での TI

リンクされていない環境 (つまり、DPL ではない環境) とは、IBM 分散プログラム リンク (DPL) を使用しない環境です。 TI を使用して、EXEC CICS RECEIVE INTO および EXEC CICS SEND FROM COBOL コマンドを使用するメインフレーム トランザクション プログラム (TP) を呼び出すことができます。 この 2 つの COBOL コマンドは、SNA (APPC/LU 6.2) の会話を CICS TP に担当させ、そのため、ミラー TP を回避するときに役立ちます。 言い換えると、EXEC CICS RECEIVE INTO および EXEC CICS SEND FROM COBOL コマンドは、型 6.2 (APPC) の LU との間でデータを転送するために、リンクされていない環境で最も頻繁に使用されます。

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 側開始の処理