ee_mcp_sendsync - 同期一方送信メッセージの送信
- 〈このページの構成〉
機能
相手システムへ同期一方送信メッセージを送信します。同期一方送信メッセージは,一つのセグメントで構成されます。
TP1/FSPを使用する場合,eemcpfunc定義コマンドの-oオプションのoutputmessageオペランドが設定されているとき,またはTP1/EEのユーザサービス関連定義のservice_attr定義コマンドが設定されているときは,送信データをUAP履歴情報のデータ種別「OJ(出力メッセージ)」として取得します。オペランドの関連性については,TP1/FSPの関連ドキュメントを参照してください。
形式
- ANSI C,C++の形式
#include <eemcp.h> int ee_mcp_sendsync(int action, int commform, char *termnam, char *resv01,char *senddata, int sdataleng,char *resv02, int watchtime,int opcd)
UAPで値を設定する引数
●action
送信する論理メッセージのセグメントを次の形式で指定します。
- EEMCPEMI
-
単一セグメントを示すEEMCPEMIを設定します。
●commform
EENOFLAGSを設定します。
●termnam
出力先の論理端末名を設定します。論理端末名の長さは最大8バイトです。論理端末名の後ろはNULL文字を付けてください。
●resv01
NULL文字を設定します。
●senddata
送信するセグメントの内容を設定した領域を設定します。データ形式については,「5.2 ee_mcp_send - 非同期一方送信メッセージの送信」の「UAPで値を設定する引数」を参照してください。
●sdataleng
送信するセグメントの長さを設定します。設定できる最大値については,「5.2 ee_mcp_send - 非同期一方送信メッセージの送信」の「UAPで値を設定する引数」を参照してください。
●resv02
NULL文字を設定します。
●watchtime
この関数を呼び出してから終了するまでの最大時間(単位:秒)を設定します。ここでの最大時間とは,ソケット空き待ち時間および送信開始から自システムのTCP/IPの送信バッファへの書き込み完了までの時間の合計をいいます。65535を最大値として,値を設定できます。
0を設定した場合,eemcpcn定義コマンドの-bオプションのsndsynctimオペランドで指定した,同期一方送信時のメッセージ送信完了待ち時間が仮定されます。負の値を設定した場合は,時間を監視しません。無限に送信完了を待ちます。UDPプロトコルを使用した通信時は無視されます。
●opcd
同期型メッセージの送信属性を指定します。
- EENOFLAGS
-
UDP送信時の送信先をsenddataの制御ヘッダで指定する場合に設定します。
- EEMCP_DEFADDR
-
UDP送信時の送信先をeemcple定義コマンドの-oオプションで指定する場合に設定します。
なお,この値を指定した場合は,制御ヘッダの内容に関係なく,MCP構成定義で指定した送信先が有効になります。
リターン値
リターン値 |
意味 |
---|---|
EE_OK |
正常に終了しました。 |
EECOMER_CNDUOC |
UOCから発行しているため,この機能は使用できません。 |
EECOMER_ENVIRON |
TP1/EEの環境下にありません。 |
EEMCPER_ACTION |
actionに設定した値が間違っています。 |
EEMCPER_ARGUMENT |
senddata,およびwatchtimeに設定した値が間違っています。 |
EEMCPER_COMMFORM |
commformに設定した値が間違っています。 |
EEMCPER_CONDITION |
発行条件が不正です。 |
EEMCPER_LE_NAME |
termnamに設定した論理端末名が間違っています。 |
EEMCPER_MEMORY_SHORT |
メモリ不足が発生しました。 |
EEMCPER_MESSAGE_TOO_BIG |
sdatalengに,送信できる最大サイズを超える値を設定しています。 |
EEMCPER_MESSAGE_TOO_SHORT |
sdatalengに0(UDPの場合は24)以下の値を設定しています。 |
EEMCPER_OPTION |
opcdに設定した値が間違っています。 |
EEMCPER_SENDER |
システムに対する送信時に障害が発生しました。 |
EEMCPER_TERM_HOLD |
termnamに設定した論理端末名は閉塞中です。 |
EEMCPER_TIME |
watchtimeに設定した時間が経過しました。 |
EEMCPER_UOC_ERR |
出力メッセージ編集UOCがエラーリターンしました。 |
EEMCPER_UOC_INVALID |
出力メッセージ編集UOCで障害が発生しました。 |
注意事項
-
ee_mcp_send関数発行後に,この関数を発行した場合,この関数で送信したメッセージが先に送信されます。
-
TP1/FSPを使用する場合,次のリターン値のときは,「OJ(出力メッセージ)」は取得されません。
EECOMER_ENVIRON,EECOMER_CNDUOC,EEMCPER_MESSAGE_TOO_BIG,EEMCPER_LE_NAME,EEMCPER_ACTION,EEMCPER_OPTION,EEMCPER_COMMFORM,EEMCPER_MESSAGE_TOO_SHORT,EEMCPER_ARGUMENT