Hitachi

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


7.1.2 SPPの例(メイン関数)

SPPのメイン関数のコーディング例を次に示します。

  10  /*
  20   *SPP01 メイン関数
  30   */
  40  #include <stdio.h>
  50  #include <dcrpc.h>
  60  #include <dcdam.h>
  70  #define DAMFILE "damfile0"
  80  
  90  int damfd;   /* damfile file-id */
 100  
 110  main()
 120  {
 130  /*
 140   *リターン値を格納する領域の定義
 150   */
 160    int rc;
 170  /*
 180   *RPC-OPEN(UAPの開始)
 190   */
 200    rc = dc_rpc_open(DCNOFLAGS);
 210    if(rc != DC_OK) {
 220      printf("SPP01:dc_rpc_openに失敗しました。CODE = %d \n",rc);
 230      goto PROG_END;
 240    }
 250  /*
 260   *DAM-OPEN(論理ファイルのオープン)
 270   */
 280    rc = dc_dam_open(DAMFILE,DCDAM_BLOCK_EXCLUSIVE);
 290    if(rc < DC_OK) {
 300      printf("SVR01:dc_dam_openに失敗しました。CODE = %d \n",rc);
 310      goto DAM_END;
 320    }
 330    damfd = rc;
 340  /*
 350   *RPC-MAINLOOP(SPPのサービス開始)
 360   */
 370    printf("SPP01:mainloopに入ります。\n");
 380    rc = dc_rpc_mainloop(DCNOFLAGS);
 390    if(rc != DC_OK) {
 400      printf("SPP01:dc_rpc_mainloop \
 410          に失敗しました。CODE = %d \n",rc);
 420    }
 430  /*
 440   *DAM-CLOSE(論理ファイルのクローズ)
 450   */
 460    DAM_END:
 470    rc = dc_dam_close(damfd,DCNOFLAGS);
 480    if(rc != DC_OK) {
 490      printf("SVR01:dc_dam_closeに失敗しました。CODE = %d\n",rc);
 500    }
 510  /*
 520   *RPC-CLOSE(UAPの終了)
 530   */
 540    PROG_END:
 550    dc_rpc_close(DCNOFLAGS);
 560    printf("SPP01:SPPのサービス処理を終了します。\n");
 570    exit(0);
 580  }