Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成リファレンス COBOL言語編


6.3.1 MHPの例(メインプログラム)

MHPのメインプログラムのコーディング例を次に示します。

  10       *
  20       ********************************************************
  30       * MHP メインプログラム                                 *
  40       ********************************************************
  50       *
  60        IDENTIFICATION DIVISION.
  70 
  80        PROGRAM-ID. CBMAIN.
  90 
 100        ENVIRONMENT DIVISION.
 110        CONFIGURATION SECTION.
 120       *
 130       ********************************************************
 140       *     ワーク変数                                       *
 150       ********************************************************
 160       *
 170        DATA DIVISION.
 180        WORKING-STORAGE SECTION.
 190       *
 200       ********************************************************
 210       *  RPC-OPEN データ領域                                 *
 220       ********************************************************
 230       *
 240        01  ROPEN-PARM1.
 250          02  ROPEN-NAME         PIC X(8) VALUE 'OPEN    '.
 260          02  ROPEN-STATUS       PIC X(5).
 270          02  FILLER             PIC X(3).
 280          02  RO-FLG             PIC S9(9) COMP VALUE ZERO.
 290       *
 300       ********************************************************
 310       *  MCF-OPEN データ領域                                 *
 320       ********************************************************
 330       *
 340        01  MOPEN-PARM1.
 350          02  MOPEN-NAME         PIC X(8) VALUE 'OPEN    '.
 360          02  MOPEN-STATUS       PIC X(5).
 370          02  FILLER             PIC X(3).
 380          02  MO-FLG1            PIC S9(9) COMP VALUE ZERO.
 390          02  MO-RSV             PIC X(12) VALUE LOW-VALUE.
 400       *
 410       ********************************************************
 420       *  MCF-MAINLOOP データ領域                             *
 430       ********************************************************
 440       *
 450        01  MAIN-PARM1.
 460          02  MAIN-NAME         PIC X(8) VALUE 'MAINLOOP'.
 470          02  MAIN-STATUS       PIC X(5).
 480          02  FILLER            PIC X(3).
 490          02  M-RSV             PIC X(16) VALUE LOW-VALUE.
 500       *
 510       ********************************************************
 520       * MCF-CLOSE データ領域                                 *
 530       ********************************************************
 540        *
 550         01  MCLSE-PARM1.
 560           02  MCLSE-NAME         PIC X(8) VALUE 'CLOSE   '.
 570           02  MCLSE-STATUS       PIC X(5).
 580           02  MFILLER            PIC X(3).
 590           02  MC-FLG1            PIC S9(9) COMP VALUE ZERO.
 600           02  MC-RSV             PIC X(12) VALUE LOW-VALUE.
 610        *
 620        ********************************************************
 630        * RPC-CLOSE データ領域                                 *
 640        ********************************************************
 650        *
 660         01  RCLSE-PARM1.
 670           02  RCLSE-NAME         PIC X(8) VALUE 'CLOSE   '.
 680           02  RCLSE-STATUS       PIC X(5).
 690           02  FILLER             PIC X(3).
 700           02  RC-FLG             PIC S9(9) COMP VALUE ZERO.
 710        *
 720         PROCEDURE DIVISION.
 730        *
 740        ********************************************************
 750        *   RPC-OPEN(UAPの開始)                                *
 760        ********************************************************
 770        *
 780           CALL 'CBLDCRPC' USING ROPEN-PARM1.
 790           IF ROPEN-STATUS IS NOT EQUAL TO '00000'
 800              GO TO RCLOS.
 810        *
 820        ********************************************************
 830        *   MCF-OPEN(MCF環境のオープン)                        *
 840        ********************************************************
 850        *
 860           CALL 'CBLDCMCF' USING MOPEN-PARM1.
 870           IF MOPEN-STATUS IS NOT EQUAL TO '00000'
 880              GO TO RCLOS.
 890        *
 900        ********************************************************
 910        *   MCF-MAINLOOP(MHPのサービス開始)                    *
 920        ********************************************************
 930        *
 940           CALL 'CBLDCMCF' USING MAIN-PARM1.
 950        *
 960        ********************************************************
 970        *  MCF-CLOSE(MCF環境のクローズ)                        *
 980        ********************************************************
 990        *
1000           CALL 'CBLDCMCF' USING MCLSE-PARM1.
1010        *
1020        ********************************************************
1030        *  RPC-CLOSE(UAPの終了)                                *
1040        ********************************************************
1050        *
1060         RCLOS.
1070           CALL 'CBLDCRPC' USING RCLSE-PARM1.
1080        *
1090        ********************************************************
1100        *      終了処理                                        *
1110        ********************************************************
1120        *
1130           STOP RUN.