名前
otsmkxapgm - XA連携用プログラムの作成
形式
otsmkxapgm [-java] | [-t {process|thread}] -s switch_name... -r "library" [-c] -o name
otsmkxapgm [-java -r "library"] | [-t {process|thread}] -s switch_name... [-c] -o name
機能説明
otsmkxapgmコマンドは、サーバアプリケーションがデータベースとのXA連携を可能にするためのプログラムをライブラリファイルとして2つ作成します。
otsmkxapgmコマンドは、対象となるデータベースのxa_switch_t構造体の名前と出力ファイル名を入力します。またデータベースベンダが公開するライブラリも指定します。Java言語のサーバアプリケーション用にXA連携プログラムを作成する場合は、-javaオプションを指定してください。
なお、本コマンドを実行するとMicrosoft(R) Visual Studio(R)のコンパイルコマンドとリンクコマンドが動作します。
otsmkxapgmコマンドは、サーバアプリケーションがデータベースとのXA連携を可能にするためのプログラムをオブジェクトファイルとして作成します。
otsmkxapgmコマンドは、対象となるデータベースのxa_switch_t構造体の名前と出力ファイル名を入力します。
マルチリソース連携用のXA連携用プログラムを作成する場合は、xa_switch_t構造体名を連携する分指定します。
otsmkxapgmコマンドのオプションを以下に説明します。
XA連携するデータベースのxa_switch_t構造体の名前を指定します。
オプションとオプション引数は、複数指定できます。省略できません。
Java言語を利用したサーバアプリケーション(Javaサーバ)用のXA連携用プログラムを作成します。Javaサーバ用XA連携用プログラムを作成する場合に指定してください。
Javaサーバ用XA連携用プログラムには、libthread.soがリンクされます。
Javaサーバ用XA連携用プログラムには、libpthread.soがリンクされます
データベースベンダが公開するライブラリを、以下のバイト以内の文字列で指定します。
1024バイト
2048バイト
以下の規約でコマンドを指定してください。
データベース | ライブラリ |
---|---|
Symfoware/RDB |
|
| |
| |
| |
Oracle |
[Oracle 11g 系] |
|
注意
ライブラリ情報およびオブジェクト情報は、半角ダブルクォート(")で囲む必要があります。
ライブラリの格納パスは、半角シングルクォート(')で囲む必要があります。
本オプションは、省略できません。
マルチリソース用のXA連携用プログラムを作成する場合は、以下の規約で指定した情報を、空白文字を区切り文字として複数指定します。
-r"/libpath:'librarypathname' /libpath:'librarypathname'… libraryname…"
librarypathname:ライブラリ格納パス
librarypath:各データベースベンダが公開するライブラリ名
「process」を指定すると、プロセスモードとして作成します。
「thread」を指定すると、スレッドモードとして作成します。
本オプションを省略した場合は、「process」とみなされます。
XA連携プログラムをバックアップ対象とする場合は、本オプションを指定します。本オプションを指定した場合、-oオプションにはXA連携プログラム名のファイル名だけを指定してください。
XA連携プログラムは、以下に作成されます。
C:\Interstage\ots\var\clone
/opt/FSUNots/var/clone
/opt/FJSVots/var/clone
出力するXA連携用プログラム名を指定します。XA連携用プログラム名に指定可能なパス名の最大長は、255バイトです。本オプションは、省略できません。
また、ファイルの拡張子を"DLL"としてください。指定したファイルの拡張子"DLL"と"LIB"のライブラリファイルをコマンドの結果として作成します。絶対パス名/ファイル名を指定してもかまいませんが、ファイル名を指定する場合は、本コマンド実行時のカレントフォルダに作成されます。
通常は、ファイルの拡張子を"o"としてください。また、-javaと同時に指定した場合は、ファイルの拡張子を"so"としてください。絶対パス名/ファイル名を指定してもかまいませんが、ファイル名を指定する場合は、本コマンド実行時のカレントディレクトリに作成されます。
注意事項
マルチリソースアクセス機能を使用する場合のXA連携用プログラムは、サーバアプリケーション作成時に利用可能です。
マルチリソースアクセス機能を使用するには、そのためのXA連携用プログラムと定義(ワークユニット定義およびインプリメンテーションリポジトリに対して登録するための定義情報)をしなければなりません。このとき、ワークユニット起動/OTSのinitメソッドが以下に示すように異常終了する場合があります。
XA連携用プログラム | ワークユニット定義/ | ワークユニット起動/ |
---|---|---|
1つのリソースアクセス用 | リソース定義ファイルの指定が1つ | 正常終了 |
同じリソース種別のリソース定義ファイルの指定が複数 | 正常終了 | |
異なるリソース種別のリソース定義ファイルの指定が複数 | 異常終了 | |
複数のリソースアクセス用 | リソース定義ファイルの指定が1つ | 異常終了 |
リソース定義ファイルの指定が複数 | 該当RM名があれば正常終了 |
XA連携用プログラム | ワークユニット定義/ | ワークユニット起動/ |
---|---|---|
1つのリソースアクセス用 | リソース定義ファイルの指定が1つ | 正常終了 |
リソース定義ファイルの指定が複数 | 異常終了 | |
複数のリソースアクセス用 | リソース定義ファイルの指定が複数 | 異常終了 |
リソース定義ファイルの指定が複数 | 該当RM名があれば正常終了 |
“システム設計ガイド”の“ソフトウェア条件”に記載されているコンパイラを使用してください。
Interstageインストール先\ots\program\rsc配下に以下のXA連携用プログラムを提供しています。これらのXA連携用プログラムを使用する範囲であれば、新たにXA連携用プログラムを作成する必要はありません。
Oracle10g用XA連携用プログラム(otsxaora10g.dll/otsxaora10g.lib)
Oracle10g用XA連携用プログラム(otsxaora10g_java.dll/otsxaora10g_java.lib)(Java言語サーバアプリケーション用)
Oracle11g用XA連携用プログラム(otsxaora11g.dll/otsxaora11g.lib)
Oracle11g用XA連携用プログラム(otsxaora11g_java.dll/otsxaora11g_java.lib)(Java言語サーバアプリケーション用)
Symfoware/RDB用XA連携用プログラム(otsxasym.dll/otsxasym.lib)
Symfoware/RDB用XA連携用プログラム(otsxasym_java.dll/otsxasym_java.lib)(Java言語サーバアプリケーション用)
Symfoware/RDB用XA連携用プログラム(otsxasym_mt.dll/otsxasym_mt.lib)(スレッドライブラリをリンク)
Symfoware/RDB用XA連携用プログラム(otsxasym_mt_java.dll/otsxasym_mt_java.lib)(スレッドライブラリをリンクしたJava言語サーバアプリケーション用)
ファイルの拡張子"DLL"と"LIB"の2つのライブラリファイルを作成します。ファイルの拡張子"LIB"のファイルは、以下のコマンドの入力情報となります。
otslinkrsc
tdlinkapm
また、ファイルの拡張子"DLL"のライブラリファイルは、リソース管理プログラムを運用する場合、リソース管理プログラムと同じ格納場所に配置するか、システム環境変数PATHにファイルの格納場所を設定してください。
otsmkxapgmコマンドを使用する場合、Microsoft(R) Visual Studio(R)が必要となります。
Javaサーバアプリケーション用のXA連携用プログラムは、サーバアプリケーション作成時に利用可能です。
otsmkxapgmコマンド実行時に、コマンドが異常終了した場合、一時作業ファイル(ファイル名:otsenvxamkpgm.c)が回収されないことがあります。この場合、以下の環境配下に作成されたフォルダと一時作業ファイルを削除してください。作成されるフォルダ名は、otsmkxapgmnnnnnn_nnです(nnnnnn:コマンドのプロセスID、nn:任意の2桁の数値)。
環境変数TMPがある場合:環境変数TMP配下
環境変数TMPがなく、環境変数TEMPがある場合:環境変数TEMPその配下
環境変数TMP、環境変数TEMPがない場合:コマンド実行時のカレントフォルダ配下
/opt/FSUNots/program/xa配下に以下のXA連携用プログラムを提供しています。これらのXA連携用プログラムを使用する範囲の運用であれば、新たにXA連携用プログラムを作成する必要はありません。
Oracle用XA連携用プログラム(libotsxaora.o)(プロセスモード)
Symfoware/RDB用XA連携用プログラム(libotsxasym.o)(プロセスモード)
MQD用XA連携用プログラム(libotsxamqd.o)(プロセスモード)
OracleとMQDを使用する場合のXA連携用プログラム(libotsxamqd_ora.o)(プロセスモード)
Symfoware/RDBとMQDを使用する場合のXA連携用プログラム(libotsxamqd_sym.o)(プロセスモード)
otsmkxapgmコマンドを使用する場合、Cコンパイラ(cc)が必要となります。
/opt/FJSVots/program/xa配下に以下のXA連携用プログラムを提供しています。これらのXA連携用プログラムを使用する範囲の運用であれば、新たにXA連携用プログラムを作成する必要はありません。
Oracle用XA連携用プログラム(libotsxaora.o)(プロセスモード)
Symfoware/RDB用XA連携用プログラム(libotsxasym.o)(プロセスモード)
otsmkxapgmコマンドを使用する場合、コンパイラ(gcc)が必要となります。
使用例
Symfoware用のXA連携用プログラム「otssymxa.dll」を作成する場合
otsmkxapgm -s RDBII_xa_switch -r "/libpath:'c:\SFWSV\ESQL\LIB'F3CWXA.LIB F3CWDRV.LIB" -o D:\temp\ots\otssymxa.dll |
Symfoware用のXA連携用プログラム「otssymxaj.dll」を作成する場合
otsmkxapgm -s RDBII_xa_switch -r "/libpath:'c:\SFWSV\ESQL\LIB'F3CWXA_x64.LIB F3CWDRV_x64.LIB" -o D:\temp\ots\otssymxa.dll |
Symfoware用のXA連携用プログラム「otssymxa.o」をスレッドモードで作成する場合
otsmkxapgm -t thread -s RDBII_xa_switch -o otssymxa.o |
Symfoware用のXA連携用プログラム(Javaサーバアプリケーション用)「otssymxaj.dll」を作成する場合
otsmkxapgm -java -s RDBII_xa_switch -r "/libpath:'C:\SFWSV\ESQL\LIB' F3CWXA.LIB F3CWDRV.LIB" -o D:\temp\ots\otssymxaj.dll |
Symfoware用のXA連携用プログラム(Javaサーバアプリケーション用)「otssymxaj.dll」を作成する場合
otsmkxapgm -java -s RDBII_xa_switch -r "/libpath:'C:\SFWSV\ESQL\LIB' F3CWXA_x64.LIB F3CWDRV_x64.LIB" -o D:\temp\ots\otssymxaj.dll |
Symfoware用のXA連携用プログラム(Javaサーバアプリケーション用)「libsymxaj.o」を作成する場合
環境変数RDB2LIBには、Symfoware/RDBのライブラリディレクトリを指定する必要があります。
otsmkxapgm -java -r ”-L$(RDB2LIB) -lrdbxa -lsqldrv” -s RDBII_xa_switch -o libsymxaj.so |
SymfowareとOracleの2つのデータベースと連携する1つのXA連携用プログラムを作成する場合(1つのアプリケーション上で2つのデータベースにアクセスする場合)
otsmkxapgm -s RDBII_xa_switch -s xaosw -r "/libpath:'C:\SFWSV\ESQL\LIB' /libpath:''C:\oracle\product\10.2.0\db_1\RDBMS\XA' F3CWXA.LIB F3CWDRV.LIB ORAXA10.LIB" -o D:\temp\ots\otsmultixa.dll |
SymfowareとOracleの2つのデータベースと連携する1つのXA連携用プログラム「otsmultixa.o」を作成する場合(1つのアプリケーション上で2つのデータベースにアクセスする場合)
otsmkxapgm -s RDBII_xa_switch -s xaosw -o otsmultixa.o |
Oracle用(バージョン:10.2.0)のXA連携用プログラム「otsoraxa.dll」を作成する場合
otsmkxapgm -s xaosw -r "/libpath:'C:\oracle\product\10.2.0\db_1\RDBMS\XA' ORAXA10.LIB " -o D:\temp\ots\otsoraxa.dll |
Oracle用のXA連携用プログラム「otsoraxa.o」を作成する場合
otsmkxapgm -s xaosw -o otsoraxa.o |