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

C.1 CORBAアプリケーション(Windows(R)の場合)

  C言語を使用したサンプルプログラムの使用方法について説明します。サンプルプログラムはデータベース連携サービスのインストール先フォルダ配下の\src\samples\simple\cフォルダに格納されているため、ユーザフォルダに複写し、複写先の環境にあわせて修正して使用してください。

サンプルプログラムの概要

  本サンプルは、サーバアプリケーションからOracleにアクセスします。
  本サンプルのファイル構成を、以下に示します。なお、サンプルプログラムは、Microsoft(R) Visual C++(R)を使用してコンパイルすることを前提としています。本サンプルは、同一マシン内でクライアントアプリケーションとサーバアプリケーションを起動することを前提にしたサンプルプログラムになっています。クライアントプログラムを別マシンで起動する場合は、必要なライブラリなどを移行してください。

  本サンプルを使用するにあたり、提供ファイルを任意のフォルダに複写し、複写先の環境にあわせて各ファイルをカストマイズすることをお勧めします。

No

ファイルの概要

ファイル名

1

Makefile用バッチファイル

make.bat

2

Makefile

Makefile

3

IDLファイル

bankA.idl

4

サーバアプリケーションソース

bankA_s.pc

5

クライアントアプリケーションソース

bankA_c.c

6

テーブル作成スクリプト

a_account.sql

作業手順

1) XA連携用プログラムとリソース管理プログラムを作成します。
  otsmkxapgmコマンドを使用し、XA連携用プログラムを作成します。また、otslinkrscコマンドを使用し、リソース管理プログラムを作成します。
  Interstageインストールフォルダ\ots\program\rsc配下にOracle用のXA連携用プログラムとリソース管理プログラムを標準で提供していますので、それを利用してください。

  それ以外の場合は、XA連携用プログラムとリソース管理プログラムを作成するためのバッチファイルとして、Interstageインストールフォルダ配下\ots\src\samples\env\oralinkrsc.batを提供していますので、oralinkrsc.batを実行してください。
  なお、リソース管理プログラムの名前はバッチファイル内のNANE="name.exe" に設定してください。(例: NAME="run_rsc.exe" )

2) アプリケーションを作成します。
  Makefile用バッチファイルでサーバアプリケーションおよびクライアントアプリケーションをコンパイルします。

(実行例)

    > make <RETURN>

  なお、makeする場合にCORBAサービスおよびインタフェースリポジトリが起動されている必要があります。
  Makefileを実行すると、 bankA_sおよびbankA_cが作成されます。

3) サーバアプリケーション(bankA_s)をCORBAサービスのインプリメンテーションリポジトリに登録します。
  インプリメンテーションリポジトリへ登録するには、登録する内容を定義ファイル(テキストエディタ)を作成する必要があります。登録例を以下に示します。
  rep_idにはサーバアプリケーションのインプリメンテーションリポジトリID、dataにはRESOURCE:のあとにリソース定義名を指定する必要があります。
  OD_impl_instコマンドは、定義ファイル名を指定して実行します。

(定義ファイル設定例)

    rep_id                  = IDL:bankA/accountA:1.0
    type                    = persistent
    proc_conc_max           = 32
    thr_conc_init           = 1
    uid                     = 0
    gid                     = 3
    mode                    = SYNC_END
    data                    = "RESOURCE:resource1"

(実行例)

    > OD_impl_inst -ax  deffile <RETURN>

  deffileには定義ファイル名を指定します。

4) サーバアプリケーション(bankA_s)をCORBAサービスのネーミングサービスに登録します。

(実行例)

    > OD_or_adm -c  IDL:bankA/accountA:1.0 -n bankA::accountA <RETURN>

5) リソース定義ファイルを作成します。
  リソース定義ファイルはテキストエディタで作成します。
  OPENINFOには、データベースのユーザ名、パスワードを指定します。(例. orauser/dbuser など)

  NAMEには、インプリメンテーションリポジトリに登録する際にdata行で指定した”RESOURCE:”のあとの名前を記述してください。

(設定例)

    ENVIRON ORACLE_SID=ORCL
    NAME=resource1
    RMNAME=Oracle_XA
    OPENINFO=Oracle_XA+Acc=P/orauser/dbuser+SesTm=0
    CLOSEINFO=

6) リソース管理プログラムをCORBAサービスのインプリメンテーションリポジトリに登録します。
  リソース管理プログラムの登録はotssetrscコマンドにより行います。

(実行例)

    > otssetrsc -a -rf c:\user\ots\rsc\run_rscdef  <RETURN>

  -rfには、リソース定義ファイル名をフルパスで指定してください。

7) データベースにテーブルを作成します。
  sqlplusコマンドでテーブルを作成します。ここでは、テーブル作成のシェル(a_account.sql)を使用し作成する例を示します。
  なお、当操作はデータベース管理者のユーザ権限で行う必要があります。

(実行例)

    > sqlplus orauser/dbuser @a_account.sql <RETURN>

  作成されたテーブルの内容を確認するには、以下のようにsqlplusコマンドを使用します。

(実行例)

    > sqlplus orauser/dbuser <RETURN>
    SQL> select * from a_account; <RETURN>
     ACCOUNTNO NAME          BALANCE
    ---------- ---------- ----------
                     1 SEAN            11111
                     2 LEHR            22222
                     3 JUDITH          33333
                     4 FRANCIS         44444
                     5 ALASTAIR        55555
                     6 AREX            66666
                     7 MOIRA           77777

8) OTSシステム、リソース管理プログラムおよびサーバアプリケーションを起動します。

(実行例)

    > otsstart  <RETURN>
    > otsstartrsc -pg C:\user\ots\rsc\run_rsc.exe -n resource1 <RETURN>
    > bankA_s  <RETURN>

9) クライアントアプリケーションを起動します。

(実行例)

    > bankA_c <RETURN>

10) クライアントアプリケーションから入力を促してくるので実行します。

    Start program ? Yes(y) No(n)
     y <RETURN>
                ----- What's request number -----
                1:begin      2:commit
                3:rollback   4:rollback_only
                5:get_status 6:get_transaction_name
                7:settimeout 8:Call ServerApplication
                0:exit
     1 <RETURN>      [1を入力するとbeginが実行]

     8 <RETURN>      [8を入力するとサーバのメソッドが実行]
                ** ServerApplication **
                Please input account number
                 5 <RETURN>     [番号を入力]
                How much do you deposit ?
                 200000 <RETURN>[番号5の人に給与を入力]
                 2 <RETURN>     [2を入力するとcommitが実行]
                 0 <RETURN>     [クライアントアプリケーションの終了]