CBLDCRPC('CLTSEND ')

名称

CUPへの一方通知

形式

PROCEDURE DIVISIONの指定

CALL  'CBLDCRPC'  USING  一意名1  一意名2

DATA DIVISIONの指定

01 一意名1.
  02 データ名A  PIC X(8) VALUE  'CLTSEND '.
  02 データ名B  PIC X(5).
  02 FILLER    PIC X(3).
  02 データ名C  PIC S9(9) COMP  VALUE  ZERO.
  02 データ名D  PIC S9(9) COMP.
  02 データ名E  PIC X(n).
01 一意名2.
  02 データ名F  PIC S9(9) COMP.
  02 データ名G  PIC X(n).

機能

CUPへ一方的にデータを送ります。データ名Dとデータ名Eで示すホストのポート番号に対応するプロセス(CUP)に,データ名Gで示すデータをデータ名Fで示す長さだけ送ります。送信できるデータの長さは,0からDCRPC_MAX_MESSAGE_SIZEで示すバイト長までです。

注※
rpc_max_message_sizeオペランドを使用した場合,DCRPC_MAX_MESSAGE_SIZEの値(1メガバイト)ではなく,rpc_max_message_sizeオペランドに指定した値になります。

CBLDCRPC('CLTSEND ')で送信したデータは,TP1/Client/WまたはTP1/Client/Pのライブラリ関数dc_clt_chained_accept_notification関数またはdc_clt_accept_notification関数で受け取ります。これらの関数については,マニュアル「OpenTP1 クライアント使用の手引 TP1/Client/W,TP1/Client/P編」を参照してください。

UAPで値を設定するデータ領域

●データ名A

CUPへの一方通知を示す要求コードを「VALUE 'CLTSEND '」と設定します。

●データ名C

0を設定します。

●データ名D

送信先プロセスのポート番号を設定します。

●データ名E

送信先のホスト名を設定します。指定できるホスト名は,1から255文字までの文字列です。文字列の後ろには,空白文字を付けてください。

●データ名F

送信するデータの長さを設定します。

●データ名G

送信するデータを設定します。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが,5けたの数字で返されます。

ステータスコード

ステータスコード意味
00000正常に終了しました。
00301引数に設定した値が間違っています。
要求コード(データ名A)が間違っている場合も含みます。
00306ネットワークに障害が起こりました。
00302CBLDCRPC('OPEN ')を呼び出していません。
00304メモリが不足しました。
00308送信するデータの長さが,DCRPC_MAX_MESSAGE_SIZEを超えています。
00314送信先プロセスがありません。
ネットワークに障害が起こりました。
注※
rpc_max_message_sizeオペランドを使用した場合,DCRPC_MAX_MESSAGE_SIZEの値(1メガバイト)ではなく,rpc_max_message_sizeオペランドに指定した値になります。

注意事項

  1. CBLDCRPC('CLTSEND ')は,送信先のプロセスがTP1/Client/WまたはTP1/Client/Pのdc_clt_chained_accept_notification関数またはdc_clt_accept_notification関数を呼び出していることが明らかな場合にだけ,使ってください。送信先プロセスが稼働していない場合は,CBLDCRPC('CLTSEND ')は「00314」でエラーリターンします。
  2. CBLDCRPC('CLTSEND ')の正常リターンは,RPCの通信プロトコル(TCP/IP)レベルでの送信が完了したことを意味します。そのため,CBLDCRPC('CLTSEND ')が正常に終了しても,CUPがdc_clt_chained_accept_notification関数またはdc_clt_accept_notification関数でデータを正常に受信したことを確認できません。
  3. CBLDCRPC('CLTSEND ')でデータを通知できるのは,CUPのdc_clt_chained_accept_notification関数またはdc_clt_accept_notification関数だけです。SPPのプロセスや自プロセスへは,データを送信できません。
  4. AIX版TP1/Server Baseで,80文字~255文字のホスト名を指定する場合,libbetran2.aを使用してUAPを再コンパイルおよび再リンケージしてください。