Hitachi

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


7.2.1 SPPの例(メイン関数)

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

  10  /*
  20   * spp01 メイン関数
  30   */
  40  #include <stdio.h>
  50  #include <dcrpc.h>
  60  #include <dctam.h>
  70  #define  TAMTABLE    "tamtable30"
  80  
  90  long  tamfd ;      /* tamfile file-id  */
 100  
 110  main()
 120  {
 130  
 140  /*
 150   * リターンコード格納変数の定義
 160   */
 170    int    rcd ;
 180  /*
 190   * RPC-OPEN(UAPの開始)
 200   */
 210    rcd = dc_rpc_open(DCNOFLAGS) ;
 220    if(rcd != DC_OK) {
 230      printf("SPP01:dc_rpc_openに失敗しました。code = %d \n", rcd) ;
 240      goto PROG_END ;
 250    }
 260  /*
 270   * TAM-OPEN(TAMテーブルのオープン)
 280   */
 290    rcd = dc_tam_open(TAMTABLE, DCTAM_REC_EXCLUSIVE) ;
 300    if(rcd <= 0) {
 310      printf("SVR01:dc_tam_openに失敗しました。code = %d \n", rcd) ;
 320      goto TAM_END ;
 330    }
 340    tamfd = (long)rcd ;
 350  /*
 360   * RPC-MAINLOOP(SPPのサービス開始)
 370   */
 380    rcd = dc_rpc_mainloop(DCNOFLAGS) ;
 390    if(rcd != DC_OK) {
 400      printf("SPP01:dc_rpc_mainloopに失敗しました。code = %d \n", rcd) ;
 410    }
 420  /*
 430   * TAM-CLOSE(TAMテーブルのクローズ)
 440   */
 450    rcd = dc_tam_close(tamfd, DCNOFLAGS) ;
 460    if(rcd != DC_OK) {
 470      printf("SVR01:dc_tam_closeに失敗しました。code = %d \n", rcd) ;
 480    }
 490  TAM_END :
 500  /*
 510   * RPC-CLOSE(UAPの終了)
 520   */
 530    dc_rpc_close(DCNOFLAGS) ;
 540  PROG_END :
 550    printf("SPP01:SPPのサービス処理を終了します。\n") ;
 560    exit(0) ;
 570  }