CBLDCRPC('CALL ')
名称
遠隔サービスの要求
形式
PROCEDURE DIVISIONの指定
CALL 'CBLDCRPC' USING 一意名1 一意名2 一意名3
DATA DIVISIONの指定
01 一意名1.
02 データ名A PIC X(8) VALUE 'CALL '.
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(32).
02 データ名F PIC X(n).
01 一意名2.
02 データ名G PIC S9(9) COMP.
02 データ名H PIC X(n).
01 一意名3.
02 データ名I PIC S9(9) COMP.
02 データ名J PIC X(n).
機能
SPPのサービスを要求します。CBLDCRPC('CALL ')を使うときは,要求するサービスがどのノードにあるかを意識する必要はありません。
サービスを要求するときには,「サービスグループ名」と「サービス名」を CBLDCRPC('CALL ')のデータ領域に設定します。この名称に該当するサービスプログラムへサービスが要求されます。
CBLDCRPC('CALL ')を呼び出すUAPは,トランザクションとして実行していてもしていなくてもかまいません。トランザクションとして実行している処理からCBLDCRPC('CALL ')でサービスを要求するときは,要求するサービスの処理はトランザクションブランチとして稼働します。
CBLDCRPC('CALL ')を使う場合,サーバUAPがあるノードのOpenTP1が稼働していることが前提です。
CBLDCRPC('CALL ')を実行して応答を待っている間にシグナルを受信しても,リターンされません。
ステータスコードの一覧のあとに,次の説明を掲載しています。CBLDCRPC('CALL ')の詳しい説明を知りたいときに参照してください。
(1)CBLDCRPC('CALL ')のデータ領域について
(2)CBLDCRPC('CALL ')がエラーになる場合
(3)CBLDCRPC('CALL ')がエラーになるタイミング
(4)CBLDCRPC('CALL ')がエラーになったときに再実行する指定
(5)サービス要求に優先度を付ける場合
(6)ステータスコード「00310」と「00306」の違い
(7)ステータスコード「00378」をリターンさせる指定
(8)ステータスコードと同期点処理の関係
(9)サービスを要求するときの注意
(10)ドメイン修飾をしてサービスを要求する場合
UAPで値を設定するデータ領域
●データ名A
遠隔サービスの要求を示す要求コードを「VALUE 'CALL△△△△'」と設定します。
●データ名C
RPCの形態とオプションを,数値で設定します。
0 … 同期応答型RPC
2 … 非同期応答型RPC
1 … 非応答型RPC
4 … 連鎖RPC
トランザクション処理からのサービス要求で,要求先の処理をトランザクションにしない場合は,RPCの形態を示す数値に「32」を加算します。「32」を加算すると,トランザクションの処理からのサービス要求でも,サービスプログラムの処理はトランザクションになりません。
サービスグループ名にドメイン修飾をする場合は,RPCの形態を示す数値に「256」を加算します。ドメイン修飾をしたRPCはトランザクションブランチにできません。そのため,トランザクションの処理から CBLDCRPC('CALL ')を使う場合は,必ず「256」に「32」を加算してください。
●データ名E
SPPのサービス名を,31バイト以内のアスキー文字列で設定します。文字列の最後には空白を設定してください。この空白は文字列の長さに数えません。
●データ名F
SPPのサービスグループ名を,31バイト以内のアスキー文字列で設定します。文字列の最後には空白を設定してください。この空白は文字列の長さに数えません。
ドメイン修飾をしてサービスを要求するときは,サービスグループ名のあとに @(アットマーク)とDNSのドメイン名を付けて,文字列の最後には空白を設定してください。
●データ名G
サービスの入力パラメタ長(データ名Hの長さ)を設定します。1から DCRPC_MAX_MESSAGE_SIZE※までの範囲の長さが設定できます。DCRPC_MAX_MESSAGE_SIZEは,dcrpc.hで定義してあります。
●データ名H
サービスの入力パラメタを設定します。
●データ名I
サービスの応答の長さ(データ名Jの長さ)を設定します。1から DCRPC_MAX_MESSAGE_SIZE※までの範囲の長さが設定できます。DCRPC_MAX_MESSAGE_SIZEは,dcrpc.hで定義してあります。
サーバUAPから値が返されるデータ領域
●データ名B
ステータスコードが,5けたの数字で返されます。
●データ名D
非同期応答型RPCの場合に,記述子が返されます。
●データ名I
サービスプログラムが設定した,応答の長さ(データ名Jの長さ)が返されます。
●データ名J
サービスプログラムが設定した,応答が返されます。
ステータスコード
ここで示すステータスコードは,OpenTP1が返す値です。サービスプログラムから返される値ではありません。
ステータスコード | 意味 |
---|---|
00000 | 正常に終了しました。非同期応答型RPCの場合は,データ名Dに記述子が設定されました。 |
00301 | データ名に設定した値が間違っています。 要求コード(データ名A)が間違っている場合も含みます。 |
00302 | CBLDCRPC('OPEN ')を呼び出していません。 |
00304 | メモリが不足しました。または,サービス要求先SPPのメッセージ格納バッファプール(message_store_buflenオペランド)が不足したため,サービス要求を受け付けられませんでした。 サービス要求先SPPのユーザサービス定義,またはユーザサービスデフォルト定義のmessage_store_buflenオペランドの指定値を見直してください。 |
00306 | 通信障害が起こりました。 ネットワークに障害が発生していないか確認してください。 |
リモートAPI機能を使用している場合は,CBLDCRPC('CALL ')の応答待ち時間を満了した可能性があります。CBLDCRPC('CALL ')の応答待ち時間の設定(watch_timeオペランド,CBLDCRPC('SETWATCH'))を見直してください。 リモートAPI機能使用時にCBLDCRPC('CALL ')の応答待ち時間を満了した場合のステータスコードを00307に変更するには,ユーザサービス定義にrap_extend_functionオペランドを指定してください。 rap_extend_functionオペランドについてはマニュアル「OpenTP1 システム定義」を参照してください。 | |
00307 | CBLDCRPC('CALL ')の応答待ち時間を満了しました。 CBLDCRPC('CALL ')の応答待ち時間の設定(watch_timeオペランド,CBLDCRPC('SETWATCH'))を見直してください。 |
サービス要求先SPPが,サービスプログラムの実行中に異常終了しました。 サービス要求先SPPが異常終了した要因を調査してください。 | |
00308 | データ名Gに設定した入力パラメタ長が,最大値を超えています。 データ名Gの設定値を見直してください。 |
00309 | サービス要求先SPPのサービスプログラムで設定した応答の長さ(サービスプログラムのデータ名D)が,CBLDCRPC('CALL ')の応答の長さ(サービスプログラムのデータ名I)を超えました。 サービス要求先SPPのサービスプログラムでの応答の長さ(サービスプログラムのデータ名D)の設定を見直してください。 |
00310 | データ名Fに設定したサービスグループ名が不正であるか,データ名Fに設定したサービスグループのサービス要求先SPPが起動されていません。 データ名Fの設定を見直すか,データ名Fに設定したサービスグループのサービス要求先SPPを起動してください。 |
00311 | データ名Eに設定したサービス名が不正であるか,サービス要求先SPPでデータ名Eに設定したサービス名がユーザサービス定義ファイルのserviceオペランドに設定されていません。 データ名Eの設定を見直すか,データ名Eに設定したサービス名をサービス要求先SPPのserviceオペランドに設定してください。 |
00312 | データ名Fで設定したサービスグループのサービス要求先SPPは,サーバ閉塞またはサービス閉塞しています。閉塞要因を調査し,閉塞を解除してください。 |
00313 | サービス要求先SPPは,終了処理中です。 |
00314 | データ名Fに設定したサービスグループ名のサービス要求先SPPは起動していません。または,サービス要求送信処理で通信障害が起きたおそれがあります。 データ名Fに設定したサービスグループ名のサービス要求先SPPを起動してください。すでに起動している場合は,ネットワーク障害が発生していないかを確認してください。 |
サービス要求の応答待ち時間(watch_timeオペランド,CBLDCRPC('SETWATCH'))に0を指定している場合に,サービスプログラムを実行中のサービス要求先SPPが異常終了しました。サービス要求先SPPが異常終了した要因を調査してください。 | |
00315 | サービス要求先SPPのOpenTP1が起動していません。OpenTP1が停止処理中であるか,サービス要求送信処理で通信障害が起きたおそれがあります。 サービス要求先SPPのOpenTP1を起動するか,ネットワーク障害が発生していないかどうかを確認してください。 |
00316 | サービス要求先SPPで,システムエラー(内部矛盾)が起こりました。 |
00317 | サービス要求先SPPで,メモリが不足しました。 |
00318 | サービス要求元UAPで,システムエラー(内部矛盾)が起こりました。 |
00319 | サービス要求先SPPのサービスプログラムで設定する応答の長さ(サービスプログラムのデータ名D)が,1からDCRPC_MAX_MESSAGE_SIZE※で定義されている値の範囲にありません。 サービス要求先SPPのサービスプログラム内の応答の長さ(サービスプログラムのデータ名D)の設定を見直してください。 |
00320 | サービス要求先SPPのOpenTP1は,開始処理中です。 |
00323 | サービス要求元UAP,またはサービス要求先SPPで,メモリが不足しました。このステータスコードが返った場合,トランザクションブランチはロールバックします。 サービス要求元UAP,またはサービス要求先SPPで,不要なメモリを確保していないか見直してください。 |
00324 | サービス要求元UAPで,システムエラー(内部矛盾)が起こりました。このステータスコードが返った場合,トランザクションブランチはロールバックします。 |
00325 | サービス要求先SPPで,システムエラー(内部矛盾)が起こりました。このステータスコードが返った場合,トランザクションブランチはロールバックします。 |
00326 | サービス要求先SPPのサービスプログラムで設定した応答の長さ(サービスプログラムのデータ名D)が,CBLDCRPC('CALL ')の応答の長さ(データ名I)を超えました。このステータスコードが返った場合,トランザクションブランチはロールバックします。 サービス要求先SPPのサービスプログラムで,応答の長さ(サービスプログラムのデータ名D)の設定を見直してください。 |
00327 | ノード間負荷バランス機能,およびノード間負荷バランス拡張機能を使用している場合に,同一サービスグループ名のサービス要求先SPPのトランザクション属性(atomic_updateオペランド)が不一致になっています。または,負荷を分散する先のノードにあるOpenTP1のバージョンが,要求元UAPのOpenTP1のバージョンよりも古いため,ノード間負荷バランス機能,およびノード間負荷バランス拡張機能を実行できません。 このステータスコードが返るのは,ノード間負荷バランス機能およびノード間負荷バランス拡張機能を使用しているSPPにサービスを要求した場合だけです。 ノード間負荷バランス機能,およびノード間負荷バランス拡張機能を使用するSPPのトランザクション属性(atomic_updateオペランド),またはOpenTP1のバージョンを見直してください。 |
dcsvgdef定義コマンドを使用して,非トランザクション属性(ユーザサービス定義のatomic_updateオペランドに'N'を指定,またはシステム共通定義のjnl_fileless_optionオペランドに'Y'を指定)のユーザサーバに対し,CBLDCRPC('CALL ')のデータ名Cに「32」を加算しないでサービスを要求しました。 | |
00328 | データ名Fのドメイン修飾をしたサービスグループ名のドメイン名が間違っています。 ドメイン名を見直してください。 |
00329 | データ名Fにドメイン修飾をしてサービスを要求しましたが,ドメイン代表スケジュールサービスのポート番号が見つかりません。 システム共通定義のdomain_masters_porオペランドの設定,および/etc/servicesのドメイン代表スケジューラサービスのポート番号の設定を見直してください。 |
00356 | サービス要求先SPP(ソケット受信型サーバ)が,サービス要求電文を受け取れません。 サービス要求先SPPのユーザサービス定義,またはユーザサービスデフォルト定義のmax_socket_msgオペランド,max_socket_msglenオペランドの設定を見直してください。 |
00366 | オンラインテスタを使用している環境で,テストモードのUAPからテストモードでないSPPへサービスを要求しています。または,テストモードでないUAPからテストモードのSPPへサービスを要求しています。 UAPのテストモードの設定を見直してください。 |
00367 | トランザクション属性の連鎖RPCを実行したあと,データ名Cをトランザクションにしない設定にした状態でCBLDCRPC('CALL ')によってサービスを要求しています。 |
00370 | サービス要求先SPPは,セキュリティ機能で保護されています。 CBLDCRPC('CALL ')を実行したサービス要求元UAPには,サービス要求先SPPへのアクセス権限がありません。サービス要求先SPPのアクセス権限を見直してください。 |
00372 | サービス要求先SPPのOpenTP1で,同時に起動できるトランザクションブランチの数を超えました。そのため,トランザクションブランチを開始できません。 トランザクションサービス定義のtrn_tran_process_countオペランドの設定を見直してください。 |
サービス要求元UAPが,一つのトランザクションブランチから開始できる子トランザクションブランチの最大数を超えました。そのため,トランザクションブランチを開始できません。 トランザクションサービス定義のtrn_max_subordinate_countオペランドの設定を見直してください。 | |
トランザクション内でドメイン修飾をしたサービス要求で,データ名Cに「32」を加算していません。 | |
サービス要求先SPPで,リソースマネジャ(RM)にエラーが発生しました。そのため,トランザクションブランチを開始できません。 リソースマネジャ(RM)のエラー要因を解決したあと,再度実行してください。 | |
TP1/LiNKの「システム環境設定」ウィンドウの「トランザクション機能」が[あり]に設定されていません。 TP1/LiNKの「システム環境設定」の「トランザクション機能」の設定を見直してください。 | |
00378 | サービス要求先SPPが,サービスプログラムの実行中に異常終了しました。 サービス要求先SPPのサービスプログラム処理を見直してください。このステータスコードが返るのは,ユーザサービス定義のrpc_extend_functionオペランドに"00000001"を指定したサービス要求元UAPの場合だけです。rpc_extend_functionオペランドに"00000000"を指定,またはオペランドを省略した場合は,このステータスコードではなく,「00307」または「00314」が返ります。 |
(1)CBLDCRPC('CALL ')のデータ領域について
CBLDCRPC('CALL ')のデータ領域について説明します。
サーバUAPに渡す値
サービスを要求するときには,サービスプログラムから返ってくる応答の領域(データ名J)を確保しておきます。クライアントUAPでは CBLDCRPC('CALL ')に次の値を設定します。
入力パラメタ,入力パラメタ長,応答の長さは,クライアントUAPの CBLDCRPC('CALL ')で設定した値が,そのままサービスプログラムに渡されます。文字コードや数字の表記形式を変えたい場合は,クライアントUAP,または要求されたサービスプログラムの処理で変換してください。応答を返さないサービスプログラムのサービスを要求するときは,応答の長さを設定しても無視されます。
入力パラメタ長と応答の長さの最大値は,それぞれヘッダファイルdcrpc.hのDCRPC_MAX_MESSAGE_SIZE※で宣言しています。最大値を確認する場合は,dcrpc.hの内容を参照してください。
サーバUAPから戻ってくる値
サービスプログラムの処理が終了して応答が戻ってくると,次の値を参照できます。
データ名Iはサービスプログラムから実際に返ってきた応答の長さです。データ名Jとデータ名Iを参照できる場合を次に示します。
CBLDCRPC('CALL '),またはCBLDCRPC('POLLANYR')がエラーリターンした場合には,データ名Jとデータ名Iは参照できません。
返ってきた応答が,クライアントUAPで確保した応答の領域(データ名I)よりも大きい場合は,ステータスコード「00309」でエラーリターンします。
データ名Cに設定する値
データ名Cに設定した値とCBLDCRPC('CALL ')の実行結果について説明します。
トランザクションの処理で非同期応答型RPCを使う場合,同期点処理(コミット,またはロールバック)前に CBLDCRPC('POLLANYR')で応答を受け取ってください。同期点処理後には,CBLDCRPC('POLLANYR')で応答は受け取れません。
CBLDCRPC('POLLANYR')が受信する応答を特定する場合は,CBLDCRPC('CALL ')がリターンしたときに返された正の整数(記述子)を,CBLDCRPC('POLLANYR')の引数に設定します。受信する応答を特定する場合は,CBLDCRPC('CALL ')のデータ名Dの値を保持しておいてください。
なお,非トランザクションの処理で,同期点処理後に応答を受け取りたい場合は,システムサービス定義のrpc_extend_functionオペランドで該当するオプションを指定する必要があります。rpc_extend_functionについては,マニュアル「OpenTP1 システム定義」を参照してください。
(2)CBLDCRPC('CALL ')がエラーになる場合
CBLDCRPC('CALL ')のエラーリターンする理由について説明します。
サーバUAPがあるノードのOpenTP1が稼働していない場合
サービスを要求されるOpenTP1が稼働していない場合は,CBLDCRPC('CALL ')は次に示すどれかのステータスコードでエラーリターンします。
「00306」
「00314」
「00315」
「00320」
サーバUAPが稼働していない場合
サーバUAPがマルチサーバの場合,異常終了中,または部分回復処理中であっても,サービス要求はOpenTP1で新しく起動されたプロセスで実行されます。ただし,次に示す場合は,CBLDCRPC('CALL ')はエラーリターンします。
ノード間負荷バランス機能およびノード間負荷バランス拡張機能の環境でサービスを要求した場合
ノード間負荷バランス機能およびノード間負荷バランス拡張機能の環境では,該当するサービスのスケジュールが閉塞していると,OpenTP1が自動的にほかのノードにサービス要求を転送します。ただし,次に示す条件の場合 CBLDCRPC('CALL ')は「00327」でエラーリターンします。
これらのエラーリターンが起こった場合は,次に示す処置をしてください。
ソケット受信型サーバへサービスを要求する場合
ソケット受信型サーバでは,ユーザサービス定義のmax_socket_msgオペランドとmax_socket_msglenオペランドの指定で,データの輻輳制御をしています。そのため,定義した値を超えた場合,サービス要求を受信できない場合があります。このとき CBLDCRPC('CALL ')は,「00356」でエラーリターンします。このステータスコードが返った場合,クライアントUAPはしばらく時間をおいてから再実行すれば,サービスを要求できることがあります。
連鎖RPCを使った場合
トランザクションとして処理している連鎖RPCを使っているUAPから,同じサーバUAPへトランザクションでないCBLDCRPC('CALL ')を呼び出すと,「00367」でエラーリターンします。
オンラインテスタを使っている場合
オンラインテスタを使っている場合に,テストモードのUAPとテストモードでないUAPとの間でCBLDCRPC('CALL ')を呼び出すと,「00366」でエラーリターンします。
セキュリティ機能を使っている場合
目的のサービスがセキュリティ機能で保護されていて,CBLDCRPC('CALL ')を呼び出したクライアントUAPにSPPへのアクセス権がない場合は,「00370」でエラーリターンします。
(3)CBLDCRPC('CALL ')がエラーになるタイミング
サービスを要求されたSPPが異常終了した場合,クライアントUAPでエラーが返るタイミングについて説明します。
クライアントUAPの時間監視でエラーになる場合
次に示す場合には,クライアントUAPのユーザサービス定義のwatch_timeオペランドに指定した時間が経過したあとで,「00307」でエラーリターンします。
(4) CBLDCRPC('CALL ')がエラーになったときに再実行する指定
開始処理中,または系切り替え中などでサービス要求先のOpenTP1が起動していない場合でも,CBLDCRPC('CALL ')をエラーとしないで,OpenTP1で要求先検索,およびサービス要求送信を再実行させることができます。
要求先検索,およびサービス要求送信を再実行させる場合は,システム共通定義にrpc_retryオペランドにYを指定してください。要求先検索とサービス要求送信の再実行回数,および再実行間隔は,システム共通定義のrpc_retry_countオペランドとrpc_retry_intervalオペランドで指定します。システム共通定義で指定した再実行回数を超えた場合は,CBLDCRPC('CALL ')は次に示すどれかのステータスコードでエラーリターンします。
「00301」
「00306」
「00310」
「00314」
「00315」
「00320」
(5)サービス要求に優先度を付ける場合
サービス要求のスケジュールプライオリティは,CBLDCRPC('CALL ')を呼び出す直前に,CBLDCRPC('SETSVPRI')を呼び出して設定します。プライオリティを設定しない場合は,スケジュールサービスの省略時の解釈で,サービス要求の優先度が決まります。
(6)ステータスコード「00310」と「00306」の違い
上記のステータスコードは,該当するサービスグループ名のユーザサーバが見つからなかった場合にリターンされます。
(7)ステータスコード「00378」をリターンさせる指定
サービスを要求されたSPPが,処理を完了する前に異常終了したことを「00307」または「00314」以外のステータスコードで判別したい場合には,ユーザサービス定義の rpc_extend_functionオペランドに"00000001"を指定します。この指定をすると,上記のエラー時に「00378」がリターンされるようになります。rpc_extend_functionオペランドに"00000000"を指定,またはオペランドを省略した場合は,「00378」はリターンされないで,「00307」または「00314」がリターンされます。
(8)ステータスコードと同期点処理の関係
CBLDCRPC('CALL ')のステータスコードと同期点処理(コミット,ロールバック)の関係について説明します。ここで説明する内容は,サービス要求がトランザクション処理になる場合に該当します。トランザクションでないサービス要求(データ名CのRPCの形態を示す数値に「32」を加算した場合も含む)には該当しません。
CBLDCRPC('CALL ')がエラーリターンしてもコミットとなる場合
サービスを要求されたサービスプログラムの異常終了や,ノードの障害,ネットワーク障害の場合でも,「00307」がリターンすることがあります。クライアントUAPがトランザクション処理でない場合は,「00307」が返っても,要求したサービスがあるサービスプログラムは正常に終了していて,データベースへの更新などが実行されているときもあります。
ロールバック処理が必要なステータスコード
トランザクション処理から呼び出したCBLDCRPC('CALL ')がエラーリターンした場合,ステータスコードによっては,必ずトランザクションがロールバック(サーバUAPがrollback_only状態)になります。この場合,コミット,またはロールバックのCOBOL-UAP作成用プログラムのどちらを使っても,必ずロールバックになります。必ずロールバックになるCBLDCRPC('CALL ')のステータスコードを次に示します。
「00311」
「00317」
「00319」
「00326」
(9)サービスを要求するときの注意
01 一意名3-1.
02 データ名I1 PIC S9(9) COMP.
02 データ名J1 PIC X(n).
01 一意名3-2.
02 データ名I2 PIC S9(9) COMP.
02 データ名J2 PIC X(n).
01 一意名3-3.
02 データ名I3 PIC S9(9) COMP.
02 データ名J3 PIC X(n).
(10)ドメイン修飾をしてサービスを要求する場合
ドメイン修飾したサービスグループ名を設定すると,DNSのドメイン内にあるOpenTP1のサービスを要求できます。ドメイン修飾をしたサービスグループ名は,サービスグループ名のあとに @ とDNSのドメイン名を続けて設定します。
ドメイン修飾をしてサービスを要求するときの注意
ドメイン修飾をしたサービス要求をする前の準備
ドメイン修飾をしたRPCでは,次に示す環境設定をしてください。
OpenTP1scd ポート番号/tcp
指定例
01 一意名1.
02 データ名A PIC X(8) VALUE 'CALL '.
02 STATUS-CODE PIC X(5) VALUE SPACES.
02 FILLER PIC X(3).
02 FLAGS PIC S9(9) COMP VALUE ZERO.
02 DESCRIPTOR PIC S9(9) COMP VALUE ZERO.
02 SERVICE-NAME PIC X(32) VALUE SPACES.
02 GROUP-NAME PIC X(32) VALUE SPACES.
01 一意名2.
02 NAME-LENG PIC S9(9) COMP.
02 NAME PIC X(32) VALUE SPACES.
01 一意名3.
02 RESULT-LENG PIC S9(9) COMP.
02 RESULT PIC X(20).
*
MOVE 'ADDRESS-BOOK ' TO GROUP-NAME.
MOVE 'ADD' TO SERVICE-NAME.
MOVE 'SATO' TO NAME.
MOVE 4 TO NAME-LENG.
MOVE 20 TO RESULT-LENG.
CALL 'CBLDCRPC' USING 一意名1 一意名2 一意名3.
IF STATUS-CODE NOT = '00000' THEN
DISPLAY 'FAILED'
END-IF.
STOP RUN.
PROGRAM-ID. ADD.
DATA DIVISION.
LINKAGE SECTION.
01 一意名1.
02 ADD-NAME PIC X(20).
01 一意名2.
02 NAME-LENG PIC S9(9) COMP.
01 一意名3.
02 RESULT PIC X(20).
01 一意名4.
02 RESULT-LENG PIC S9(9) COMP.
:
:
PROCEDURE DIVISION USING 一意名1 一意名2 一意名3 一意名4.
:
* 受け取った一意名1の内容を処理する
:
MOVE 'ADD-COMPLETE' TO RESULT.
MOVE 12 TO RESULT-LENG.
EXIT PROGRAM.
注意事項
システム共通定義のall_node句で指定したドメイン以外のOpenTP1システムにトランザクショナルRPCを行う場合,自ドメインおよび他ドメイン内のすべてのOpenTP1システムのノード識別子(システム共通定義のnode_idオペランド)は一意にする必要があります。また,すべてのOpenTP1システムは,バージョン03-02以降にする必要があります。これらの条件を満たしていないと,トランザクションが正しく回復できなくなる場合があります。