1.6.1 データ抽出ユティリティ用UAP
UAPの作成手順を次の図に示します。
(1) UAPのコーディング
UAPのコーディングには,C言語またはCOBOL言語を使用できます。
UAPをコーディングしてソースファイルを作成するとき,データ抽出ユティリティのライブラリ関数のほかにも,OSの標準の機能やデータベース言語(SQL)を使用できます。
ただし,UAPでは,TP1/EE,TP1/XTC,TP1/MCP,TP1/FSP(データ抽出ユティリティは除く)のライブラリ関数を使用することはできません。これらが提供する機能を使用した場合の動作は保証しないので注意してください。
また,データ抽出ユティリティのライブラリ関数は,TP1/EEなどのデータ抽出ユティリティ以外のUAPで使用することはできません。データ抽出ユティリティのライブラリ関数を,データ抽出ユティリティ以外のUAPで使用した場合の動作は保証しないので注意してください。
(a) C言語でコーディングする場合
- C言語を使う場合
-
ANSI Cの形式に従ってコーディングします。データ抽出ユティリティの機能を使うときは,データ抽出ユティリティのAPI関数を呼び出します。
- データ抽出ユティリティの関数の使い方
-
OSで標準的に提供する関数と同様,関数を呼び出すときには,引数を設定します。
関数が正常に実行されたかどうかは,戻ってくる値(リターン値)で判断できます。
(b) COBOL言語でコーディングする場合
COBOL言語を使うときは,COBOL2002の形式でコーディングします。
データ抽出ユティリティの機能を使うときは,データ抽出ユティリティのCOBOL-UAP作成用プログラムを使います。COBOL-UAP作成用プログラムを,COBOL言語のCALL文で呼び出して,UAPの処理からデータ抽出ユティリティに制御を移します。
CALL文の実行結果は,戻ってくる数(ステータスコード)で判断できます。
(c) コーディング規約
コーディングするときは,マニュアル「OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option プログラム作成の手引」のコーディング規約に従ってください。SQLのコーディングの規約については,該当するリファレンスマニュアルを参照してください。
マニュアル「OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option プログラム作成の手引」で示されているコーディング規約以外に,データ抽出ユティリティとして定めているコーディング規約を次に示します。
-
UAPでメイン関数を作成してください。COBOL言語でコーディングする場合,メイン関数はEXIT PROGRAMではなくSTOP RUNで終了してください。
-
UAPをマルチスレッドで動作させないでください。
(2) UAPオブジェクトファイルの作成
ソースファイルをコンパイルして,UAPオブジェクトファイルを作成します。Cコンパイラのプリプロセッサオプションに-Dee_TP1EETRNIOARKSを指定してください。
(3) UAP実行形式ファイルの作成
UAPオブジェクトファイルと次のライブラリをリンケージして,UAP実行形式ファイルを作成します。リンケージオプションについては,データ抽出ユティリティのサンプルmakeファイル(makefile_ioa)を参照してください。
- データ抽出ユティリティのライブラリ
-
libee_offmsg.soと次のライブラリを指定します。
-
libeeioahir.so
-
- COBOL2002のライブラリ
-
COBOL2002言語でUAPを作成する場合に指定します。
- DBMSクライアントのライブラリ
-
UAPがDBMSにアクセスする場合,アクセスするDBMSのクライアントのライブラリを指定します。ただし,データ抽出ユティリティがアクセスするDBMSのクライアントのライブラリは指定しないでください。例えば,データ抽出ユティリティのライブラリにlibeeioahir.soを指定した場合,HiRDBクライアントのライブラリを指定しないでください。
- その他のライブラリ
-
UAPでデータ抽出ユティリティ以外のライブラリ関数を使用している場合,必要に応じて指定します。
(4) UAPの環境設定
UAPを実行する環境に次の環境変数を設定します。
- LD_LIBRARY_PATH
-
次のパスをすべて指定します。
-
TP1/EEのライブラリのインストールディレクトリ
-
COBOL2002のライブラリのインストールディレクトリ
(COBOL2002のライブラリを使用する場合)
-
DBMSクライアントのライブラリのインストールディレクトリ
-
その他のライブラリのインストールディレクトリ
(その他のライブラリを使用する場合)
-
- HiRDBのクライアント環境定義
-
接続するHiRDBの指定に環境変数グループファイルを使用しない場合に設定します。詳細は「1.6.2(7) 制御情報ファイル」を参照してください。
PDSWAITTIMEとPDSWATCHTIMEに0,またはPDKALVLに2を設定してください。環境変数グループファイルを使用する場合は,環境変数グループファイルのPDSWAITTIMEとPDSWATCHTIMEに0,またはPDKALVLに2を設定してください。
取得用履歴情報表を抽出対象とする場合,PDLCKWAITTIMEは,オンライン側のHiRDBのクライアント環境定義のPDLCKWAITTIMEより小さい値を設定してください。半分以下の値を設定することを推奨します。
HiRDBのクライアント環境定義については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。
必要に応じてUAPを実行する環境に次の環境変数を設定します。
- EETRNIOALOGDIR=メッセージログファイル出力ディレクトリ名 〜〈980文字以内のパス名〉《.》
-
メッセージログファイルを出力するディレクトリのパス名を指定します。
環境変数を設定しない場合は,データ抽出ユティリティを使用したUAPを実行したカレントパスにメッセージログファイルを出力します。
- EETRNIOALOGCMODE={SJIS|NONE}
-
syslog出力時に拡張SYSLOGの文字コード変換機能を使用するかどうかを指定します。
環境変数CBLSYSLOGにYESを指定したときは,環境変数EETRNIOALOGCMODEにSJISを指定してください。
拡張SYSLOGの使用時にログサービスがsyslogファイルへの出力に失敗した場合は,syslogへは出力しません。
- SJIS:
-
拡張SYSLOGの文字コード変換機能を使用し,シフトJISからUTF-8に変換します。
- NONE:
-
拡張SYSLOGの文字コード変換機能を使用しません。
拡張SYSLOGをインストールしていれば,拡張SYSLOGを使用します。
拡張SYSLOGをインストールしていなければ,KFSB51913-Wを出力し,
拡張SYSLOGを使用しないで,syslog出力します。
(5) UAPの実行
UAP実行形式ファイルを実行します。