サーバー接続の復元

Visual LANSA

サーバー接続の復元


Windowsフレームワークでサーバーへの接続の一時的な切断を処理するように構成できます。例えば、このような切断は、ユーザーのラップトップが無線ベース・ステーションの範囲外に出た場合に発生する可能性があります。

次のときにサーバー接続を確認するようにフレームワークを構成することができます。

·         ユーザーが別のビジネス・オブジェクトやアプリケーションに移る前

·         コマンドを実行する前

·         設計者が指定した間隔で

フレームワークは、サーバー上で簡単なファンクションを実行することにより、接続の状態を確認します。

再接続に失敗した場合、またはファンクションは実行されるもののOK値が返されない場合は、フレームワークは次のいずれかの方法で応答できます。

·         デフォルトの応答では、フレームワークのアクティビティを停止し、ユーザーに通知し、ユーザーがOKをクリックした後で再接続を試みます。

·         アプリケーション設計者は、独自のサーバー接続テスト用ファンクションを記述することもできます。ファンクションが正常に実行された場合でも、接続エラー・コードを返すように記述することができます。これは、フレームワークのユーザー全員に対して、アップグレードが実行中で、ログ・オフが必要なことを通知する場合に役に立ちます(サンプルのファンクションUF_SYSBR/UFU0004を参照してください)。

·         #avFrameworkManager.avCheckConnectionメソッドを使用して、フレームワークのフィルターやコマンド・ハンドラーでプログラムにより接続を確認することもできます。データベース検索の直前にフィルターにコードを記述するか、保存の直前にコマンド・ハンドラーにコードを記述する必要があります。

·         avSessRecoverStarted、avSessRecoveredおよびavSessRecoverFailedなどのフレームワーク・マネージャによって通知されたイベントをリスンすることにより、フィルターやコマンド・ハンドラーは接続の復元が進行中であることを検出することもできます。

 

知っておくべきこと

RDML(X)コードが実行中である場合は、コードが具体的にavCheckConnectionを要求しないかぎり、サーバー接続の確認は発生しません。

[コマンドを実行する前に接続を確認してください]オプションが選択されている場合でも、サーバー・データベースIOを実行する前(例えば、検索や保存を実行する前)に、コマンド・ハンドラーやフィルターにinvoke #avFrameworkManager.avCheckConnectionを格納する必要があります。

接続の復元を使用するには、使用するデータベースのコミット制御の境界がユーザー操作に及ばないようにする必要があります。データベースのコミット制御の境界は、セッションの再接続には及ぶことはありません。

接続の復元を使用している場合は、セッションに基づく値(例:server *JOBNBR)をアプリケーション・セッションで情報に対する「キー」として使用しないでください。このような値は、再接続後に変更される恐れがあるからです。

セッション復元機能は、LANSAスーパーサーバー・セッションのみを処理します。5250 RAMPセッションは復元しません。

フレームワークがフレームワーク・ロッキングでロックされている場合は、接続の確認と復元は実行されません。ただし、次のような場合を除きます。

·         指定された間隔で発生する自動接続チェック

·         特定のフィルターやコマンド・ハンドラーでのavCheckConnectionの使用