VLF-WIN フレームワークでサーバーへの接続の一時的な切断を処理するように構成できます。例えば、このような切断は、ユーザーのラップトップが無線ベース・ステーションの範囲外に出た場合に発生する可能性があります。
次のときにサーバー接続を確認するようにフレームワークを構成することができます。
- ユーザーが別のビジネス・オブジェクトやアプリケーションに移る前
- コマンドを実行する前
- デザイナーにより指定された時期
フレームワークは、サーバー上で簡単なファンクションを実行することにより、接続の状態を確認します。
再接続に失敗した場合、またはファンクションは実行されるもののOK値が返されない場合は、フレームワークは次のいずれかの方法で応答できます。
- デフォルトの応答では、フレームワークのアクティビティを停止し、ユーザーに通知し、ユーザーがOKをクリックした後で再接続を試みます。
- アプリケーションデザイナーは、独自のサーバー接続テスト用ファンクションを記述することもできます。ファンクションが正常に実行された場合でも、接続エラー・コードを返すように記述することができます。これは、フレームワークのユーザー全員に対して、アップグレードが実行中で、ログ・オフが必要なことを通知する場合に役に立ちます(サンプルのファンクションUF_SYSBR/UFU0004を参照してください)。
- #avFrameworkManager.avCheckConnection メソッドを使用して、フレームワークのフィルターやコマンド・ハンドラーでプログラムにより接続を確認することもできます。データベース検索の直前にフィルターにコードを記述するか、保存の直前にコマンド・ハンドラーにコードを記述する必要があります。
- avSessRecoverStarted、avSessRecovered および avSessRecoverFailed などのフレームワーク・マネージャによって通知されたイベントをリッスンすることにより、フィルターやコマンド・ハンドラーは接続の復元が進行中であることを検出することもできます。
知っていると便利な知識
RDML(X)コードが実行中である場合は、コードが具体的にavCheckConnectionを要求しないかぎり、サーバー接続の確認は発生しません。
オプション [コマンドを実行する前に接続を確認してください] が選択されている場合でも、サーバー・データベースIOを実行する前 (例えば、検索や保存を実行する前) に、コマンド・ハンドラーやフィルターに invoke #avFrameworkManager.avCheckConnection を格納する必要があります。
接続の復元を使用するには、使用するデータベースのコミット制御の境界がユーザー操作に及ばないようにする必要があります。データベースのコミット制御の境界は、セッションの再接続には及ぶことはありません。
接続の復元を使用している場合は、セッションに基づく値 (例:server *JOBNBR) をアプリケーション・セッションで情報に対する「キー」として使用しないでください。このような値は、再接続後に変更される恐れがあるからです。
セッション復元機能は、LANSAスーパーサーバー・セッションのみを処理します。5250 RAMPセッションは復元しません。
フレームワークがフレームワーク・ロッキングでロックされている場合は、接続の確認と復元は実行されません。ただし、次のような場合を除きます。
- 指定された間隔で発生する自動接続チェック
- 特定のフィルターやコマンド・ハンドラーでのavCheckConnectionの使用