Hitachi

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


ee_rpc_reply_suspend

〈このページの構成〉

名称

RPC応答メッセージ送信の抑止

形式

ANSI C,C++の形式

#include <eerpc.h>
int ee_rpc_reply_suspend(EEULONG type, EEULONG *id,
                         EELONG timeout, EELONG flags)

機能

サービス関数終了時のRPC応答メッセージ送信を抑止します。抑止したRPC応答メッセージは,ee_rpc_reply_send関数を使って明示的に送信してください。トランザクションブランチ内ではRPC応答メッセージを抑止できません。

UAPで値を設定する引数

●type

抑止識別子の設定方法を設定します。

EERPC_IDTYPE_SYSTEM

TP1/EEが抑止識別子を割り当てます。

EERPC_IDTYPE_USER

ユーザが抑止識別子を指定します。

●id

typeにEERPC_IDTYPE_USERを設定した場合に,抑止識別子を設定します。抑止識別子として1〜2147483647の範囲の値を格納したポインタのアドレスを設定してください。

●timeout

RPC応答メッセージ抑止限界時間を設定します(単位:秒)。指定できる値は1〜65535,EERPC_TIMEOUT_DEF,またはEERPC_TIMEOUT_INFです。

EERPC_TIMEOUT_DEFを設定した場合,RPC関連定義のrpc_reply_suspend_timeオペランドで指定した値が抑止限界時間になります。EERPC_TIMEOUT_INFを設定した場合は,抑止限界時間は無制限になります。

●flags

EENOFLAGSを設定します。

TP1/EEから値が返される引数

●id

typeにEERPC_IDTYPE_SYSTEMを設定した場合に,抑止識別子が返されます。抑止識別子は,TP1/EEが自動的に割り当てた,プロセス内で一意の識別子です。

リターン値

リターン値

意味

EE_OK

正常に終了しました。

EECOMER_CNDBPP

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

EECOMER_CNDUOC

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

EECOMER_ENVIRON

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

EERPCER_ALREADY

RPC応答メッセージ送信は応答抑止済みです。

EERPCER_ARGUMENT

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

EERPCER_CONDITION

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

EERPCER_LIMITS_OVER

定義で指定した同時抑止最大数を超えました。

EERPCER_PROTO

トランザクションブランチ内で関数を呼び出しています。

非応答型RPCで関数を呼び出しています。

リモートAPI機能による自サービスグループへの代理実行要求中に関数を呼び出しています。

コネクションレス(UDPプロトコル)で起動されたトランザクション内で関数を発行しています。

RPCメッセージの永続化機能が有効な状態で関数を発行しています。

EERPCER_SYSERR

システムエラーが起こりました。

注意事項

  1. この関数を呼び出したあと,RPC応答メッセージ抑止限界時間以内にee_rpc_reply_send関数を呼び出さなかった場合,RPCエラー応答メッセージ(EERPCER_TIMED_OUT)が自動的に送信されます。そのあとでee_rpc_reply_send関数を呼び出しても,関数はエラーになります。

  2. 同一の抑止識別子を複数のee_rpc_reply_suspend関数で指定できます。この場合,一度のee_rpc_reply_send関数で複数のRPC応答メッセージが送信されます。

  3. 非応答型RPCでこの関数を呼び出した場合は,エラーリターンします。

  4. 【XTC限定】コネクションレス(UDPプロトコル)で起動されたトランザクション内でこの関数を発行した場合は,エラーリターンします。