実行スレッドを分離する件について
[前提条件] Weblogicの機能で、サーブレット単位で実行キュー(ThreadPoolと認識しております)を分ける事が出来ます。 [問題点] 今回の画面系の機能では、業務上、遅い処理と早い処理があります。 遅い処理例: ・巨大ファイルのアップロード/ダウンロード機能 ・数千件データの一括確定処理 現状の設定では遅い処理も早い処理もWeblogic上の同じ実行キューにて処理されてしまう為、遅い処理にて実行スレッドを全て占有されてしまう可能性がございます。 # Thread Poolの占有が問題となっております。 [解決案] 遅い処理用の実効キューと早い処理用の実行キューとに分割する事により、遅い処理によりスレッドを全て占有されてしまっても、早い処理に影響を与えてないようにしてはどうでしょうか。 ■ 構成 FLEXを採用し、RemoteObjectを採用している為、以下の2つのパーツに分かれていると認識しております。 # Flashのダウンロードは省きました。 JSPへとリクエストを発行し、HTMLを取得する。主に画面表示に使用しています。 flashからRemoteObjectを使用してリクエストを発行する。主にFlash上でのイベント処理に使用しています。 1)に関しての考察 JSP毎にweb.xmlにサーブレットの記述を行えば実行キューの分割が可能です。web.xmlだけの変更で対応可能ですが、本リクエストの処理は非常に軽い為、分割する意味は無いと考えています。 2)に関しての考察 「AMFGatewayServlet」を使用している為、RemoteObject単位での実行キューの分割を行う為にはWebアプリケーション単位での分割(warの分割)が必要と考えています。 ■ 分割方法 上記理由より、実行キューの分割をする為にはwar分割するのが良いかと考えます。 # web.xmlだけの変更でどうにかなるのであれば問題ないのですが、何か良い方法をご存知の方がいらっしゃれば、ご連絡下さい。 分割指針としては、機能群単位での分割が良いかと思います。 ■ weblogic側設定方法 0. 参考URL http://jp.bea.com/e-docs/wls/docs70/perform/A