サンプルプログラムの実行手順を以下に示します。
環境変数OTS_HOMEに、データベース連携サービスのインストールディレクトリを設定します。
[設定例]
OTS_HOME=/opt/FSUNots <RETURN> export OTS_HOME <RETURN>
OTS_HOME=/opt/FJSVots <RETURN> export OTS_HOME <RETURN>
環境変数CLASSPATHに、以下の情報を設定します。
カレントディレクトリ
otscurrentsv_java2.jarの絶対パス
otsserver_java2.jarの絶対パス
ODjava4.jarの絶対パス
環境変数PATHに、OpenJDKの実行ファイルパスを設定します。
JavaサーバアプリケーションのXA連携用プログラムを作成します。
[実行例]
otsmkxapgm -s xaosw -java -r "-L/oracle/product/12.1.0/lib -lclntsh" -o libOra12java_xa.so
注意
Sun Studio 12以降を使用してotsmkxapgmコマンドを実行すると以下の警告が出力されますが、動作に影響は無いため対処は不要です。
警告: -xarch=generic64 は非推奨です。64 ビットプログラムの作成には、-m64 を使用してください
アプリケーションを作成します。
テキストエディタで、bankA_s.javaの一部を修正します。
[修正箇所]
以下の「_ots.init」に指定する「/opt/FSUNots/src/samples/simple/java/libOra12java_xa.so」を、4.で作成したXA連携用プログラム(フルパス)に変更して指定します。
OTS _ots = OTSHelper.narrow( _tmpObj ); _ots.init(Orb, "IDL:bankA/accountA:1.0", "/opt/FSUNots/src/samples/simple/java/libOra12java_xa.so");
\:継続行
Makefileでサーバアプリケーションおよびクライアントアプリケーションをコンパイルします。Makefile内のJDKのパスを使用するOpenJDKのパスに変更してください。また、Make実行時は、CORBAサービスおよびインタフェースリポジトリが起動されている必要があります。
[実行例]
Make <RETURN>
Makeが完了すると、カレントディレクトリ配下に以下のディレクトリおよびファイルが作成されます。
bankA\accountAPOA.java
bankA\accountAPOATie.java
bankA\_accountAStub.java、accountA.java
bankA\accountAHelper.java
bankA\accountAHolder.java
bankA\accountAOperations.java
libora_sql.so(動的リンクライブラリ)
環境変数LD_LIBRARY_PATHに指定されたパス配下に、作成された動的リンクライブラリを格納します。
注意
Sun Studio 12以降を使用して動的リンクライブラリを作成すると以下の警告が出力されますが、動作に影響は無いため対処は不要です。
警告: -xarch=generic64 は非推奨です。64 ビットプログラムの作成には、-m64 を使用してください
[Windows(R)クライアントでクライアントプログラムを動作させる場合]
Windows(R)クライアントに、ネットワークコンピュータなどで以下のJavaソースを複写します。
bankA_c.java
bankA/accountAPOA.java
bankA/accountAPOATie.java
bankA/_accountAStub.java
bankA/accountA.java
bankA/accountAHelper.java
bankA/accountAHolder.java
bankA/accountAOperations.java
[Windows(R)クライアントでクライアントプログラムを動作させる場合]
Windows(R)クライアントの環境変数CLASSPATHに、以下を設定します。
カレントディレクトリ
otscurrentsv_java2.jarの絶対パス
ODjava4.jarの絶対パス
Windows(R)クライアントの環境変数LD_LIBRARY_PATHに、以下のデータベース連携サービスのライブラリが格納されている絶対パスを設定します。
libCurrent.so
libotscurrent_java.so
[Windows(R)クライアントでクライアントプログラムを動作させる場合]
クライアントアプリケーションの動作環境において、javacコンパイラでサーバマシンからクライアントマシンに複写したJavaソースをコンパイルします。
Windows(R)クライアントでのコンパイル例を以下に示します。コンパイルは、DOSプロンプトから実行します。
[実行例]
javac -d . bankA\*.java <RETURN> javac bankA_c.java <RETURN>
CORBAサービスのインプリメンテーションリポジトリにサーバアプリケーション(bankA_s)を登録します。
インプリメンテーションリポジトリへ登録するには、登録する内容を定義ファイル(テキストエディタ)として作成する必要があります。
定義ファイル設定例を以下に示します。
rep_idには、サーバアプリのインプリメンテーションリポジトリIDを指定します。dataには、「RESOURCE:」のあとにリソース定義名を指定します。
[定義ファイル設定例]
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コマンドを実行します。
[実行例]
OD_impl_inst -ax deffile <RETURN>
deffile:定義ファイル名
CORBAサービスのネーミングサービスにサーバアプリケーション(bankA_s)を登録します。
[実行例]
OD_or_adm -c IDL:bankA/accountA:1.0 -n bankA::accountA <RETURN>
otslinkrscコマンドで、リソース管理プログラムを作成します。
Oracle12c/Oracle11gを使用している場合は、標準的なOracle用リソース管理プログラムが以下に提供されています。必要に応じて使用してください。
Oracle12c用のリソース管理プログラム「/opt/FSUNots/program/rsc/fjotsrsc_ora12c」
Oracle11g用のリソース管理プログラム「/opt/FSUNots/program/rsc/fjotsrsc_ora11g」
Oracle12c用のリソース管理プログラム「/opt/FJSVots/program/rsc/fjotsrsc_ora12c」
Oracle11g用のリソース管理プログラム「/opt/FJSVots/program/rsc/fjotsrsc_ora11g」
上記のファイルを使用しない場合は、リソース管理プログラムを作成するためのシェルが以下に提供されています。
/opt/FSUNots/src/samples/env/oralinkrsc.sh
/opt/FJSVots/src/samples/env/oralinkrsc.sh
使用するリソースマネージャ用に修正後、oralinkrsc.shを実行してください。シェルスクリプト内のNANE="name"に、リソース管理プログラムの名前を設定します(例:NAME="run_rsc")。
[実行例]
sh oralinkrsc.sh <RETURN>
テキストエディタで、リソース定義ファイルを作成します。
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=
otssetrscコマンドで、リソース管理プログラムをCORBAサービスのインプリメンテーションリポジトリに登録します。
[実行例]
otssetrsc -a -rf /tmp/ots/run_rscdef <RETURN>
-rfオプション:リソース定義ファイル名(フルパス)
sqlplusコマンドで、データベースにテーブルを作成します。
以下のテーブル作成のシェルスクリプトを使用して作成する例を以下に示します。
/opt/FSUNots/src/samples/simple/c/a_account.sql
/opt/FJSVots/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
OTSシステム、リソース管理プログラム、およびサーバアプリケーションを起動します。
[実行例]
otsstart <RETURN> otsstartrsc -pg /home/ots/run_rsc.exe -n resource1 <RETURN> exec-SV2 <RETURN>
クライアントアプリケーションを起動します。
[実行例]
exec-CL2 <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 employee number 5 <RETURN> [番号を入力します。] How much do you deposit ? 200000 <RETURN>[番号5の社員に給与を入力します。] 2 <RETURN> [2を入力すると、commitが実行されます。] 0 <RETURN> [クライアントアプリケーションを終了します。]