Interstage Application Server アプリケーション作成ガイド (データベース連携サービス編) |
目次 索引 |
付録F サンプル(Java言語) |
Java言語を使用したクライアントとサーバアプリケーションのサンプルプログラムの使用方法について説明します。サンプルプログラムはデータベース連携サービスのインストール先ディレクトリ配下の/src/samples/simple/javaディレクトリに格納されているため、ユーザディレクトリに複写後、複写先の環境に合わせて修正して使用してください。
本サンプルのファイル構成を、以下に示します。
No |
ファイルの概要 |
ファイル名 |
---|---|---|
1 |
Makefile |
Makefile |
2 |
Makefile実行スクリプト |
Make |
3 |
クライアントアプリケーション実行スクリプト(JDK1.1.系用) |
exec-CL |
4 |
クライアントアプリケーション実行スクリプト(JDK1.2以降用) |
exec-CL2 |
5 |
サーバアプリケーション実行スクリプト(JDK1.1.系用) |
exec-SV |
6 |
サーバアプリケーション実行スクリプト(JDK1.2以降用) |
exec-SV2 |
7 |
IDLファイル |
bankA.idl |
8 |
サーバアプリケーションソース |
bankA_s.java |
9 |
SQL文ファイル |
UserServant.pc |
10 |
クライアントアプリケーションソース |
bankA_c.java |
1)環境変数OD_HOMEを設定します。
CORBAサービスのインストール先ディレクトリを設定します。以下の例のように設定します。
(設定例)
# OD_HOME=/opt/FSUNod <RETURN> # export OD_HOME <RETURN>
# OD_HOME=/opt/FJSVod <RETURN> # export OD_HOME <RETURN>
2) 環境変数OTS_HOMEを設定します。
データベース連携サービスのインストール先ディレクトリを設定します。以下の例のように設定します。
(設定例)
# OTS_HOME=/opt/FSUNots <RETURN> # export OTS_HOME <RETURN>
# OTS_HOME=/opt/FJSVots <RETURN> # export OTS_HOME <RETURN>
3)環境変数CLASSPATHに以下の情報を設定します。
・カレントディレクトリ
・otscurrentsv_java2.jarの絶対パス
・otsserver_java2.jarの絶対パス
・ODjava4.jarの絶対パス
4)環境変数PATHにJDKの実行ファイルパスを設定します。
5) XA連携用プログラムを作成します。
Javaサーバアプリケーション用XA連携用プログラムの作成をします。
(実行例)
%otsmkxapgm -s xaosw -java -r "-L/oracle/product/10.2.0/lib -lclntsh" -o libOra10java_xa.so
6)アプリケーションを作成します。
まず、テキストエディタを使用しbankA_s.javaの一部を修正する必要があります。
(修正箇所)
以下の_ots.initに指定する/opt/FSUNots/src/samples/simple/java/libOra10java_xa.soを、5)で作成した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に指定されたパス配下に格納します。
7) クライアントの動作環境がPC上の場合、JavaソースをPC上に複写します。
以下のソースをネットワークコンピュータなどでPC上に複写します。
クライアントの動作環境が別マシンのUNIXの場合も同様に、以下のソースを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
8) クライアントアプリケーションの動作するUNIX上に環境変数を設定します。
環境変数CLASSPATHに以下の情報を設定します。
・カレントディレクトリ ・otscurrentsv_java2.jarの絶対パス
・ODjava4.jarの絶対パス
また、環境変数LD_LIBRARY_PATHにデータベース連携サービスの以下のライブラリが格納されている絶対パスを設定してください。
・libCurrent.so
・libotscurrent_java.so
9) Javaソースをクライアントアプリケーションの動作環境でコンパイルします。
サーバマシンからクライアントマシンに複写したJavaソースをjavacコンパイラでコンパイルします。コンパイルはDOSプロンプトから実行します。以下は、PC上でのコンパイル例です。
(実行例)
> javac -d . bankA\*.java <RETURN> > javac bankA_c.java <RETURN>
10) サーバアプリケーション(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_init = 8 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には定義ファイル名を指定します。
11) サーバアプリケーション(bankA_s)をCORBAサービスのネーミングサービスに登録します。
(実行例)
% OD_or_adm -c IDL:bankA/accountA:1.0 -n bankA::accountA <RETURN>
12) リソース管理プログラムを作成します。
otslinkrsc コマンドを使用し、リソース管理プログラムを作成します。
Oracle10gを使用している場合は、そのリソース管理プログラムを、データベース連携サービスのインストールディレクトリ配下の/program/rsc/fjotsrsc_ora10gとして提供していますので、それを使用してください。それ以外の場合は、リソース管理プログラムを作成するためのシェルとして、データベース連携サービスのインストールディレクトリ配下の/src/samples/env/oralinkrsc.shを提供していますので、使用するリソースマネージャ用に修正後、oralinkrsc.shを実行してください。リソース管理プログラムの名前はシェルスクリプト内の NANE="name" に設定してください。( 例. NAME="run_rsc" )
(実行例)
% sh oralinkrsc.sh <RETURN>
13) リソース定義ファイルを作成します。
リソース定義ファイルはテキストエディタで作成します。
OPENINFO には、データベースのユーザ名、パスワードを指定します。(例. orauser/dbuser など)
NAMEには、インプリメンテーションリポジトリに登録する際にdata行で指定した"RESOURCE:"のあとの名前を記述してください。
(設定例)
NAME=resource1 RMNAME=Oracle_XA OPENINFO=Oracle_XA+Acc=P/orauser/dbuser+SesTm=0 CLOSEINFO=
14) リソース管理プログラムをCORBAサービスのインプリメンテーションリポジトリに登録します。
リソース管理プログラムの登録はotssetrscコマンドにより行います。
(実行例)
% otssetrsc -a -rf /tmp/ots/run_rscdef <RETURN>
-rfには、リソース定義ファイル名をフルパスで指定してください。
15) データベースにテーブルを作成します。
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
16) OTSシステム、リソース管理プログラムおよびサーバアプリケーションを起動します。
(実行例)
# otsstart <RETURN> # otsstartrsc -pg /home/ots/run_rsc.exe -n resource1 <RETURN> % exec-SV2 <RETURN>
17) クライアントアプリケーションを起動します。
(実行例)
% exec-CL2 <RETURN>
18) クライアントアプリケーションから入力を促してくるので実行する。
----- 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> [クライアントアプリケーションの終了]
目次 索引 |