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

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

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

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

  本サンプルは、サーバアプリケーションから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.cpp

作業手順

1) XA連携用プログラムとリソース管理プログラムを作成します。
  otsmkxapgm コマンドを使用し、XA連携用プログラムを作成します。また、otslinkrsc コマンドを使用し、リソース管理プログラムを作成します。

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

(例: NAME="run_rsc.exe" )

(実行例)

    > oralinkrsc  <RETURN>

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

(実行例)

    > make <RETURN>

  なお、makeする場合にCORBAサービスおよびインタフェースリポジトリが起動されている必要があります。
  makeすると、 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コマンドでテーブルを作成します。ここでは、テーブル作成のバッチファイル(データベース連携サービスのインストール先フォルダ配下の\src\samples\simple\c\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>     [クライアントアプリケーションの終了]