Hitachi

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


ee_dbq_obsskip

〈このページの構成〉

名称

メッセージの読み出しスキップ

形式

ANSI C,C++の形式

#include <eedbq.h>
int ee_dbq_obsskip(EEULONG skip_flg, char *batchque_name, 
                   char *lot_name, EELONG flags)

機能

データ型オンラインバッチ処理の場合に,指定されたロットのメッセージを読み出し済みにします。

UAPで値を設定する引数

●skip_flg

次のフラグを設定します。

EEDBQ_OBS_SKIP_ALL

指定されたロットのすべてのメッセージを読み出し済みにします。

EEDBQ_OBS_SKIP_ONE

未読み出しの先頭にある1メッセージだけを読み出し済みにします。

●batchque_name

DBキュー名を27バイト以内のアスキー文字列で設定します。文字列の末尾にはNULL文字を付けてください。このNULL文字は文字列の長さに数えません。

●lot_name

ロット名を23バイト以内のアスキー文字列で設定します。文字列の末尾にはNULL文字を付けてください。このNULL文字は文字列の長さに数えません。

●flags

EENOFLAGSを設定します。

リターン値

リターン値

意味

EE_OK

正常に終了しました。

EECOMER_CNDBPP

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

EECOMER_CNDUOC

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

EECOMER_ENVIRON

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

EEDBQER_ARGUMENT

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

EEDBQER_CONDITION

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

EEDBQER_LOT_TYPE

該当するロットのタイプはこの要求では受け付けません。

EEDBQER_MEMORY_SHORT

メモリが不足しました。

EEDBQER_NO_DBQUE

引数に設定したDBキュー名は存在しません。

EEDBQER_NO_LIBRARY

オンラインバッチ機能のライブラリがリンケージされていません。

EEDBQER_NO_LOT

引数に設定したロット名は存在しません。または,対象のロットではありません。

EEDBQER_NO_OPTION

DBキュー機能は使用できません。

EEDBQER_PROHIBIT

該当するロットが次に示す状態ではないため,要求を受け付けられません。

  • 障害による読み出し中断中

  • 運用による読み出し中断中

  • 該当するロットに対してAPI関数を呼び出したトランザクションが,コミットまたはロールバックしている

EEDBQER_RM_CONNECT

該当するスレッドではリソースマネジャに接続されていません。

EEDBQER_SKIPMSG_NOTHING

この要求で読み出し済みにするメッセージはありません。

EEDBQER_TIMING

このAPI関数を呼び出せる状態ではありません。

EEDBQER_UNRESOLVABLE

そのほかのエラーが発生しました。

注意事項

  1. スキップの処理中(コミットされるまでの間)は別のスキップを受け付けません。

  2. 運用または障害によって,該当するロットが中断中の場合だけ呼び出せます。

  3. 呼び出し元トランザクションがコミットしたときに,メッセージが読み出し済みになります。

  4. 呼び出し元トランザクションがコミットまたはロールバックするまでの間,該当するロットが受け付けられるオンラインバッチのAPI関数は,ee_dbq_obsinquire関数,ee_dbq_obschdata関数だけです。ほかのオンラインバッチのAPI関数は受け付けません。