Interstage Application Server アプリケーション作成ガイド (データベース連携サービス編)
目次 索引 前ページ次ページ

第3章 クライアントアプリケーションの作成> 3.3 クライアントアプリケーションソースの作成(COBOL)> 3.3.2 ソースの作成

3.3.2.1 アプリケーションの構成

 グローバルトランザクション運用を行うためには、CORBAのクライアントアプリケーションの処理に加えて、COSTRANSACTIONS-CURRENT-COMMITメソッドなどのCurrentインタフェースを呼び出して、データベース連携サービスにトランザクション処理を依頼します。
 これらの処理を考慮したクライアントアプリケーションの構成について以下に示します。

初期化処理部

 クライアントアプリケーションをCORBAサービスに登録、およびトランザクションサービスの初期化を行います。

アプリケーション固有部

 アプリケーション固有の処理部。トランザクションの開始から終了までの流れを記述します。

トランザクション用ライブラリ

 データベース連携サービスが提供するクライアントアプリケーション用ライブラリを結合します。

 以下にクライアントアプリケーションの基本形を示します。詳細は後述を参照してください。

    MAIN.
  *初期化処理
          :
       CALL "CORBA-ORB-INIT" USING
          CURRENT-ARG-C
          CURRENT-ARG-V
          TRANSACTIONCURRENTID
          ENV
          ORB.
          :
  * サーバアプリケーションのオブジェクトリファレンス獲得
       CALL "COSNAMING-NAMINGCONTEXT-RESOLVE" USING                  … 1
          COS-NAMING
          NAME
          ENV
          OBJ.
          :
  * トランザクション依頼処理
        MOVE FUNCTION LENG (CORBA-ORB-OBJECTID-TRANCURRENT) TO STRING-LENGTH.
        CALL  "CORBA-STRING-SET" USING
           TRANSACTIONCURRENTID
           STRING-LENGTH
           CORBA-ORB-OBJECTID-TRANCURRENT.
       CALL  "CORBA-ORB-RESOLVE-INITIAL-REFERENCES" USING           … 2
           ORB
           TRANSACTIONCURRENTID
           ENV
           TRANCURRENTOBJ.

  * トランザクション開始
       CALL  "COSTRANSACTIONS-CURRENT-BEGIN" USING               … 3
           TRANCURRENTOBJ
           ENV.
  * サーバアプリケーションのメソッド呼び出し
          :
       CALL  "MOD-INTF-OPE1"  USING                              … 4
           OBJ
           PARA
           ENV.
          :

  * トランザクション完了処理
       EVALUATE TRUE
       WHEN CORBA-NO-EXCEPTION OF MAJOR OF ENV
       CALL "COSTRANSACTION-CURRENT-COMMIT" USING               … 5
            TRANCURRENTOBJ
            CORBA-TRUE
            ENV.
       WHEN CORBA-SYSTEM-EXCEPTION OF MAJOR OF ENV
       CALL "COSTRANSACTION-CURRENT-ROLLBACK" USING             
            TRANCURRENTOBJ
            ENV.
  1. ネーミングサービスからサーバアプリケーションのオブジェクトリファレンスを獲得します。
  2. Currentインタフェースのオブジェクトリファレンスを獲得します。
  3. COSTRANSACTIONS-CURRENT-BEGINメソッドでトランザクションの開始を宣言します。
  4. サーバアプリケーションを呼び出します。
  5. サーバアプリケーションの復帰状態を確認して、トランザクションの状態を決定します。トランザクションを正常終了させる場合はCOSTRANSACTIONS-CURRENT-COMMITメソッドでトランザクションをコミットさせます。トランザクションを異常終了させる場合はCOSTRANSACTIONS-CURRENT-ROLLBACKメソッドでトランザクションをロールバックさせます。

目次 索引 前ページ次ページ

Copyright 2008 FUJITSU LIMITED