1.2.10 オンラインバッチ制御(ee_obm_〜)(C言語)
(1) ee_obm_lot_end
- 名称
-
ノーマルトランザクションのロットの終了要求
- 形式
-
ANSI C,C++の形式
#include <eeobm.h> int ee_obm_lot_end(EELONG flags);
- 機能
-
ロットの正常終了を要求します。ノーマルトランザクションを起動したロットを正常終了します。ほかのロットを正常終了することはできません。
本関数を実行したサービス関数リターン後にトランザクションがコミット決着すると,ロットが正常終了します。
本関数を実行したサービス関数リターン後,トランザクションがロールバック決着した場合,またはスレッドダウンした場合はロットの終了要求は無効となります。
本関数は,イベント型OBMのノーマルトランザクションから実行できます。
UAPで値を設定する引数
- flags
-
EENOFLAGSを設定します。
- リターン値
-
リターン値
意味
EE_OK
正常に終了しました。
EECOMER_ENVIRON
TP1/EEの環境下にありません。
EECOMER_CNDUOC
UOCから発行しているため,本機能は使用できません。
EECOMER_CNDBPP
オフラインバッチプロセスから発行しているため,本機能は使用できません。
EEOBMER_ARGUMENT
引数に設定した値が間違っています。
EEOBMER_CONDITION
発行条件が不正です。
-
TP1/FSPの環境下にありません。
-
OBM機能を使用していません。
-
イベント型OBMのノーマルトランザクションではありません。
-
ee_trn_rollback_mark関数を発行済みです。
EEOBMER_ORDER_INJUSTICE
同一トランザクションで次のどれかの関数を発行済みです。
-
ee_obm_lot_end()
-
ee_obm_lot_stop()
-
ee_obm_stop()
-
(2) ee_obm_lot_stop
- 名称
-
ノーマルトランザクションのロットの停止要求
- 形式
-
ANSI C,C++の形式
#include <eeobm.h> int ee_obm_lot_stop(char stop_factor, char postprocessing, EELONG flags);
- 機能
-
ロットの停止を要求します。本関数は,ノーマルトランザクションから実行できます。ノーマルトランザクションを起動したロットを停止します。ほかのロットを停止することはできません。
本関数を実行したサービス関数リターン後にトランザクションがコミット決着すると,本関数で設定した停止要因でロットが停止します。
本関数を実行したサービス関数リターン後にトランザクションがロールバック決着した場合,またはスレッドダウンした場合はロットの停止要求は無効となります。
UAPで値を設定する引数
- stop_factor
-
ロットの停止要因を設定します。計画停止は,イベント型OBMの場合だけ設定できます。
EEOBM_STOP_FORCE:強制停止します。
EEOBM_STOP_PLAN:計画停止します。
- postprocessing
-
本関数を実行したノーマルトランザクションで処理していたバッチデータを処理済みとするか,未処理のままとするかを設定します。イベント型OBMの場合は,EEOBM_DATA_RETRYを設定してください。EEOBM_DATA_SKIPを設定しても無視します。
EEOBM_DATA_SKIP:バッチデータを処理済みとします。
EEOBM_DATA_RETRY:バッチデータを未処理のままとします。
- flags
-
EENOFLAGSを設定します。
- リターン値
-
リターン値
意味
EE_OK
正常に終了しました。
EECOMER_ENVIRON
TP1/EEの環境下にありません。
EECOMER_CNDUOC
UOCから発行しているため,本機能は使用できません。
EECOMER_CNDBPP
オフラインバッチプロセスから発行しているため,本機能は使用できません。
EEOBMER_ARGUMENT
引数に設定した値が間違っています。
EEOBMER_CONDITION
発行条件が不正です。
-
TP1/FSPの環境下にありません。
-
OBM機能を使用していません。
-
ノーマルトランザクションではありません。
-
停止要因に計画停止が設定されていますが,イベント型OBMではありません。
-
ee_trn_rollback_mark関数を発行済みです。
EEOBMER_ORDER_INJUSTICE
同一トランザクションで次のどれかの関数を発行済みです。
-
ee_obm_lot_end()
-
ee_obm_lot_stop()
-
ee_obm_stop()
-
(3) ee_obm_stop
- 名称
-
ノーマルトランザクションのOBMの停止要求
- 形式
-
ANSI C,C++の形式
#include <eeobm.h> int ee_obm_stop(char stop_factor, EELONG reason_code, char postprocessing, EELONG flags);
- 機能
-
OBMの停止を要求します。本関数は,ノーマルトランザクションから実行できます。ノーマルトランザクションを起動したOBMを停止します。
本関数を実行したサービス関数リターン後にトランザクションがコミット決着すると,本関数で設定した停止要因でOBMが停止します。
本関数を実行したサービス関数リターン後にトランザクションがロールバック決着した場合,またはスレッドダウンした場合はOBMの停止要求は無効となります。
UAPで値を設定する引数
- stop_factor
-
ロットの停止要因を設定します。計画停止は,イベント型OBMの場合だけ設定できます。
EEOBM_STOP_FORCE:強制停止します。
EEOBM_STOP_PLAN:計画停止します。
- reason_code
-
任意の理由コードを設定します。本関数で設定した理由コードは,クローズトランザクション,終了/停止UOC,再開始UOCで参照できます。
- postprocessing
-
本関数を実行したノーマルトランザクションで処理していたバッチデータを処理済みとするか,未処理のままとするかを設定します。イベント型OBMの場合は,EEOBM_DATA_RETRYを設定してください。EEOBM_DATA_SKIPを設定しても無視します。
EEOBM_DATA_SKIP:バッチデータを処理済みとします。
EEOBM_DATA_RETRY:バッチデータを未処理のままとします。
- flags
-
EENOFLAGSを設定します。
- リターン値
-
リターン値
意味
EE_OK
正常に終了しました。
EECOMER_ENVIRON
TP1/EEの環境下にありません。
EECOMER_CNDUOC
UOCから発行しているため,本機能は使用できません。
EECOMER_CNDBPP
オフラインバッチプロセスから発行しているため,本機能は使用できません。
EEOBMER_ARGUMENT
引数に設定した値が間違っています。
EEOBMER_CONDITION
発行条件が不正です。
-
TP1/FSPの環境下にありません。
-
OBM機能を使用していません。
-
ノーマルトランザクションではありません。
-
停止要因に計画停止が設定されていますが,イベント型OBMではありません。
-
ee_trn_rollback_mark関数を発行済みです。
EEOBMER_ORDER_INJUSTICE
同一トランザクションで次のどれかの関数を発行済みです。
-
ee_obm_lot_end()
-
ee_obm_lot_stop()
-
ee_obm_stop()
-
- 注意事項
-
-
複数のトランザクションでOBMの停止要求を実行した場合,最初にコミット決着したトランザクションで設定した停止要因,理由コードで停止します。
-
本関数を実行したトランザクションがコミット決着した場合でも,停止処理中に障害が発生した場合は,停止要因,理由コードは障害による停止要因,理由コードとなります。
-
(4) ee_obm_any_stop
- 名称
-
任意のOBMの停止要求
- 形式
-
ANSI C,C++の形式
#include <eeobm.h> int ee_obm_any_stop(char *obm_name, char stop_factor, EELONG reason_code, EELONG flags);
- 機能
-
OBMの停止を要求します。実行中状態,初期化中状態,および再開始処理中状態のOBMに対して要求できます。
本関数が正常に終了すると,OBMを停止します。
本関数は,OBMのトランザクション以外のトランザクションからも実行できます。BCSのTP1/EEから実行する場合は,BCMとネゴシエーションが完了している必要があります。ネゴシエーションが完了していない場合に実行すると本関数はエラーリターンします。
OBMのノーマルトランザクションから該当OBMに対して停止要求を実行する場合は,ee_obm_stop()を使用することを推奨します。OBMのノーマルトランザクションから該当OBMに対して停止要求を実行した場合は,タイミングによっては,該当OBMが停止する前に本関数を実行したロットのノーマルトランザクションが何回か起動される場合があります。
OBMのオープントランザクションから該当OBMに対しての停止要求は,該当OBMのノーマルトランザクションが起動されることなくOBMが停止します。
UAPで値を設定する引数
- obm_name
-
OBM名を8バイト以内のアスキー文字列で設定します。文字列の末尾にはヌル文字を付けてください。この空白は文字列の長さには数えません。
- stop_factor
-
ロットの停止要因を設定します。計画停止は,イベント型OBMの場合だけ設定できます。
EEOBM_STOP_FORCE:強制停止します。
EEOBM_STOP_PLAN:計画停止します。
- reason_code
-
任意の理由コードを設定します。本関数で設定した理由コードは,クローズトランザクション,終了/停止UOC,再開始UOCで参照できます。
- flags
-
EENOFLAGSを設定します。
- リターン値
-
リターン値
意味
EE_OK
正常に終了しました。
EECOMER_ENVIRON
TP1/EEの環境下にありません。
EECOMER_CNDUOC
UOCから発行しているため,本機能は使用できません。
EECOMER_CNDBPP
オフラインバッチプロセスから発行しているため,本機能は使用できません。
EEOBMER_ARGUMENT
引数に設定した値が間違っています。
EEOBMER_CONDITION
発行条件が不正です。
-
TP1/FSPの環境下にありません。
-
OBM機能を使用していません。
-
ノーマルトランザクションではありません。
-
停止要因に計画停止が設定されていますが,イベント型OBMではありません。
EEOBMER_STATE_INJUSTICE
状態不正。実行中状態ではありません。
EEOBMER_TIMING
-
タイミング不正。BCMとのネゴシエーションが未完了です。
-
テーブル排他の取得ができません。
EEOBMER_NO_SUCH_LOT
指定したOBM名は定義されていません。
EEOBMER_COMMUNICATE
BCMへの送信処理で障害が発生しました。
EEOBMER_TIMED_OUT
BCMからの応答待ち時間切れ(タイムアウト)になりました。
-
- 注意事項
-
-
複数のトランザクションでOBMの停止要求を実行した場合,最初に本関数を実行したトランザクションで設定した停止要因,理由コードで停止します。
-
本関数を実行後のOBMの停止処理中に障害が発生した場合は,停止要因,理由コードは障害による停止要因,理由コードとなります。
-
EEOBMER_TIMED_OUTでリターンした場合は,停止要求は受け付けられていることがあります。
再実行するか,BCMのTP1/EEでeeobmstslsコマンドを実行して状態を確認してください。
-
複数のBCMと接続しているBCSで本関数を実行した場合,通常使用BCM,切替用BCMの順番で停止要求を送信します。どちらかが停止要求を受け付ければ,本関数は,EE_OKでリターンします。両方でエラーとなった場合は,通常使用BCMからの応答に合わせてリターン値を設定します。ただし,通常使用BCMとは通信できずに,切替用BCMと通信できた場合は,切替用BCMからの応答に合わせてリターン値を設定します。
-
(5) ee_obm_recv
- 名称
-
バッチデータの受信
- 形式
-
ANSI C,C++の形式
#include <eeobm.h> int ee_obm_recv(EEOBMKEY* data_key, EELONG *data_size, char **data_addr, EELONG flags); typedef struct ee_obm_key{ EELONG key_len[7]; /* バッチデータのキー長 */ char key[7][8]; /* バッチデータのキー */ EELONG data_no; /* バッチデータの通番 */ } EEOBMKEY;
- 機能
-
ブロック送信機能を使用している場合に,ブロック内の後続レコードを受信します。データ型OBMのノーマルトランザクションで実行できます。
UAPで値を設定する引数
- data_key
-
受信するバッチデータキーを格納する領域を指定します。
- data_size
-
受信するバッチデータ長を格納する領域を指定します。
- data_addr
-
受信するバッチデータを格納するエリアのアドレスを格納する領域を指定します。
- flags
-
EENOFLAGSを設定します。
TP1/EEから値が返される引数
- key_len
-
受信したバッチデータのキーの長さが返されます。リターン値がEE_OK,またはEEOBMER_OVERFLOWのときに参照できます。配列の3番目以降は今後の拡張用です。
- key
-
受信したバッチデータのキーが返されます。リターン値がEE_OK,またはEEOBMER_OVERFLOWのときに参照できます。配列の3番目以降は今後の拡張用です。
- data_no
-
受信したバッチデータの一連通番が返されます。リターン値がEE_OK,またはEEOBMER_OVERFLOWのときに参照できます。
- data_size
-
受信したバッチデータの長さが返されます。リターン値がEE_OK,またはEEOBMER_OVERFLOWのときに参照できます。
- data_addr
-
受信したバッチデータを格納したエリアのアドレスが返されます。リターン値がEE_OK,またはEEOBMER_OVERFLOWのときに参照できます。
- リターン値
-
リターン値
意味
EE_OK
正常に終了しました。
EECOMER_ENVIRON
TP1/EEの環境下にありません。
EECOMER_CNDUOC
UOCから発行しているため,本機能は使用できません。
EECOMER_CNDBPP
オフラインバッチプロセスから発行しているため,本機能は使用できません。
EEOBMER_ARGUMENT
引数に設定した値が間違っています。
EEOBMER_CONDITION
発行条件が不正です。
-
TP1/FSPの環境下にありません。
-
OBM機能を使用していません。
-
本関数を実行できるトランザクションではありません。
-
ee_trn_rollback_mark関数を発行済みです。
-
データ型OBMではありません。
EEOBMER_OVERFLOW
入力メッセージ引き渡しエリア(IMA)がオーバフローしました※。
EEOBMER_NO_DATA
ブロックの全バッチデータを受信済みです。
- 注※
-
data_sizeにはdata_addrが指すアドレスに格納できたバッチデータのサイズが返されます。
-
- 注意事項
-
-
本関数では,トランザクション起動時にサービスプログラムにバッチデータを設定した領域(入力パラメタ,入力パラメタ長)を再利用します。本関数実行後に,前のバッチデータを参照したい場合は,あらかじめ別の領域に複写してください。
-