サンプルプログラムの実行手順を以下に示します。
環境変数OTS_HOMEに、データベース連携サービスのインストールディレクトリを設定します。
[設定例]
OTS_HOME=/opt/FSUNots <RETURN> export OTS_HOME <RETURN>
OTS_HOME=/opt/FJSVots <RETURN> export OTS_HOME <RETURN>
XA連携用プログラムとリソース管理プログラムを作成します。
otsmkxapgmコマンドで、XA連携用プログラムを作成します。otslinkrscコマンドで、リソース管理プログラムを作成します。
Oracle10g/Oracle11gを使用している場合は、標準的なリソース管理プログラムが以下に提供されています。必要に応じて使用してください。
Oracle10g用のリソース管理プログラム「/opt/FSUNots/program/rsc/fjotsrsc_ora10g」
Oracle11g用のリソース管理プログラム「/opt/FSUNots/program/rsc/fjotsrsc_ora11g」
Oracle10g用のリソース管理プログラム「/opt/FJSVots/program/rsc/fjotsrsc_ora10g」
Oracle11g用のリソース管理プログラム「/opt/FJSVots/program/rsc/fjotsrsc_ora11g」
上記のファイルを使用しない場合は、リソース管理プログラムを作成するためのシェルが以下に提供されています。
/opt/FSUNots/src/samples/env/oralinkrsc.sh
/opt/FJSVots/src/samples/env/oralinkrsc.sh
使用するリソースマネージャ用に修正後、データベース管理者のユーザ権限でoralinkrsc.shを実行してください。シェル内のNANE="name"に、リソース管理プログラムの名前を設定します(例: NAME="run_rsc")。
[実行例]
sh oralinkrsc.sh <RETURN>
アプリケーションを作成します。
Makefileで、サーバアプリケーションおよびクライアントアプリケーションをコンパイルします。コンパイル時およびリンク時に、-compatオプションを設定してデータベース管理者のユーザ権限で実行してください。また、コンパイル時およびリンク時は、CORBAサービスおよびインタフェースリポジトリが起動されている必要があります。
[実行例]
make <RETURN>
makeを実行すると、 以下が作成されます。
bankA_s
bankA_c
CORBAサービスのインプリメンテーションリポジトリにサーバアプリケーション(bankA_s)を登録します。
インプリメンテーションリポジトリへ登録するには、登録する内容を定義ファイル(テキストエディタ)として作成する必要があります。
定義ファイル設定例を以下に示します。rep_idには、サーバアプリケーションのインプリメンテーションリポジトリIDを指定します。dataには、「RESOURCE:」のあとにリソース定義ファイルをフルパスで指定します。
[定義ファイル設定例]
rep_id = IDL:bankA/accountA:1.0 type = persistent 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コマンドを実行します。
[実行例]
OD_impl_inst -ax deffile <RETURN>
deffile:定義ファイル名
CORBAサービスのネーミングサービスにサーバアプリケーション(bankA_s)を登録します。
[実行例]
OD_or_adm -c IDL:bankA/accountA:1.0 -n bankA::accountA <RETURN>
テキストエディタで、リソース定義ファイルを作成します。
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=
otssetrscコマンドで、CORBAサービスのインプリメンテーションリポジトリにリソース管理プログラムを登録します。
[実行例]
otssetrsc -a -rf /export/home/ots/run_rscdef -u orauser -g isgrp <RETURN>
-rfオプション:リソース定義ファイル名(フルパス)
-uオプション:データベースを使用するユーザ名
-gオプション:データベースを使用するグループ名
sqlplusコマンドで、データベースにテーブルを作成します。
以下のテーブル作成のシェルを使用し作成する例を示します。本操作はデータベース管理者のユーザ権限で行う必要があります。
/opt/FSUNots/src/samples/simple/c/a_account.sql
/opt/FSUNots/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
OTSシステム、リソース管理プログラム、およびサーバアプリケーションを起動します。
[実行例]
otsstart <RETURN> otsstartrsc -pg /export/home/ots/run_rsc -n resource1 <RETURN> bankA_s & <RETURN>
注意
プロセスモードのサーバアプリケーション起動時は、以下のように指定してください。
「/opt/FSUNod/lib」より前に「/opt/FSUNod/lib/nt」を指定します。
「/opt/FJSVod/lib」より前に「/opt/FJSVod/lib/nt」を指定します。
ただし、OTSシステム起動時/リソース管理プログラム起動時は、スレッド版のlibOM.soを使用してください。
クライアントアプリケーションを起動します。
[実行例]
bankA_c <RETURN>
クライアントアプリケーションから入力が促されるので、実行します。
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> [クライアントアプリケーションの終了します。]