コンポーネントトランザクションサービス上で動作するサーバアプリケーションの構成は、CORBAサービス上で動作するサーバアプリケーションとほぼ同じですが、初期化処理部は、コンポーネントトランザクションサービスが処理するため、ユーザは意識する必要がありません。ユーザは、ユーザサービス処理部だけ作成します。
なお、サーバアプリケーションの作成形態に、プロセスモードとスレッドモードがあります。プロセスモードのサーバアプリケーションは、シングルスレッドで動作します。スレッドモードのサーバアプリケーションは、Interstageの制御用スレッドが複数起動します。ただし、ユーザのサービス処理部はマルチスレッド(スレッド多重)で動作しません。
コンポーネントトランザクションサービス上で動作するサーバアプリケーションの構成を以下に示します。
■初期化処理部
CORBAサービスおよびデータベースのアクセスに関する初期化を行います。この処理は、コンポーネントトランザクションサービス提供ライブラリで吸収します。
■ユーザサービス処理部
ユーザがそれぞれのデータベースへアクセスする操作の処理です。
■サーバ管理ライブラリ
トランザクション管理をサポートする以下のライブラリを結合します。
libservapl.lib libtacebasent.lib libservaplcpp.lib fjotsld.obj
libservapl.so libtacebasent.so libservaplcpp.so libfjots.so
XAインタフェースとの連携用プログラムです。XA連携用プログラムは、otsmkxapgmコマンドで作成します。リソースの種別ごと作成しますが、1つのアプリケーションから複数のリソースへアクセスするような場合は、リソースごとのxa_switch_t構造体の名前を指定して1つのXA連携用プログラムを作成します。
xa_switch_t構造体の詳細な情報は、データベースのマニュアルを参照してください。また、otsmkxapgmコマンドの詳細については、「リファレンスマニュアル(コマンド編)」を参照してください。
なお、以下のXA連携用プログラムを標準に提供しています。該当リソースを使用する場合は、otsmkxapgmコマンドで作成する必要はありません。
Oracle用XA連携用プログラム(libotsxaora.o)(プロセスモード)
■データベース依存ライブラリ
データベースから提供されるライブラリを結合します。Oracleからは以下に示すファイルが提供されています。
Oracle(Ver.11.2.0.1)の場合:oraxa11.lib,oci.lib,orasql11.lib
Oracle(Ver.12.1.0.2)の場合:oraxa12.lib,oci.lib,orasql12.lib
データベースから提供されるライブラリを結合します。Oracleからは以下に示すファイルが提供されています。
Oracle(Ver.11.2.0.1)の場合:libclntsh.so, libsql11.a, libcommon11.a, libcore11.a, libclient11.a, libnls11.a
Oracle(Ver.12.1.0.2)の場合:libclntsh.so, libsql12.a, libcommon12.a, libcore12.a, libclient12.a, libnls12.a
なお、データベースライブラリについては、使用するデータベースのマニュアルで確認してください。
■CORBAサービス提供ライブラリ
CORBAサービスから提供されるライブラリ(ODSV.LIB,ODSVCPP.LIB,ODCNSCPP.LIB)を結合します。C:\Interstage\ODWIN\lib配下に格納されています。
CORBAサービスから提供されるライブラリ(libOM.so,libOMcpp.soまたはlibOMcpp50.so)を結合します。CORBAサービスのインストールディレクトリ/lib配下に格納されています。
ただし、libOM.soはスレッド用、プロセス用があるので、サーバアプリケーション環境にあわせて該当するライブラリを結合してください。スレッド用は、CORBAサービスのインストールディレクトリ配下の/libに、またプロセス用はCORBAサービスのインストールディレクトリ配下の/lib/ntにあります。
サーバアプリケーションを起動する際、環境変数LD_LIBRARY_PATHには、サーバアプリケーション環境にあわせてCORBAサービスのライブラリパスを設定してください。
■コンポーネントトランザクションサービス提供ライブラリ
コンポーネントトランザクションサービスから提供されるライブラリを結合します。コンポーネントトランザクションサービスのインストールフォルダ\lib配下に格納されています。
コンポーネントトランザクションサービスから提供されるライブラリを結合します。コンポーネントトランザクションサービスのインストールディレクトリ/lib配下に格納されています。