Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option プログラム作成の手引


ee_tim_execap_cancel

〈このページの構成〉

名称

タイマトランザクションの起動取り消し

形式

ANSI C,C++の形式

#include <eetim.h>
int  ee_tim_execap_cancel(EEULONG acttype, EEULONG reqid, EELONG flags)

機能

タイマトランザクションを取り消します。ee_tim_execap関数でタイマトランザクションを登録するときに設定した起動タイミングより前であれば,ee_tim_execap_cancel関数でタイマトランザクションを取り消せます。

UAPで値を設定する引数

●acttype

どの起動方式のタイマトランザクションを取り消すかを設定します。

EETIM_INST

次のタイマトランザクションを,コミットとは無関係に直ちに取り消します。

  • acttypeでEETIM_INST(即時登録方式)を設定した,ee_tim_execap関数のタイマトランザクション

  • acttypeでEETIM_COMT(トランザクション同期登録方式)を設定した,コミット後のee_tim_execap関数のタイマトランザクション

EETIM_COMT

ee_tim_execap関数でacttypeにEETIM_COMT(トランザクション同期登録方式)を設定したタイマトランザクションを取り消します。コミット前であれば,ee_tim_execap関数を呼び出したトランザクションからタイマトランザクションを取り消せます。

EETIM_CMTC

次のタイマトランザクションを,コミット後に取り消します。

  • acttypeでEETIM_INST(即時登録方式)を設定した,ee_tim_execap関数のタイマトランザクション

  • acttypeでEETIM_COMT(トランザクション同期登録方式)を設定した,コミット後のee_tim_execap関数のタイマトランザクション

●reqid

タイマトランザクションのリクエスト識別子を設定します。ee_tim_execap関数でタイマトランザクションを登録したときにreqidで設定したリクエスト識別子と同じものを設定してください。

同一のリクエスト識別子のタイマトランザクションが複数登録されている場合,acttypeでEETIM_INSTまたはEETIM_CMTCを設定したときは,起動時刻が最も早いタイマトランザクションが取り消されます。acttypeでEETIM_COMTを設定したときは,最も早く登録要求されたタイマトランザクションが取り消されます。

●flags

EENOFLAGSを設定します。

リターン値

リターン値

意味

EE_OK

正常に終了しました。

EECOMER_CNDBPP

オフラインバッチプロセスから発行しているため,この機能は使用できません。

EECOMER_CNDUOC

UOCから発行しているため,この機能は使用できません。

EECOMER_ENVIRON

TP1/EEの環境下にありません。

EETIMER_ARGUMENT

引数に設定した値が間違っています。

EETIMER_CONDITION

関数の呼び出し条件が不正です。

EETIMER_NOTHING

設定されたリクエスト識別子を持つタイマトランザクションは未登録,起動中,または起動済みです。

注意事項

  1. タイマトランザクションを登録するときにee_tim_execap関数でacttypeにEETIM_COMTを設定した場合,ee_tim_execap関数を呼び出したトランザクションがコミットしたあとは,ee_tim_execap_cancel関数でacttypeにEETIM_COMTを設定してもタイマトランザクションを取り消せません。コミット後に取り消したい場合は,ee_tim_execap_cancel関数でacttypeにEETIM_INSTまたはEETIM_CMTCを設定してください。

  2. ee_tim_execap関数で設定した起動タイミングに達しているタイマトランザクションは取り消せません。

  3. acttypeでEETIM_CMTCを設定した場合,対象のタイマトランザクションが同期点処理前に起動時刻に達しても,タイマトランザクションを起動しません。

  4. acttypeにEETIM_CMTCを設定した場合,コミット前にトランザクションが異常終了したとき,またはロールバックしたときは,この関数の要求は無効になります。このとき,起動時刻に達している場合はタイマトランザクションを即時起動します。同一のトランザクション内でee_trn_rollback_mark関数がすでに呼び出されている場合は,リターン値EETIMER_CONDITIONでエラーリターンします。