Interstage Application Server アプリケーション作成ガイド (データベース連携サービス編) |
目次 索引 |
付録D サンプル(C++言語) |
C++言語を使用したサンプルプログラムの使用方法について説明します。サンプルプログラムはデータベース連携サービスのインストール先ディレクトリ配下の/src/samples/simple/cppディレクトリに格納されているため、ユーザディレクトリに複写後、複写先の環境に合わせて修正して使用してください。なお、ここの例ではユーザディレクトリを/export/home/otsとします。
本サンプルは、サーバアプリケーションからOracleにアクセスします。
本サンプルのファイル構成を、以下に示します。
No |
ファイルの概要 |
ファイル名 |
1 |
Makefile |
Makefile |
2 |
IDLファイル |
bankA.idl |
3 |
サーバアプリケーションソース |
bankA_s.pc |
4 |
クライアントアプリケーションソース |
bankA_c.c |
1) OD_HOMEを設定します。
CORBAサービスのインストール先ディレクトリを設定します。以下の例のように設定します。
(設定例)
# OD_HOME=/opt/FSUNod <RETURN> # export OD_HOME <RETURN>
# OD_HOME=/opt/FJSVod <RETURN> # export OD_HOME <RETURN>
2) OTS_HOMEを設定します。
データベース連携サービスのインストール先ディレクトリを設定します。以下の例のように設定します。
(設定例)
# OTS_HOME=/opt/FSUNots <RETURN> # export OTS_HOME <RETURN>
# OTS_HOME=/opt/FJSVots <RETURN> # export OTS_HOME <RETURN>
3) XA連携用プログラムとリソース管理プログラムを作成します。
otsmkxapgmコマンドを使用し、XA連携用プログラムを作成します。otslinkrsc コマンドを使用し、リソース管理プログラムを作成します。
Oracle10gを使用している場合は、そのリソース管理プログラムを、データベース連携サービスのインストールディレクトリ配下の/program/rsc/fjotsrsc_ora10gとして提供していますので、それを使用してください。それ以外の場合は、リソース管理プログラムを作成するためのシェルとして、データベース連携サービスのインストール先ディレクトリ配下の/src/samples/env/oralinkrsc.shを提供していますので、使用するリソースマネージャ用に修正後、oralinkrsc.shを実行してください。
なおリソース管理プログラムの名前はシェル内の NANE="name" に設定してください。
(例: NAME="run_rsc" )
当操作はデータベース管理者のユーザ権限で行う必要があります。
(実行例)
# sh oralinkrsc.sh <RETURN>
4) アプリケーションを作成します。
Makefileでサーバアプリケーションおよびクライアントアプリケーションをコンパイルします。
このとき、Sun WorkShop 5.0シリーズ、Forte Developer 6シリーズ、Sun ONE Studio 7シリーズ、Sun ONE Studio 8シリーズ、Sun Studio 9を使用してアプリケーションを作成する場合、コンパイル時およびリンク時に" -compat"オプションを設定してください。
(実行例)
# make <RETURN>
なお、makeする場合にCORBAサービスおよびインタフェースリポジトリが起動されている必要があります。
makeすると、 bankA_sおよびbankA_cが作成されます。
なお、当操作はデータベース管理者のユーザ権限で行う必要があります。
5) サーバアプリケーション(bankA_s)をCORBAサービスのインプリメンテーションリポジトリに登録します。インプリメンテーションリポジトリへ登録するには、登録する内容を定義ファイル(テキストエディタ)として作成する必要があります。登録例を以下に示します。
rep_idにはサーバアプリケーションのインプリメンテーションリポジトリID、dataにはRESOURCE: のあとにリソース定義ファイルをフルパスで指定する必要があります。
OD_impl_instコマンドは、定義ファイル名を指定して実行します。
(定義ファイル設定例)
rep_id = IDL:bankA/accountA:1.0 type = persistent proc_conc_init = 1 proc_conc_max = 32 thr_conc_init = 1 uid = 0 gid = 3 mode = SYNC_END env = LD_LIBRARY_PATH=/opt/FSUNots/lib;/opt/FSUNod/lib/nt;OTS_HOME=/opt/FSUNots data = "RESOURCE:resource1"
(実行例)
# OD_impl_inst -ax deffile <RETURN>
deffileには定義ファイル名を指定します。
6) サーバアプリケーション(bankA_s)をCORBAサービスのネーミングサービスに登録します。
(実行例)
# OD_or_adm -c IDL:bankA/accountA:1.0 -n bankA::accountA <RETURN>
7) リソース定義ファイルを作成します。
リソース定義ファイルはテキストエディタで作成します。
OPENINFO には、データベースのユーザ名、パスワードを指定します。(例. orauser/dbuser など)
NAMEには、インプリメンテーションリポジトリに登録する際にdata行で指定した"RESOURCE:"のあとの名前を記述してください。
(設定例)
ENVIRON ORACLE_SID=orauser ENVIRON ORACLE_HOME=/oracle/product/10.2.0 ENVIRON LD_LIBRARY_PATH=/oracle/product/10.2.0/lib NAME=resource1 RMNAME=Oracle_XA OPENINFO=Oracle_XA+Acc=P/orauser/dbuser+SesTm=0 CLOSEINFO=
8) リソース管理プログラムをCORBAサービスのインプリメンテーションリポジトリに登録します。
リソース管理プログラムの登録はotssetrscコマンドにより行います。
(実行例)
# otssetrsc -a -rf /export/home/ots/run_rscdef -u orauser -g isgrp <RETURN>
-rfには、リソース定義ファイル名をフルパスで指定してください。
-uにはデータベースを使用するユーザ名、-gにはデータベースを使用するグループ名を指定してください。
9) データベースにテーブルを作成します。
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
10) OTSシステム、リソース管理プログラムおよびサーバアプリケーションを起動します。
(実行例)
# otsstart <RETURN> # otsstartrsc -pg /export/home/ots/run_rsc -n resource1 <RETURN> # bankA_s & <RETURN>
(注意)
サーバアプリケーションを起動する前には、CORBAサービスのインストールディレクトリ配下の/lib/ntを、CORBAサービスのインストールディレクトリ配下の/libより先に指定してください。
ただし、OTSシステムやリソース管理プログラム起動時には、スレッド版のlibOM.soを使用してください。
11) クライアントアプリケーションを起動します。
(実行例)
# bankA_c <RETURN>
12) クライアントアプリケーションから入力を促してくるので実行します。
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> [クライアントアプリケーションの終了]
目次 索引 |