Interstage Application Server アプリケーション作成ガイド (データベース連携サービス編) |
目次 索引 |
付録E サンプル(COBOL) |
COBOLを使用したサンプルプログラムの使用方法について説明します。
サンプルプログラムはデータベース連携サービスのインストール先フォルダ配下の\src\samples\simple\cobol\clientフォルダとデータベース連携サービスのインストール先フォルダ配下の\src\samples\simple\cobol\serverに格納されているため、ユーザフォルダに複写後、複写先の環境に合わせて修正して使用してください。
本サンプルは、サーバアプリケーションからOracleにアクセスします。
本サンプルのファイル構成を、以下に示します。なお、本サンプルプログラムは、COBOL97のプロジェクトを使用してコンパイルすることを前提としています。本サンプルは、同一マシン内でクライアントアプリケーションとサーバアプリケーションを起動することを前提にしたサンプルプログラムになっています。クライアントプログラムを別マシンで起動する場合は、必要なライブラリなどを移行してください。
本サンプルを使用するにあたり、提供ファイルを任意のフォルダに複写し、複写先の環境にあわせて各ファイルをカストマイズすることをお勧めします。
サーバ用
No |
ファイルの概要 |
ファイル名 |
---|---|---|
1 |
Makefile |
Makefile |
2 |
Makefile用バッチファイル |
Make.bat |
3 |
IDLファイル |
bankA.idl |
4 |
サーバアプリケーションソース |
bankA_s.cbl |
5 |
翻訳オプションファイル |
main.cbi |
6 |
翻訳オプションファイル |
sub.cbi |
7 |
プリコンパイラ用サーバアプリケーションソース |
bankA_s_dep.pco |
8 |
プリコンパイラ用サーバアプリケーションソース |
bankA_s_wit.pco |
クライアント用
No |
ファイルの概要 |
ファイル名 |
---|---|---|
1 |
Makefile |
Makefile |
2 |
Makefile用バッチファイル |
Make.bat |
3 |
IDLファイル |
bankA.idl |
4 |
クライアントアプリケーションソース |
bankA_c.cbl |
5 |
翻訳オプションファイル |
main.cbi |
6 |
翻訳オプションファイル |
sub.cbi |
1) COBOL登録集の格納場所を設定します。
(設定例)
> set CORBA=OD_HOME\include\COBOL <RETURN> > set COSTRANSACTIONS=OTS_HOME\include\COBOL <RETURN> OD_HOME:Interstageインストールフォルダ\ODWIN
OTS_HOME:Interstageインストールフォルダ\ots
2) アプリケーションを作成します。
サーバ用のMakefile用バッチファイルでサーバアプリケーションを、クライアント用のMakefile用バッチファイルでクライアントアプリケーションをコンパイルします。
(実行例)
> make <RETURN>
注意
COBOLアプリケーションを、プリコンパイラを使用してコンパイルする場合、Pro*COBOL1.8.27以降をご使用ください。
なお、makeする場合にCORBAサービスおよびインタフェースリポジトリが起動されている必要があります。
makeすると、 SERVER-MAIN.exe、BANKA-ACCOUNTA.dllが作成されます。
3) サーバアプリケーション(SERVER-MAIN.exe)を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 IDL:bankA/accountA:1.0 = BANKA-ACCOUNTA.dll data = "RESOURCE:resource1"
(実行例)
> OD_impl_inst -ax deffile <RETURN>
deffileには定義ファイル名を指定します。
4) サーバアプリケーション(SERVER-MAIN.exe)をCORBAサービスのネーミングサービスに登録します。
(実行例)
> OD_or_adm -c IDL:bankA/accountA:1.0 -n bankA::accountA <RETURN>
5) XA連携用プログラムとリソース管理プログラムを作成します。
otsmkxapgmコマンドを使用し、XA連携用プログラムを作成します。otslinkrscコマンドを使用し、リソース管理プログラムを作成します。
Interstageインストールフォルダ\ots\program\rsc配下にOracle用のXA連携用プログラムとリソース管理プログラムを標準で提供していますので、それを利用してください。
リソース管理プログラムを作成するためのバッチファイルとして、データベース連携サービスのインストールフォルダ配下の\src\samples\env\oralinkrsc.batを提供していますので、oralinkrsc.batを実行してください。リソース管理プログラムの名前はバッチファイル内のNANE="name.exe"に設定してください。( 例. NAME="run_rsc.exe" )
(実行例)
> oralinkrsc <RETURN>
6) リソース定義ファイルを作成します。
リソース定義ファイルはテキストエディタで作成します。
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=
7) リソース管理プログラムをCORBAサービスのインプリメンテーションリポジトリに登録します。
リソース管理プログラムの登録はotssetrscコマンドにより行います。
(実行例)
> otssetrsc -a -rf C:\user\ots\rsc\run_rscdef <RETURN>
-rfには、リソース定義ファイル名をフルパスで指定してください。
8) データベースにテーブルを作成します。
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
9) OTSシステム、リソース管理プログラムおよびサーバアプリケーションを起動します。
(実行例)
> otsstart <RETURN> > otsstartrsc -pg C:\user\ots\rsc\run_rsc.exe -n resource1 <RETURN> > bankA_s <RETURN>
10) クライアントアプリケーションを起動します。
(実行例)
> bankA_c <RETURN>
11) クライアントアプリケーションから入力を促してくるので実行します。
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> [クライアントアプリケーションの終了]
目次 索引 |