ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

WEBアプリケーション強制終了方法

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2009-11-25 15:22
nd1  新米   投稿数: 10
Enterprise Server上で実行中のWEBアプリケーションが
何らかの理由(デッドロックや無限ループ)に陥って
処理が終わらなくなった場合に、一定時間で自動的に処理を
中断することは可能でしょうか。

MAGIC.INIのRequesterTimeoutやmgrb.iniのServerTimeoutの
設定を変更しても処理が中断しなかったのですが、
これらの設定は意味が無いのでしょうか。
投票数:0 平均点:0.00
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-11-30 11:30
Jiro123  長老   投稿数: 271
Webアプリケーションでデットロックや無限ループが発生するというのは、具体的にどのような感じなのでしょうか。参考までに教えてください。

仮に、ロックを自動的に解除できたとしても、その処理は正しく行われなかった訳ですから、その為のリカバリ処理を実装する必要があるわけで、それも結構大変だと思います。

単純に、ロックを自動的に解除できれば解決するとは思えないような気がしますが、いかがでしょうか。
投票数:0 平均点:0.00
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009-11-30 15:57
nd1  新米   投稿数: 10
Jiro123さん

レスありがとうございます。
確かに強制的にシステムを止めても根本解決はしません。
デッドロックが発生しないように修正するというのが正論ではありますが対応箇所が広範囲となり、諸事情により現在はそのメンテ工数は取れないのです。
苦肉の策ではありますが長時間処理が走り続けている場合は、INI等の設定だけでシステムを落とすことができないものかと色々試してみましたが単純に時間だけで止めることができませんでした。このような制御はできないものなのかと疑問に思い質問させていただきました。

事象としては画面A.htmから画面B.htmへ遷移する途中でマジックでデータを読み書きしており、処理終了前にブラウザの戻るボタン押下してA.htmへ戻り、再度画面B.htmへ遷移したときにデッドロックが掛かっているようです。数十分以上かかった処理としてIISのログに書かれていました。
これを繰返されるとライセンスを食い尽されてしまいます・・・。


投票数:0 平均点:0.00
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009-12-3 11:26
Jiro123  長老   投稿数: 271
Web アプリケーションを作成していると、ブラウザで履歴をさかのぼる機能に対して何らかの対策を施さなければならない場合があります。

一般的によく使われる方法としては、「サーバ側でページアクセス毎にユニークなトークン(ページを管理する通し番号のようなもの)を発行して、ブラウザの戻るボタンで戻ってフォームを再送信した場合に、トークンと現在の稼動状況をチェックして、2回同じユーザが続けてあるページから画面を遷移したということを判断して、エラーを発生させる」といったものがよく採用されます。

様々なWebアプリケーション用のフレームワークで提供されている機能には、上述の説明ような仕組みをサーバサイド側で作り込んでいると思います。

根本的な対応には、このような仕組みを組み込むことが必要ではないかと思います。

まあ、実際に実装するとなると結構大変だと思いますが、汎用的な仕組みとして作り上げてしまえば、後の組み込みは容易になると思います。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約