ブラウザからサーブレット(ファイル作成し、ファイルをレスポンスする)を呼び出すと、
ファイル作成処理に時間がかかるため、タイムアウトしてしまいます。
↓jsp内のJavascript(urlはサーブレットのpathを記述)
Javascript
1 /* 時間がかかるファイル作成サーブレット呼び出し・ファイルをレスポンス */ 2 parent.frames[0].location = url 3
ApacheのTimeout設定を変えずに、タイムアウトしないよう対応したいですが、
私の知識では実装方式・方法が思いつきません。
教えていただけないでしょうか?
サーブレットで出力に待ち時間がでないように、一定の間隔で文字を出力していけばタイムアウトとはみなされないという記事(参考にしたサイト1)を見つけたのですが、
(サイトではサーブレットではなくCGIと記述)
実装に結び付けられません。
参考にしたサイト2の「サーバによるタイムアウトを回避」パターンのようなことで対応できると思うのですが、
perlのため同等の処理をサーブレット・jspで探しましたが見つけられませんでした。
・参考にしたサイト1
https://language-and-engineering.hatenablog.jp/entry/20110627/p1
しかしApacheの場合、Timeoutディレクティブの意味するところは、
「処理にかかった時間の上限」ではない。
Timeoutパラメータの意味は、「(CGI等の)出力に待ち時間があった場合、何秒まで待つか」である。
だから、かりにTimeoutの設定値が300であった場合、
CGIが299秒おきに1文字ずつ文字を出力すれば、それはタイムアウトとはみなされないのである。
・参考にしたサイト2
http://www.bioinfo.jp/tips.html#timeout
Apache は CGI スクリプトからの出力が一定時間ないとタイムアウトとみなし、 クライアントとの接続を終了し、CGIスクリプトを殺しにかかる。
回答1件
あなたの回答
tips
プレビュー