コンポーネントトランザクション上で動作するサーバアプリケーションを含むAPMの構成は、CORBAサービス上で動作するサーバアプリケーションと同様ですが、ユーザは「ユーザサービス処理部」と「XA連携用プログラム」を作成し、この「XA連携用プログラム」と「データベースライブラリ」をtdlinkapmコマンド実行時に指定します。その他の構成部は、tdlinkapmコマンドで処理します。
なお、APMの作成形態に、プロセスモードとスレッドモードがあります。プロセスモードのAPMでは、シングルスレッドで動作します。スレッドモードのAPMは、Interstageの制御用スレッドが複数起動します。ただし、ユーザの処理部はマルチスレッド(スレッド多重)で動作しません。
以下に、コンポーネントトランザクション上で動作するAPMの構成を示します。
ユーザが処理する構成部のうち、ユーザは、ユーザサービス処理部以外に、以下のものを作成します。
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)(スレッドモード)