CBLEERPC('POLLANYR')
- 〈このページの構成〉
形式
PROCEDURE DIVISIONの指定
CALL 'CBLEERPC' USING 一意名1
DATA DIVISIONの指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'POLLANYR'. 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 S9(9) COMP. 02 データ名F PIC S9(9) COMP.
機能
非同期応答型RPCでサービス要求した結果を受信します。
受信する非同期応答を特定する場合は,データ名Cに1,または17を設定します。この値を設定した場合は,データ名Eに設定した記述子をリターンした,非同期応答型RPCの応答を受信します。
受信する非同期応答を特定しない場合は,データ名Cに0,または16を設定します。このとき,データ名Eに設定した値は無視されます。データ名Cに0,または16を設定したCBLEERPC('POLLANYR')が正常に終了すると,受信した非同期応答の記述子と同じ値がリターンされます。
CBLEERPC('POLLANYR')は,次のどちらかの場合にリターンします。
-
非同期応答型RPCの応答を受信した場合
-
データ名Fに設定した応答待ち時間が終了した場合
CBLEERPC('POLLANYR')が正常に終了すると,非同期応答型RPCを使ったCBLEERPC('CALL ')の応答を格納する領域に,値が設定されます。
UAPで値を設定するデータ領域
●データ名A
処理結果を非同期に受信することを示す要求コードを「VALUE 'POLLANYR'」と設定します。
●データ名C
次のどれかを設定します。
- 0
-
待ち時間を設定します(単位:秒)。CBLEERPC('POLLANYR')で受信する非同期の応答を特定しません。
- 1
-
待ち時間を設定します(単位:秒)。データ名Eに設定された記述子をリターンした,非同期応答型RPCの応答を受信します。
- 16
-
待ち時間を設定します(単位:ミリ秒)。CBLEERPC('POLLANYR')で受信する非同期の応答を特定しません。
- 17
-
待ち時間を設定します(単位:ミリ秒)。データ名Eに設定された記述子をリターンした,非同期応答型RPCの応答を受信します。
●データ名E
非同期応答型RPCのCBLEERPC('CALL ')(データ名Cに2を設定)が正常に終了したときに返された,記述子を設定します。データ名Cに0,または16を設定した場合は,ここに設定した値は無視されます。
●データ名F
CBLEERPC('POLLANYR')を呼び出してから,応答が返ってくるまでの待ち時間を設定します(単位:秒またはミリ秒)。設定できる値は-1からS9(9) COMPで表せる最大の数までです。
CBLEERPC('POLLANYR')で非同期応答を受信する場合は,RPC関連定義のwatch_timeオペランドまたはCBLEERPC('SETWATCH')で設定した応答待ち時間を参照しません。
0を設定した場合は,データ名Cが0,または1を設定したとき応答が返ってこないと「00307」ですぐにエラーリターンします。データ名Cに16,または17を設定したとき,50ミリ秒として処理されます。
-1を設定した場合は,応答が返るまで待ち続けます。
●データ名D
0を設定します。
TP1/EEから値が返されるデータ領域
●データ名B
ステータスコードが,5けたの数字で返されます。
●データ名D
受信した非同期応答の記述子が返されます。この記述子は,データ名Cに0,または16を設定したCBLEERPC('POLLANYR')が正常に終了した場合に返されます。データ名Cに1,または17を設定したCBLEERPC('POLLANYR')が正常に終了した場合は,0が設定されます。
ステータスコード
ここで示すステータスコードは,TP1/EEが返す値です。サービスプログラムが返す値ではありません。
ステータスコード |
意味 |
---|---|
00000 |
正常に終了しました。 |
00001 |
TP1/EEの環境下にありません。 |
00004 |
UOCから発行しているため,この機能は使用できません。 |
00005 |
オフラインバッチプロセスから発行しているため,この機能は使用できません。 |
00301 |
データ名に設定した値が間違っています。 |
00304 |
メモリが不足しました。 |
00306 |
ネットワークに障害が起こりました。 |
00307 |
CBLEERPC('CALL ')の処理が時間切れ(タイムアウト)になりました。 |
サービスを要求されたSPPが,処理を完了する前に異常終了しました。 |
|
CBLEERPC('CALL ')の非トランザクショナルRPC(データ名Cに32以上を設定)の要求先サーバがTP1/EEであり,かつサーバ側のrpc_reply_tp1mode_downオペランドの設定値がJの場合,サーバ側のトランザクションがロールバック以外です。 |
|
00309 |
返ってきた応答が,クライアントUAPで用意した領域に入り切りません。 |
00310 |
CBLEERPC('CALL ')のデータ名Fに設定したサービスグループ名は定義されていません。 |
00311 |
CBLEERPC('CALL ')のデータ名Eに設定したサービス名は,定義されていません。 |
サービスの要求先がTP1/EEであり,かつ要求先の転送機能が無効(rpc_loadbalanceオペランドの設定値がN,かつrpc_transfer_othersvgオペランドの設定値がN)の場合は,サービスグループ名不正のおそれがあります。 |
|
00312 |
CBLEERPC('CALL ')のデータ名Eに設定したサービス名があるサービスグループは,閉塞しています。 |
00313 |
CBLEERPC('CALL ')のデータ名Eに設定したサービスは,終了処理中です。 |
00314 |
CBLEERPC('CALL ')のデータ名Eに設定したサービスのUAPプロセスが,稼働していません。 |
データ名Fに-1を指定した場合に,サービスを要求されたSPPが,処理を完了する前に異常終了しました。 |
|
00315 |
CBLEERPC('CALL ')のデータ名Eに設定したサービスがあるノードのOpenTP1が稼働していません。異常終了,停止中,終了処理中,および通信障害が起こったことが考えられます。 |
00316 |
CBLEERPC('CALL ')に設定したサービスで,システムエラーが起こりました。 |
00317 |
CBLEERPC('CALL ')に設定したサービスで,メモリが不足しました。 |
CBLEERPC('CALL ') で非トランザクショナルRPC(データ名Cに32以上を設定)の要求先サーバがTP1/EEであり,かつサーバ側のrpc_reply_tp1modeオペランドまたはrpc_reply_tp1mode_downオペランド設定値がNの場合,サーバ側のトランザクションがコミットしましたが,応答を返せませんでした。応答を返せなかった原因を次に示します。
|
|
00318 |
システムエラーが起こりました。 |
00319 |
サービス関数がOpenTP1に返した応答の長さが,1〜EERPC_MAX_MESSAGE_SIZE_EXで定義されている値の範囲にありません。 |
00320 |
サービスを要求されたノードにあるOpenTP1は,開始処理中です。 |
00321 |
非同期応答型RPCで要求したサービスの処理結果は,すべて受信しました。 |
00322 |
データ名Eに設定した記述子は存在しません。このステータスコードは,データ名Cに1または17を設定した場合に返されます。 |
00323 |
メモリが不足しました。このステータスコードが返った場合は,トランザクションブランチをコミットできません。 |
00324 |
システムエラーが起こりました。このステータスコードが返った場合は,トランザクションブランチをコミットできません。 |
00325 |
設定したサービスで,システムエラーが起こりました。このステータスコードが返った場合は,トランザクションブランチをコミットできません。 |
00326 |
返ってきた応答が,クライアントUAPで用意した領域に入り切りません。このステータスコードが返った場合は,トランザクションブランチをコミットできません。 |
00327 |
ノード間負荷バランス機能およびノード間負荷バランス拡張機能の環境で,複数のSPPのトランザクション属性が一致していません。または,負荷を分散する先のノードにあるOpenTP1のバージョンが,クライアントのOpenTP1のバージョンよりも低いため,ノード間負荷バランス機能およびノード間負荷バランス拡張機能を実行できません。 このステータスコードは,ノード間負荷バランス機能およびノード間負荷バランス拡張機能を使っているSPPにサービスを要求した場合にだけリターンされます。 |
00338 |
発行条件が不正です。 |
00356 |
サービスを要求されたソケット受信型サーバが,サービス要求を受け取れません。 |
00366 |
オンラインテスタを使っている環境で,テストモードのUAPからテストモードでないSPPへサービスを要求しています。または,テストモードでないUAPからテストモードのSPPへサービスを要求しています。 |
00372 |
一つのトランザクションブランチから開始できる子トランザクションブランチの最大数を超えたため,トランザクションブランチを開始できません。 |
CBLEERPC('CALL ')で非トランザクショナルRPC(データ名Cに32以上を設定)の要求先サーバがTP1/EEであり,かつサーバ側のrpc_reply_tp1modeオペランドまたはrpc_reply_tp1mode_downオペランドの設定値がNの場合,サーバ側のトランザクションがコミットできませんでした。 |
|
CBLEERPC('CALL ')で非トランザクショナルRPC(データ名Cに32以上を設定)の要求先サーバがTP1/EEであり,かつサーバ側のrpc_reply_tp1mode_downオペランドの設定値がJの場合,サーバ側のトランザクションがロールバックしました。 |
注意事項
-
記述子を特定しないCBLEERPC('POLLANYR')がエラーリターンした場合,エラーとなった応答の記述子を特定できません。CBLEERPC('POLLANYR')がエラーリターンしたときに該当する記述子がわかるようにしておきたい場合は,データ名Cに1,または17を設定しておいてください。または,CBLEERPC('GETERDES')を使用することで,エラーリターンした記述子を取得できることもあります。
-
別スレッドで送信した非同期応答型RPC(CBLEERPC('CALL ')(データ名Cに2を設定))は,このCOBOL-UAP作成用プログラムで受信できません。非同期応答型RPCは同一スレッドでCBLEERPC('POLLANYR')を使用して受信する必要があります。
-
非同期応答型RPCでサービスを要求したUAPが次に示すCOBOL-UAP作成用プログラムを呼び出すと,CBLEERPC('POLLANYR')で応答を受け取れません。
-
CBLEERPC('DISCARDF')で,非同期応答の受信を拒否した場合
-
トランザクショナルRPCの場合,同期点処理のCOBOL-UAP作成用プログラムでコミットまたはロールバックした場合
上記のCOBOL-UAP作成用プログラムを使ったあとで返ってきた応答は,破棄されます。非同期応答型RPCでは,上記のCOBOL-UAP作成用プログラムを呼び出す前に,必要な非同期の応答をCBLEERPC('POLLANYR')ですべて受け取ってください。
-