Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編


4.7.5 dc_clt_chained_accept_notification_s − 一方通知受信

〈この項の構成〉

(1) 形式

(a) TP1/Client/Wの場合

■ _s付き関数

#include <dcvclt.h>
DCLONG dc_clt_chained_accept_notification_s
                             (DCCLT_ID ntfid, char *inf,
                              DCLONG *inf_len,
                              DCLONG timeout,
                              char *hostname,
                              char *nodeid,
                              DCLONG flags)

■ _s無し関数

#include <dcvclt.h>
DCLONG dc_clt_chained_accept_notification
                       (char *inf, DCLONG *inf_len,
                        DCLONG timeout, char *hostname,
                        char *nodeid, DCLONG flags)

(b) TP1/Client/Pの場合

■ _s付き関数

#include <dcvclt.h>
DCLONG dc_clt_chained_accept_notification_s
                             (DCCLT_ID ntfid, char CLTFAR *inf,
                              DCLONG CLTFAR *inf_len,
                              DCLONG timeout,
                              char CLTFAR *hostname,
                              char CLTFAR *nodeid,
                              DCLONG flags)

■ _s無し関数

#include <dcvclt.h>
DCLONG dc_clt_chained_accept_notification
                       (char CLTFAR *inf, DCLONG CLTFAR *inf_len,
                        DCLONG timeout, char CLTFAR *hostname,
                        char CLTFAR *nodeid, DCLONG flags)

(2) 機能

サーバ側の関数dc_rpc_cltsendによって通知されるメッセージを,引数timeoutで指定した値まで待ち続けます。受信した時点でCUPに制御を戻し,リターン値,通知メッセージ,通知メッセージ長,通知元サーバのホスト名,通知元サーバのノード識別子を返します。この関数を発行する前にdc_clt_open_notification_s関数を発行しておく必要があります。

(3) UAPで値を設定する引数

(4) 値が返される引数

(5) リターン値

リターン値

数値

(10進数)

意味

DC_OK

0

正常終了しました。

DCCLTER_INVALID_ARGS

-2501

引数に指定した値が誤っています。

DCCLTER_PROTO

-2502

dc_clt_open_notification_s関数が実行されていません。

DCCLTER_NO_BUFS

-2504

必要なバッファが確保できませんでした。

DCCLTER_NET_DOWN

-2506

ネットワーク障害が発生しました。

DCCLTER_TIMED_OUT

-2507

メッセージの受信時にタイムアウトになりました。

DCCLTER_SYSERR

-2518

システムエラーが発生しました。

DCCLTER_VERSION

-2535

バージョン不一致が発生しました。

DCCLTER_INVALID_NTFID

-2544

ntfidに指定した一方通知受信IDは,dc_clt_open_notification_s関数で受け取った一方通知受信IDと異なっています。

DCCLTER_INF_TOO_BIG

-2546

受信したメッセージが,CUPで用意した領域に収まりません。収まらないメッセージは切り捨てました。引数hostname,およびnodeidには値を設定済みです。

DCCLTER_INVALID_MESSAGE

-2548

不正なメッセージを受信しました。

DCCLTER_ACCEPT_CANCELED

-2549

一方通知受信待ち状態がdc_clt_cancel_notification_s関数によって解除されました。引数inf,inf_len,およびhostnameには値を設定済みです。

(6) 注意事項

引数hostnameには64バイト以上,引数nodeidには8バイト以上の領域を指定してください。領域がこれより小さい場合,TP1/Client内部の処理で領域破壊を起こすおそれがあります。

注※

クライアント環境定義DCCLTOPTIONに00000008を指定した場合,64バイトではなく,256バイトになります。