9.44 DISCONNECT_SERVER
接続されたサーバーから現在のファンクションを切断します。
すでに切断済みのサーバーに対する切断要求は無視されます。エラーにはなりません。
各製品の対応
LANSA/AD |
使用可 |
RDMLXでのみ使用可 |
Visual LANSA for Windows |
使用可 |
|
Visual LANSA for Linux |
使用可 |
|
引数
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
A |
必須 |
定義されているサーバーのSSN |
1 |
10 |
|
|
戻り値
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
A |
必須 |
戻りコード OK - 切断完了 ER - 切断中にエラーが発生した |
2 |
2 |
|
|
技術ノート
· サーバーを使用中(サーバーに接続されたファイルに対するSELECTループの実行中など)に、そのサーバーに対する切断要求を実行すると、アプリケーション・エラーまたは予期しない結果が発生します。
· 「切断」のロジックは、多数のRDMLファンクションに分散させるのではなく、1つのファンクションだけにコーディングすることを強くお勧めします。このようにすることで、将来サーバーに対して加えられる変更からアプリケーションを保護することができます。
· サーバーの切断が実際に必要とされることはありません。X_RUNコマンドは終了するときに接続済みのサーバーをすべて自動で切断するからです。
· データベース・サーバーに対して実行すると、実際のデータベース接続が切断されますが、そのデータベースに対してさらにIOを実行すると、接続が自動的に再確立されます。
エラー処理に関する注意事項
複雑なエラー処理スキームをご使用のアプリケーションに組み込むことは避けるよう、強くお勧めします。アプリケーションのすべてのレベルで、以下のようなごく単純なトラップを使用するようにしてください。
if (#retcode *ne OK)
abort msgtxt('Failed to .............................')
endif
標準的なエラー処理を行う組み込み関数を生成されるアプリケーションに組み入れて、問題に対処するようにしてください。ユーザー定義のエラー処理ロジックが非常に複雑になったために全RDMLコードの40から50%を占有するようなケースもあります(アプリケーションには何のメリットもありません)。このような事態に陥らないようにしてください。