Hitachi

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


4.6.5 dc_clt_assem_receive_s − 組み立てメッセージの受信

〈この項の構成〉

(1) 形式

(a) _s付き関数

#include <dcvclt.h>
DCLONG dc_clt_assem_receive_s(DCCLT_ID cltid, char CLTFAR *buff, DCLONG CLTFAR *recvleng, 
DCLONG timeout, DCLONG flags)

(b) _s無し関数

#include <dcvclt.h>
DCLONG dc_clt_assem_receive(char CLTFAR *buff, DCLONG CLTFAR *recvleng,
DCLONG timeout, DCLONG flags)

(2) 機能

メッセージの組み立て機能を使用して,メッセージを受信します。この場合,4バイトのメッセージ情報を受信したあと,メッセージ情報に設定されたメッセージ長分のメッセージを受信し,引数buffに格納します。ただし,メッセージ情報は,引数buffには格納しません。引数recvlengには,受信したメッセージ長を格納します。引数recvlengに格納するメッセージ長には,メッセージ情報の長さは含みません。

また,クライアント環境定義DCCLTDELIVERYCHECKにYを指定した場合は,メッセージの送達確認機能を使用して,メッセージを送受信します。この場合,11バイトのメッセージ情報を受信したあと,メッセージ情報に設定されたメッセージ長分のメッセージを受信し,引数buffに格納します。ただし,メッセージ情報は,引数buffには格納しません。引数recvlengには,受信したメッセージ長を格納します。引数recvlengに格納するメッセージ長には,メッセージ情報の長さは含みません。受信したメッセージ情報に「応答要求」が設定されていた場合は,11バイトのメッセージ情報を送信したあと,CUPに制御を戻します。

この関数を実行する場合,引数flagsにDCCLT_ONEWAY_RCV,またはDCCLT_SNDRCVを指定したdc_rpc_open_s関数を,あらかじめ実行しておく必要があります。

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

(4) 値が返される引数

(5) リターン値

リターン値

数値

(10進数)

意味

DC_OK

0

正常に終了しました。

DCCLTER_INVALID_ARGS

-2501

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

DCCLTER_PROTO

-2502

次のどちらかの要因が考えられます。

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

  • dc_rpc_open_s関数は実行されていますが,引数flagsにDCCLT_ONEWAY_RCV,またはDCCLT_SNDRCVを指定していません。

DCCLTER_NO_BUFS

-2504

メモリ不足が発生しました。

DCCLTER_NET_DOWN

-2506

ネットワーク障害が発生しました。コネクションは解放されます。

DCCLTER_TIMED_OUT

-2507

メッセージの受信時にタイムアウトになりました。コネクションは解放されます。

DCCLTER_SYSERR

-2518

システムエラーが発生しました。ネットワーク障害の場合,コネクションは解放されます。

DCCLTER_RESOURCE

-2538

資源不足が発生しました。

DCCLTER_CONNFREE

-2542

相手システムからコネクションが解放されました。

DCCLTER_INVALID_CLTID

-2544

引数cltidに指定したクライアントIDは,dc_clt_cltin_s関数で受け取ったクライアントIDと異なっています。

DCCLTER_INF_TOO_BIG

-2546

CUPで用意した領域が小さく,相手システムからのメッセージを受信することができません。コネクションは解放されます。

DCCLTER_INVALID_MESSAGE

-2548

不正なメッセージを受信しました。コネクションは解放されます。

(6) 注意事項