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

第6章 サーバアプリケーションの開発(CORBAアプリケーション/COBOL)

6.3 サーバアプリケーションの作成手順

 利用者が使用する初期化処理部、ユーザサービス処理部についての基本形を以下に示します。

初期化処理部

       MAIN.
      * 初期化処理                                          …(1)
             :
            CALL "CORBA-ORB-INIT" USING
              C-ARG-C
              C-ARG-V
              ORBID
              ENV
              ORB.
            :

           CALL "CORBA-ORB-BOA-INIT" USING
              ORB
              C-ARG-C
              C-ARG-V
              TEMP-BUF
              ENV
              BOA.
            :

     * インプリメンテーションリポジトリのオブジェクトリファレンスの取り出し
          MOVE FUNCTION LENG(IMPL-MOD-INTF)  TO  STRING-LENGTH.
          CALL  "CORBA-STRING-SET" USING
             TEMP-BUF
             STRING-LENGTH
             IMPL-MOD-INTF.
          CALL  "FJ-IMPLEMENTAIONREP-LOOKUP-ID" USING
             IMPL-REP
             TEMP-BUF
             ENV
             IMPL.
            :

     * サーバ初期化メソッドのオブジェクトリファレンスの獲得
          MOVE FUNCTION LENG(CORBA-ORB-OBJECTID-TRANSVR)  TO
              STRING-LENGTH.
          CALL  "CORBA-STRING-SET" USING
              TEMP-BUF
              STRING-LENGTH
              CORBA-ORB-OBJECTID-TRANSVR.
          CALL  "CORBA-ORB-RESOLVE-INITIAL-REFERENCES" USING
              ORB
              TEMP-BUF
              ENV
              OTSOBJ.

     * サーバ初期化メソッドの呼び出し                             …(2)
          MOVE FUNCTION LENG(IMPL-MOD-INTF)  TO  STRING-LENGTH.

          CALL  "CORBA-STRING-SET" USING
               TEMP-BUF
               STRING-LENGTH
               IMPL-MOD-INTF.
          CALL  "OTS-INIT" USING
               OTSOBJ
               ORB
               TEMP-BUF
               ENV.
            :
                
     * リクエスト受信可能であることをCORBAサービスへ通知               …(3)
          CALL "CORBA-BOA-IMPL-IS-READY" USING
               BOA
               IMPL
     * サーバがデータベースをアクセスするための終了処理                 …(4)
          CALL  "OTS-TERM" USING 
              OTSOBJ
              ENV.

(1)CORBAサービスの初期化

 CORBAサービスを初期化するために以下のメソッドを使用します。

(2)サーバがデータベースをアクセスするための初期化

 サーバがデータベースをアクセスするための初期化を行います。OTS-INITメソッドのパラメタにはサーバアプリケーションのインプリメンテーションIDを指定します。OTS-INITメソッドはデータベースへのコネクションをオープンします。

(3)リクエストが受信可能であることをCORBAサービスへ通知

 リクエスト受信可能であることをCORBAサービスへ通知します。

 アプリケーションの登録時には、インプリメンテーション情報定義ファイルのmodeにSYNC_ENDを指定する必要があります。SYNC_ENDを指定することによって、アプリケーションが非活性化された場合やアプリケーション停止時まで復帰しないようになります。

(4)サーバがデータベースをアクセスするための終了処理

 サーバがデータベースをアクセスするための終了処理を行います。OTS-TERMメソッドはデータベースへのコネクションをクローズします。

ユーザサービス処理部

 ユーザサービス処理部には、データベースへの処理を記述します。また、このユーザサービス処理部のインタフェースは、ユーザがIDL定義を行う必要があります。ユーザサービス処理部の記述例を以下に示します。

MAIN. 
.................
* ユーザの操作 
  SQL  データベースへのアクセス
 .................

 また、IDLファイルの定義例を以下に示します。

 module  mod {
       interface  intf {
            void  methodA(in long account1,
                          out long account2);
       };
};

注意

サーバアプリケーションが異常を検出した場合

 サーバアプリケーションが以下のようなエラーを検出した場合、エラーをクライアントアプリケーションに通知する必要があります。

 エラーが通知されたクライアントアプリケーションでは、rollbackを発行してトランザクションを終了させてください。


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

Copyright 2008 FUJITSU LIMITED