質問

ファイルをダウンロードするときにサーバー上でより多くの仮想メモリを占有するサーブレットがあります。このため、このサーバーへの同時リクエストを制限したいと思います。たとえば、10個のリクエストのみを並行して処理したいとします。他のリクエストはキューで待機する必要があります。

カスタムスレッドプールを作成して、最大スレッド数を定義し、このシナリオを処理するためにこのサーブレットに割り当てるように構成できますか? WebLogicサーバー9.2を使用しています。または、これを行うためのその他のより良いアプローチはありますか?考えに感謝します。

個別のサーブレットを構成し、X個の同時要求のみを許可するようにスレッドプールを構成できる場合、他のすべての要求はキューに入れられ、次に利用可能なサーブレットを使用します。このアプローチはタイムアウトエラーをスローしますか?これについての詳細を教えてください。ありがとう

http:// download .oracle.com / docs / cd / E13222%5F01 / wls / docs92 / perform / appb%5Fqueues.html

役に立ちましたか?

解決

  

カスタムスレッドプールを作成し、このシナリオを処理するためにこのサーブレットに割り当てることができますか? WebLogicサーバー9.2を使用しています。または、これを行うためのその他のより良いアプローチはありますか?考えに感謝します。

はい、これは可能です。 デフォルトの自己調整ワークマネージャーを使用する代わりに(Weblogic 9.x以降、実行キューはスレッドプールのワークマネージャーに置き換えられます 1 )、特定の制約 max-threads-constraint などおそらく capacity 。その後、 wl-dispatch-policy


1 引き続き WebLogic 8.1スレッドプールモデルを有効にし、実行キューを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top