Java言語を使用したクライアントとサーバアプリケーションのサンプルプログラムの使用方法について説明します。
ユーザディレクトリにサンプルプログラムを複写後、複写先の環境に応じて修正して使用してください。
■サンプルプログラムの格納パス
/opt/FSUNots/src/samples/simple/java
/opt/FJSVots/src/samples/simple/java
注)本製品のインストールパスがデフォルトの場合のパスです。
■サンプルプログラムの概要
本サンプルのファイル構成を以下に示します。
No | ファイルの概要 | ファイル名 |
---|---|---|
1 | Makefile | Makefile |
2 | Makefile実行スクリプト | Make |
3 | クライアントアプリケーション実行スクリプト | exec-CL2 |
4 | サーバアプリケーション実行スクリプト | exec-SV2 |
5 | IDLファイル | bankA.idl |
6 | サーバアプリケーションソース | bankA_s.java |
7 | SQL文ファイル | UserServant.pc |
8 | クライアントアプリケーションソース | bankA_c.java |
■作業手順
1) 環境変数OTS_HOMEに、データベース連携サービスのインストール先ディレクトリを設定します。
設定例)
# OTS_HOME=/opt/FSUNots <RETURN> # export OTS_HOME <RETURN>
# OTS_HOME=/opt/FJSVots <RETURN> # export OTS_HOME <RETURN>
2)環境変数CLASSPATHに、以下の情報を設定します。
カレントディレクトリ
otscurrentsv_java2.jarの絶対パス
otsserver_java2.jarの絶対パス
ODjava4.jarの絶対パス
3)環境変数PATHに、JDKの実行ファイルパスを設定します。
4) JavaサーバアプリケーションのXA連携用プログラムを作成します。
実行例)
% otsmkxapgm -s xaosw -java -r "-L/oracle/product/10.2.0/lib -lclntsh" -o libOra10java_xa.so
5)アプリケーションを作成します。
まず、テキストエディタで、bankA_s.javaの一部を修正する必要があります。
修正箇所)
以下の_ots.initに指定する/opt/FSUNots/src/samples/simple/java/libOra10java_xa.soを、4)で作成したXA連携用プログラムをフルパスで指定するように変更します。
OTS _ots = OTSHelper.narrow( _tmpObj ); _ots.init(Orb, "IDL:bankA/accountA:1.0", "/opt/FSUNots/src/samples/simple/java/libOra10java_xa.so");
\:継続行
Makefileでサーバアプリケーションおよびクライアントアプリケーションをコンパイルします。
このとき、Makefile内のJDKのパスを、使用するJDKのパスに変更します。
実行例)
# Make <RETURN>
Makeを実行する場合、CORBAサービスおよびインタフェースリポジトリが起動されている必要があります。
Makeが完了すると、カレントディレクトリ下にbankAディレクトリが作成され、bankAディレクトリ下にaccountAPOA.java、accountAPOATie.java、_accountAStub.java、accountA.java、accountAHelper.java、accountAHolder.java、accountAOperations.javaが作成されます。
また、Makeを実行したカレントディレクトリ下にlibora_sql.soが作成されます。
この作成された動的リンクライブラリは、環境変数LD_LIBRARY_PATHに指定されたパス配下に格納します。
6) Windows(R)クライアントでクライアントプログラムを動作させる場合、ネットワークコンピュータなどでWindows(R)クライアントに以下のJavaソースを複写します。
クライアントの動作環境が別マシンであるSolaris/Linuxの場合も同様に、ftpなどを使用して以下のソースを送ります。
bankA_c.java
bankA/accountAPOA.java
bankA/accountAPOATie.java
bankA/_accountAStub.java
bankA/accountA.java
bankA/accountAHelper.java
bankA/accountAHolder.java
bankA/accountAOperations.java
7) クライアントアプリケーションの動作するSolaris/Linux上に環境変数を設定します。
環境変数CLASSPATHに、以下の情報を設定します。
カレントディレクトリ
otscurrentsv_java2.jarの絶対パス
ODjava4.jarの絶対パス
また、環境変数LD_LIBRARY_PATHに、データベース連携サービスの以下のライブラリが格納されている絶対パスを設定してください。
libCurrent.so
libotscurrent_java.so
8) Javaソースをクライアントアプリケーションの動作環境でコンパイルします。
サーバマシンからクライアントマシンに複写したJavaソースをjavacコンパイラでコンパイルします。コンパイルは、DOSプロンプトから実行します。Windows(R)クライアントでのコンパイル例を以下に示します。
実行例)
> javac -d . bankA\*.java <RETURN> > javac bankA_c.java <RETURN>
9) 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 thr_conc_max = 1 ior = 1.1 locale = UNICODE data = "RESOURCE:resource1"
実行例)
% OD_impl_inst -ax deffile <RETURN>
deffile:定義ファイル名
10) CORBAサービスのネーミングサービスにサーバアプリケーション(bankA_s)を登録します。
実行例)
% OD_or_adm -c IDL:bankA/accountA:1.0 -n bankA::accountA <RETURN>
11) otslinkrscコマンドで、リソース管理プログラムを作成します。
Oracle10g/Oracle11gを使用している場合は、作成済みのリソース管理プログラムを提供しています。
Oracle10g用のリソース管理プログラム(データベース連携サービスのインストールディレクトリの/program/rsc/fjotsrsc_ora10g)
Oracle11g用のリソース管理プログラム(データベース連携サービスのインストールディレクトリの/program/rsc/fjotsrsc_ora11g)
上記以外の場合は、リソース管理プログラムを作成するためのシェルとして、データベース連携サービスのインストールディレクトリ配下の/src/samples/env/oralinkrsc.shを提供していますので、使用するリソースマネージャ用に修正後、oralinkrsc.shを実行してください。リソース管理プログラムの名前は、シェルスクリプト内のNANE="name"に設定してください(例:NAME="run_rsc")。
実行例)
% sh oralinkrsc.sh <RETURN>
12) テキストエディタで、リソース定義ファイルを作成します。
OPENINFOには、データベースのユーザ名/パスワードを指定します(例:orauser/dbuserなど)。NAMEには、インプリメンテーションリポジトリへの登録時にdata行で指定した“RESOURCE:”のあとの名前を記述します。
設定例)
NAME=resource1 RMNAME=Oracle_XA OPENINFO=Oracle_XA+Acc=P/orauser/dbuser+SesTm=0 CLOSEINFO=
13) otssetrscコマンドで、リソース管理プログラムをCORBAサービスのインプリメンテーションリポジトリに登録します。
実行例)
% otssetrsc -a -rf /tmp/ots/run_rscdef <RETURN>
-rfオプション:リソース定義ファイル名(フルパス)
14) 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
15) OTSシステム、リソース管理プログラム、およびサーバアプリケーションを起動します。
実行例)
# otsstart <RETURN> # otsstartrsc -pg /home/ots/run_rsc.exe -n resource1 <RETURN> % exec-SV2 <RETURN>
16) クライアントアプリケーションを起動します。
実行例)
% exec-CL2 <RETURN>
17) クライアントアプリケーションから入力を促してくるので、実行します。
----- 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> [クライアントアプリケーションを終了します。]