Java言語を使用したクライアントとサーバアプリケーションのサンプルプログラムの使用方法について説明します。
ユーザディレクトリにサンプルプログラムを複写後、複写先の環境に応じて修正して使用してください。
■サンプルプログラムの格納パス
C:\Interstage\ots\src\samples\simple\java
注)本製品のインストールパスがデフォルトの場合のパスです。
■サンプルプログラムの概要
本サンプルのファイル構成を以下に示します。本サンプルは、同一マシン内でクライアントアプリケーションとサーバアプリケーションを起動することを前提したサンプルプログラムです。
クライアントプログラムを別マシンで起動する場合は、必要なライブラリなどを移行してください。
No | ファイルの概要 | ファイル名 |
---|---|---|
1 | Makefile | Makefile |
2 | Makefile用バッチファイル | Make.bat |
3 | クライアントアプリケーション用バッチファイル | exec-CL2.bat |
4 | サーバアプリケーション用バッチファイル | exec-SV2.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の修正をします。
Makefileに指定されたソフトウエア製品のインストール先を修正します。
設定例)
BDIR = C:\Program Files\DevStudio\VC MCDIR = C:\Program Files\DevStudio\VC\BIN RCDIR = C:\Program Files\DevStudio\SharedIDE\bin OD_HOME = C:\Interstage\ODWIN OTS_HOME = C:\Interstage\ots ORACLE_HOME = C:\oracle\product\10.2.0\db_1C:\ JDK = C:\Interstage\jdk5
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) クライアントの動作環境がWindows(R)クライアントでクライアントプログラムを動作させる場合、以下のJavaソースをネットワークコンピュータなどでWindows(R)クライアントに複写します。
bankA_c.java
bankA\accountAPOA.java
bankA\accountAPOATie.java
bankA\_accountAStub.java
bankA\accountA.java
bankA\accountAHelper.java
bankA\accountAHolder.java
bankA\accountAOperations.java
6) Windows(R)クライアントに環境変数を設定します。
環境変数CLASSPATHに、以下の情報を設定します。
カレントディレクトリ
otscurrent_java2.jarの絶対パス
ODjava4.jar
また、環境変数PATHにデータベース連携サービスの以下のライブラリが格納されている絶対パスを設定してください。
otscurrent_java.dll
7) Javaソースをクライアントアプリケーションの動作環境でコンパイルします。
サーバマシンからクライアントマシンに複写したJavaソースをjavacコンパイラでコンパイルします。
Windows(R)クライアントでのコンパイル例を以下に示します。コンパイルは、コマンドプロンプトから実行します。
実行例)
C:\tran> javac -d . bankA\*.java <RETURN> C:\tran> javac bankA_c.java <RETURN>
8) CORBAサービスのインプリメンテーションリポジトリにサーバアプリケーション(bankA_s)を登録します。インプリメンテーションリポジトリへ登録するには、登録する内容を定義ファイル(テキストエディタ)として作成する必要があります。
登録例を以下に示します。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:定義ファイル名
9) CORBAサービスのネーミングサービスにサーバアプリケーション(bankA_s)を登録します。
実行例)
> OD_or_adm -c IDL:bankA/accountA:1.0 -n bankA::accountA <RETURN>
10) otslinkrscコマンドで、リソース管理プログラムを作成します。
Interstageインストール先\ots\program\rsc配下にOracle用リソース管理プログラムを標準で提供していますので、それを利用してください。
Oracle10g用のリソース管理プログラム(fjotsrsc_ora10g.exe)
Oracle11g用のリソース管理プログラム(fjotsrsc_ora11g.exe)
リソース管理プログラムを作成するためのシェルとして、データベース連携サービスのインストールフォルダ配下の\src\samples\env\oralinkrsc.batを提供していますので、使用するリソースマネージャ用に修正後、oralinkrsc.batを実行してください。リソース管理プログラムの名前は、バッチファイル内のNANE="name"に設定してください(例:NAME="run_rsc")。
実行例)
> oralinkrsc <RETURN>
11) テキストエディタで、リソース定義ファイルを作成します。
OPENINFOには、データベースのユーザ名/パスワードを指定します(例:orauser/dbuserなど)。NAMEには、インプリメンテーションリポジトリへの登録時にdata行で指定した“RESOURCE:”のあとの名前を記述します。
設定例)
NAME=resource1 RMNAME=Oracle_XA OPENINFO=Oracle_XA+Acc=P/orauser/dbuser+SesTm=0 CLOSEINFO=
12) otssetrscコマンドで、CORBAサービスのインプリメンテーションリポジトリにリソース管理プログラムを登録します。
実行例)
> otssetrsc -a -rf c:\user\ots\run_rscdef <RETURN>
-rfオプション:リソース定義ファイル名(フルパス)
13) 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
14) OTSシステム、リソース管理プログラム、およびサーバアプリケーションを起動します。
実行例)
> otsstart <RETURN> > otsstartrsc -pg C:\user\ots\rsc\run_rsc.exe -n resource1 <RETURN> > exec-SV2 <RETURN>
15) クライアントアプリケーションを起動します。
実行例)
C:\tran> exec-CL2 <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> [クライアントアプリケーションが終了します。]