第4章 MeFt/Webアプリケーションの構築
4.7 通信が切断されるパターンについて
MeFt/Webアプリケーションの運用中に、サーバとクライアントとの間の通信が切断されるパターンとして、次の2つがあります。
・ WWWブラウザで[戻る]ボタンが押されたり、WWWブラウザのアドレスバーで別のURLが指定されたとき
・ クライアントマシンの電源が切断されたり、ネットワークが不通になったとき
サーバとクライアントとの間の通信が切断された場合、サーバのアプリケーションはそのことを認識できず、クライアントからの入力を待 ちつづける状態となります。しかし、通信切断によりクライアントから応答を返すことができないため、正常にプログラムを終了することが できなくなります。プログラムを終了するには強制終了するしかありませんが、ファイルやデータベースが正常にクローズされないため、
データに影響が出る可能性があります。
MeFt/Webアプリケーションを構築するにあたっては、このような通信切断時への対応を考慮する必要があります。以下に、とるべき対 応を説明します。
WWWブラウザで[戻る]ボタンが押されたり、WWWブラウザのアドレスバーで別のURLが指定されたとき
WWWブラウザで[戻る]ボタンが押されたり、WWWブラウザのアドレスバーで別のURLが指定されたりすると、他のページに移動しま す。その結果、それまで入出力を行っていたページとサーバとの通信が切断されてしまいます。この状況に対応するには、MeFt/Web コントロールのQuitメソッドを使用します。Quitメソッドを使用すると、WWWブラウザでイベントが発生したことをアプリケーションに通知 することができます。
リモート実行に使用するHTMLで、WWWブラウザのページが遷移したときに発生するWindow_onUnloadイベントの処理としてMeFt/Web コントロールのQuitメソッドを実行するように記述すると、WWWブラウザで[戻る]ボタンが押されるなどしてページが移動した場合、Quit メソッドが実行されてアプリケーションにコードが通知されます。
HTMLでのQuitメソッドの記述例を以下に示します。
<HTML>
:
<OBJECT ID="MeFtWeb1"
:
</OBJECT>
<SCRIPT type="text/javascript">
function Window_onUnload(){
MeFtWeb1.Quit();
} :
</SCRIPT>
</HTML>
COBOLアプリケーションには、表示ファイルのFILE STATUS句に指定された4桁のデータ名の領域に「90N8」で通知されます。それ
を判定することによってページが移動されたことを知ることができるので、ファイルのクローズやデータベースの切断などの後処理を行 うようにします。
MeFt/WebコントロールのQuitメソッドは、“4.4 HTMLの作成”および、“MeFt/Webユーザーズガイド”の“利用者プログラムの中断(Quit)”
を参照してください。
クライアントマシンの電源が切断されたり、ネットワークが不通になったとき
クライアントマシンの電源が切断されたり、ネットワークが不通になったりして、サーバとクライアントとの間の通信が切断された状況に対 応するには、MeFt/Webサーバの通信監視時間の機能を使用します。
MeFt/Webサーバに通信監視時間を設定すると、設定された通信時間を越えてクライアントからレスポンスがなかった場合、MeFt/Web
サーバからアプリケーションにコードを通知します。COBOLアプリケーションには、表示ファイルのFILE STATUS句に指定された4桁
一方、設定される通信監視時間が短すぎると、画面での作業に時間がかかった場合、突然アプリケーションが終了することになってし まいます。
通信監視時間は、業務の内容に応じて適切な値を設定してください。