注意: 9.1 組み込み関数の規則 利用オプション
指定されたサーバー上でLANSAアプリケーションを呼び出し(実行し)、実行が完了するまで待機します。ファンクションは*DIRECTである必要があります。
引数
|
戻り値
|
技術上の注記
移植性に関する考慮事項 |
DEFINE_OS_400_SERVERで定義されるサーバー: サーバーに渡される作業リストの合計バイト長は、最大で32,000バイトです。合計バイト長とは、項目のバイト長に現在の項目数を乗算した長さです。1から10までの作業リストをサーバー上のファンクションに渡す場合、サーバーに渡すことができるバイトの合計は320,000になります。つまり、32,000バイトの作業リストが10あることになります。 クライアント・ファンクションが大きすぎるリストを渡した場合、この組み込み関数は致命的なエラー・メッセージを出力します。ただし、サーバー・ファンクションでは事情が異なります。サーバーがパラメータとして受け取る作業リストは、呼び出し元(IBM i ベースのサーバー制御プログラム)によって割り当てられたメモリーの中に存在します。その作業リストにあまりにも多くの項目を追加しようとすると、サーバー制御プログラムは打ち切られ、アプリケーション・エラーが発生します。 作業リストが含まれるCALL_SERVER_FUNCTIONで予期しないエラーが発生した場合は、まず、作業リストの「リストあふれ」が第1の原因として考えられます。 |
エラー処理に関する注意事項
複雑なエラー処理スキームをご使用のアプリケーションに組み込むことは避けるよう、強くお勧めします。アプリケーションのすべてのレベルで、以下のようなごく単純なトラップを使用するようにしてください。
if (#retcode *ne OK)
abort msgtxt('Failed to .............................')
endif
標準的なエラー処理を行う組み込み関数を生成されるアプリケーションに組み入れて、問題に対処するようにしてください。ユーザー定義のエラー処理ロジックが非常に複雑になったために全RDMLコードの40から50%を占有するようなケースもあります(アプリケーションには何のメリットもありません)。このような事態に陥らないようにしてください。