コンポーネントトランザクションサービス上で動作するサーバアプリケーションの構成は、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コマンドで作成する必要はありません。
このうち、Symfoware/RDB用のXA連携用プログラムは、プロセスモード用とスレッドモード用があり、スレッドモード用のXA連携用プログラムは、Symfoware/RDBから提供されているスレッド用ライブラリを意識したものです。よって、Symfoware/RDBを使用する場合、環境にあわせてスレッドモード用ライブラリまたはプロセスモード用ライブラリを使用してください。また、MQDに関係するXA連携用プログラムは、すべてスレッドモード用になります。
Oracle用XA連携用プログラム(libotsxaora.o)(プロセスモード)
Symfoware/RDB用XA連携用プログラム(libotsxasym.o)(プロセスモード)
Symfoware/RDB用XA連携用プログラム(libotsxasym_mt.o)(スレッドモード)
MQD用XA連携用プログラム(libotsxamqd.o)(スレッドモード)
OracleとMQDを使用する場合のXA連携用プログラム(libotsxamqd_ora.o) (スレッドモード)
Symfoware/RDBとMQDを使用する場合のXA連携用プログラム(libotsxamqd_sym.o) (スレッドモード)
■データベース依存ライブラリ
データベースから提供されるライブラリを結合します。Oracle,SQL Serverからは以下に示すファイルが提供されています。
Oracle(Ver.8.0.5)の場合:xa80.lib,oci.lib,sqllib80.lib Oracle(Ver.8.1.5)の場合:oraxa8.lib,oci.lib,orasql8.lib SQL Serverの場合:ntwdblib.lib
データベースから提供されるライブラリを結合します。Oracleからは以下に示すファイルが提供されています。Symfoware Serverを使用する場合は、C言語またはCOBOLでアプリケーションを作成してください。
Oracle(Ver.8.0.5)の場合:libclntsh.a, libsql.a, libcommon.a, libcore4.a, libclient.a, libnlsrtl3.a Oracle(Ver.8.1.6)の場合:libclntsh.so, libsql8.a, libcommon8.a, libcore8.a, libclient8.a, libnls8.a
データベースから提供されるライブラリを結合します。Oracleからは以下に示すファイルが提供されています。
Oracle(Ver.9.0.1)の場合:libclntsh.so, libsql9.a, libcommon9.a, libcore9.a, libclient9.a, libnls9.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配下に格納されています。