9.51 DISCONNECT_SERVER

接続されたサーバーから現在のファンクションを切断します。 

すでに切断済みのサーバーに対する切断要求は無視されます。エラーにはなりません。 

引数

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

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%を占有するようなケースもあります (アプリケーションには何のメリットもありません)。このような事態に陥らないようにしてください。 

  • No labels