Java言語を使用したクライアントとサーバアプリケーションのサンプルプログラムの使用方法について説明します。
ユーザディレクトリにサンプルプログラムを複写後、複写先の環境に応じて修正して使用してください。
■サンプルプログラムの格納パス
C:\Interstage\ots\src\samples\simple\java
注)本製品のインストールパスがデフォルトの場合のパスです。
■サンプルプログラムの概要
本サンプルは、サーバアプリケーションからOracleにアクセスします。
本サンプルのファイル構成を以下に示します。本サンプルは、同一マシン内でクライアントアプリケーションとサーバアプリケーションを起動することを前提したサンプルプログラムです。
クライアントプログラムを別マシンで起動する場合は、必要なライブラリなどを移行してください。
No | ファイルの概要 | ファイル名 |
---|---|---|
1 | Makefile | Makefile |
2 | Makefile用バッチファイル | Make.bat |
3 | クライアントアプリケーション用バッチファイル | exec-CL.bat |
4 | サーバアプリケーション用バッチファイル | exec-SV.bat |
5 | IDLファイル | bankA.idl |
6 | サーバアプリケーションソース | bankA_s.java |
7 | SQL文ファイル | UserServant.pc |
8 | クライアントアプリケーションソース | bankA_c.java |
■作業手順
1) 環境変数を設定します。
環境変数CLASSPATHに以下の情報を設定します。
カレントフォルダ
otscurrentsv_java2.jarの絶対パス
otsserver_java2.jarの絶対パス
ODjava4.jarの絶対パス
環境変数PATHにJDKの実行ファイルパスを設定します。
2) JavaサーバアプリケーションのXA連携用プログラムを作成します。
Oracleと連携するJavaサーバアプリケーション用XA連携用プログラムは、Interstageインストールフォルダ\ots\program\rsc配下に標準で提供していますので、それを利用してください。
XA連携用プログラム作成時、otsmkxapgmコマンドはmakeを実行するカレントフォルダで実行します。
実行例)
>otsmkxapgm -s xaosw -java -r"/libpath:'C:\oracle\product\10.2.0\db_1\RDBMS\XA' oraxa10.lib" -o otsxaora10g_java.dll<RETURN>
3) Makefileおよび、Make.batを修正します。
Makefileに指定されたソフトウエア製品のインストール先を修正します。
設定例)
OD_HOME = $(IS_HOME)\ODWIN OTS_HOME = $(IS_HOME)\ots ORACLE_HOME = C:\oracle\product\10.2.0\db_1 JDK = $(IS_HOME)\jdk14
Make.batに指定したnmakeコマンドのインストール先を、使用するMicrosoft Platform SDKのインストール先にあわせて修正します。
設定例)
"C:\Program Files\Microsoft Platform SDK\Bin\nmake" -f makefile
4) アプリケーションを作成します。
Make.batファイルで、サーバアプリケーションおよびクライアントアプリケーションをコンパイルします。
実行例)
> Make <RETURN>
Make.batファイルを実行する場合、CORBAサービスおよびインタフェースリポジトリが起動されている必要があります。
Make.batファイルの処理が完了すると、カレントフォルダ下にbankAフォルダが作成され、bankAフォルダ下にaccountAPOA.java、accountAPOATie.java、_accountAStub.java、accountA.java、accountAHelper.java、accountAHolder.java、accountAOperations.javaが作成されます。
5) サーバアプリケーション(bankA_s)をCORBAサービスのインプリメンテーションリポジトリに登録します。
インプリメンテーションリポジトリへ登録するには、登録する内容を定義ファイル(テキストエディタ)として作成する必要があります。
登録例を以下に示します。rep_idには、サーバアプリのインプリメンテーションリポジトリIDを指定します。dataには、“RESOURCE:”のあとにリソース定義名を指定します。
OD_impl_instコマンドは、定義ファイル名を指定して実行します。
定義ファイル設定例)
rep_id = IDL:bankA/accountA:1.0 type = persistent mode = SYNC_END proc_conc_max = 8 thr_conc_init = 1 ior = 1.1 locale = UNICODE data = "RESOURCE:resource1"
実行例)
> OD_impl_inst -ax deffile <RETURN>
deffile:定義ファイル名
6) CORBAサービスのネーミングサービスにサーバアプリケーション(bankA_s)を登録します。
実行例)
> OD_or_adm -c IDL:bankA/accountA:1.0 -n bankA::accountA <RETURN>
7) otslinkrscコマンドで、リソース管理プログラムを作成します。
Interstageインストール先\ots\program\rsc配下にOracle用リソース管理プログラムを標準で提供していますので、それを利用してください。
Oracle10g用のリソース管理プログラム(fjotsrsc_ora10g.exe)
Oracle11g用のリソース管理プログラム(fjotsrsc_ora11g.exe)
また、リソース管理プログラムを作成するためのシェルとして、Interstageインストールフォルダ配下\ots\src\samples\env\oralinkrsc.batを提供していますので、使用するリソースマネージャ用に修正後、oralinkrsc.batを実行してください。リソース管理プログラムの名前は、バッチファイル内のNANE="name" に設定してください(例:NAME="fjotsrsc.exe")。
実行例)
> oralinkrsc <RETURN>
8) テキストエディタで、リソース定義ファイルを作成します。
OPENINFOには、データベースのユーザ名/パスワードを指定します(例:orauser/dbuserなど)。NAMEには、インプリメンテーションリポジトリへの登録時にdata行で指定した“RESOURCE:”のあとの名前を記述します。
設定例)
NAME=resource1 RMNAME=Oracle_XA OPENINFO=Oracle_XA+Acc=P/orauser/dbuser+SesTm=0 CLOSEINFO=
9) otssetrscコマンドで、CORBAサービスのインプリメンテーションリポジトリにリソース管理プログラムを登録します。
実行例)
> otssetrsc -a -rf c:\user\ots\run_rscdef <RETURN>
-rfオプション:リソース定義ファイル名(フルパス)
10) sqlplusコマンドで、データベースにテーブルを作成します。
テーブル作成のスクリプトファイル(Interstageインストールフォルダ配下\ots\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
14) OTSシステム、リソース管理プログラム、およびサーバアプリケーションを起動します。
実行例)
> otsstart <RETURN> > otsstartrsc -pg C:\user\ots\rsc\fjotsrsc.exe -n resource1 <RETURN> > exec-SV <RETURN>
15) クライアントアプリケーションを起動します。
実行例)
> exec-CL <RETURN>
16) クライアントアプリケーションから入力を促してくるので、実行します。
----- 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 employee number 5 <RETURN> [番号を入力します。] How much do you deposit ? 200000 <RETURN>[番号5の社員に給与を入力します。] 2 <RETURN> [2を入力する、とcommitが実行されます。] 0 <RETURN> [クライアントアプリケーションが終了します。]