APMの作成にはユーザが作成する“ユーザサービス処理部”と、XA連携用プログラムと、XA連携に必要な、リソースマネージャが公開するライブラリが必要です。
APMは、トランザクションアプリケーションを使用してグローバルトランザクション運用を行う場合にだけtdlinkapmコマンドを使用して作成します。
APMを作成する場合に必要なXA連携用プログラムは、otsmkxapgmコマンドで作成しますが、このotsmkxapgmコマンドではXA連携用ソースを作成し、作成したソースをCコンパイラで翻訳してXA連携用プログラム(オブジェクトファイル)を作成します。作成されたXA連携用プログラムとリソースマネージャが公開するライブラリをtdlinkapmコマンドでリンクし、APMを作成します。
APMを作成する場合に必要なXA連携用プログラムは、otsmkxapgmコマンドで作成しますが、以下のXA連携用プログラムを標準に提供しています。他の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)(スレッドモード)
tdlinkapmコマンドでAPMを作成する場合、APMとして “TDNORM”、および“TDNORMCNT” を使用しないでください。
otsmkxapgmコマンド、tdlinkapmコマンドの詳細な構文については、“リファレンスマニュアル(コマンド編)”を参照してください。
また、XA連携に必要な、リソースマネージャが公開するライブラリについては、使用するリソースマネージャのマニュアルを参照してください。
APMは、ワークユニットでのリソースマネージャの使用形態ごとに作成します。業務システム内で作成が必要なAPMを以下に示します。
ワークユニット | 使用するリソースマネージャ | 作成が必要なAPM |
---|---|---|
ワークユニットA | リソースマネージャ1 | リソースマネージャ1を使用するためのAPM |
ワークユニットB | ||
ワークユニットC | リソースマネージャ2 | リソースマネージャ2を使用するためのAPM |
ワークユニットD |
注意
APMには、前出口プログラムと後出口プログラムを呼び出す機構を持っています。この前出口プログラムはワークユニット起動時に実行され、後出口プログラムはワークユニット停止時に実行されます。このとき、前出口プログラムおよび後出口プログラムの復帰値(PROGRAM-STATUS)が0の場合は正常、0以外の場合は異常とします。復帰値が0以外の場合、ワークユニット起動時では、ワークユニットの起動失敗となり、ワークユニット停止時では、ワークユニットの異常停止となります。