ee_dbq_obsstart
形式
ANSI C,C++の形式
#include <eedbq.h> int ee_dbq_obsstart(char *batchque_name, char *lot_name, EEDBQOBSST *start_inf, EELONG flags)
機能
オンラインバッチ処理の開始要求を行います。
UAPで値を設定する引数
●batchque_name
DBキュー名を27バイト以内のアスキー文字列で設定します。文字列の末尾にはNULL文字を付けてください。このNULL文字は文字列の長さに数えません。
データ型オンラインバッチ処理を起動する場合は,定義ファイルで定義されているDBキュー名を指定してください。イベント型オンラインバッチ処理を起動する場合は,任意のDBキュー名を指定してください。オンラインバッチ処理開始以降の関数を呼び出すときに指定するDBキュー名は,この関数で指定したDBキュー名を指定します。
●lot_name
ロット名を23バイト以内のアスキー文字列で設定します。文字列の末尾にはNULL文字を付けてください。このNULL文字は文字列の長さに数えません。
●start_inf
DBキュー情報を構造体EEDBQOBSSTで設定します。構造体の形式は次のとおりです。
- 32ビットアーキテクチャの場合
struct ee_dbq_obsstart_t{ char service_name[32]; EEULONG lot_type; char *cont_pt; EEULONG cont_sz; }EEDBQOBSST;
- 64ビットアーキテクチャの場合
struct ee_dbq_obsstart_t{ char service_name[32]; EEULONG lot_type; char yobi_1[4]; char *cont_pt; EEULONG cont_sz; char yobi_2[4]; }EEDBQOBSST;
-
service_name(サービス名)
該当するロットでの読み出しトランザクションを起動するサービス名を31バイト以内のアスキー文字列で設定します。文字列の末尾にはNULL文字を付けてください。このNULL文字は文字列の長さに数えません。文字列の先頭にNULL文字を設定した場合,定義の指定を有効にします。
-
lot_type(ロットのオンラインバッチ処理形態)
次のフラグを設定します。
- EEDBQ_OBS_TYPE_DATA
-
データ型オンラインバッチ処理を起動します。
- EEDBQ_OBS_TYPE_EVNT
-
イベント型オンラインバッチ処理を起動します。
-
cont_pt(引き継ぎ情報を格納している領域のアドレス)
引き継ぎ情報を格納している領域のアドレスを設定します。アドレスを設定する必要がない場合は,NULL文字を設定してください。
-
cont_sz(引き継ぎ情報を格納している領域のサイズ)
引き継ぎ情報を格納している領域のサイズを設定します。0〜256バイトの範囲で設定できます。
●flags
EENOFLAGSを設定します。
リターン値
リターン値 |
意味 |
---|---|
EE_OK |
正常に終了しました。 |
EECOMER_CNDBPP |
オフラインバッチプロセスから発行しているため,この機能は使用できません。 |
EECOMER_CNDUOC |
UOCから発行しているため,この機能は使用できません。 |
EECOMER_ENVIRON |
TP1/EEの環境下にありません。 |
EEDBQER_ARGUMENT |
引数に設定した値が間違っています。 |
EEDBQER_BEFORE_ROLLBACK |
同一トランザクションで以前に行われた開始要求がエラーリターンしたあと,ロールバック処理が行われていないため,要求を受け付けません。 |
EEDBQER_CONDITION |
関数の呼び出し条件が不正です。 |
EEDBQER_CONT_LEN |
引き継ぎ情報を格納している領域のサイズが指定範囲外です。 |
EEDBQER_ENDSERVICE_STOP |
オンラインバッチ処理を終了するためのサービスにエントリポイントが存在しないため,要求を受け付けません。 |
EEDBQER_LOT_SHORT |
ロット管理テーブル面数が不足しました。 |
EEDBQER_MEMORY_SHORT |
メモリが不足しました。 |
EEDBQER_NO_DBQUE |
引数に設定したDBキュー名は存在しません。 |
EEDBQER_NO_LIBRARY |
オンラインバッチ機能のライブラリがリンケージされていません。 |
EEDBQER_NO_LOT |
引数に設定したロット名は存在しません。または,対象のロットではありません。 |
EEDBQER_NO_OPTION |
オンラインバッチ機能は使用できません。 |
EEDBQER_NO_SERVICE |
引数に設定したサービス名は存在しません。 |
EEDBQER_PROHIBIT |
該当するロットが次に示す状態ではないため,要求を受け付けられません。
|
EEDBQER_RM_ACCESS |
リソースマネジャへのアクセス時にエラーが発生しました。 |
EEDBQER_RM_CONNECT |
該当するスレッドではリソースマネジャに接続されていません。 |
EEDBQER_SERVICE_STOP |
引数に設定したサービス名はエントリポイントが存在しないため使用できません。 |
EEDBQER_TIMING |
このAPI関数を呼び出せる状態ではありません。 |
EEDBQER_UNRESOLVABLE |
そのほかのエラーが発生しました。 |
注意事項
-
リターン値がEE_OK以外の場合,必ずロールバックを行ってください。
-
呼び出し元トランザクションがコミットしたときに,オンラインバッチ処理は開始します。
-
呼び出し元トランザクションがロールバックまたはコミットするまでの間,該当するロットが受け付けられるオンラインバッチのAPI関数は,ee_dbq_obsinquire関数だけです。ほかのオンラインバッチのAPI関数は受け付けません。