ページの先頭行へ戻る
Interstage Application Server アプリケーション作成ガイド(データベース連携サービス編)

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サービスを初期化するために、以下のメソッドを使用します。

  • CORBA-ORB-INIT

  • CORBA-ORB-BOA-INIT


(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を発行してトランザクションを終了してください。