原文はこちら。
https://blogs.oracle.com/WebLogicServer/entry/concurrency_utilities_support_in_weblogic5
Part 1(管理対象エグゼキュータ・サービス:ManagedExecutorService)やPart 3(管理対象スレッド・ファクトリ:ManagedThreadFactory)で述べたように、WebLogic Serverは同時実行タスクやスレッドの個数を制限する設定(最大同時長時間リクエストと最大同時新規スレッド)を以下のスコープに対して提供しています。
WebLogic Server管理コンソールで[同時管理対象オブジェクト・テンプレートのサマリ]の[新規]ボタンをクリックすると、パーティション・スコープの管理対象スレッド・ファクトリ・テンプレートを作成することができます。[新規管理対象スレッド・ファクトリ・テンプレートの作成]ページが開くので、新たな管理対象スレッド・ファクトリ・テンプレートの名前やその他のパラメータを指定することができます。スコープをパーティションに選択してください。この例では、testMTFP1という管理対象スレッド・ファクトリ・テンプレートを partition1パーティションのために作成しています。
Step2)
パーティション・スコープの管理対象スレッド・ファクトリ・テンプレートを作成したら、当該パーティション上の任意のアプリケーションが自身のデフォルト管理対象スレッド・ファクトリ・インスタンスを取得し、利用することができます。
パーティションの最大同時新規スレッドと最大同時長時間リクエストは、WebLogic Server管理コンソールの[(パーティション名)の設定]ページで編集することができます。この例では、partition1パーティションの最大同時新規スレッド、最大同時長時間リクエストをそれぞれ30と80に設定しています。
https://blogs.oracle.com/WebLogicServer/entry/concurrency_utilities_support_in_weblogic5
Overview
WebLogic Server 12.2.1の主要機能の一つがMultitenancyのサポートで、これは単一のWebLogic Serverドメインに複数のパーティションを含めることができるというものです。この記事を読む前に、Part 1からPart 4までの記事をご覧ください。パーティションにデプロイされたアプリケーションは、Part 1からPart 4と同様、4種類の同時管理対象オブジェクト(concurrent managed object)を利用することができますし、また、グローバルの事前定義済み同時管理対象オブジェクト・テンプレート(concurrent managed object template)を使うこともできます。このテンプレートはアプリケーションをパーティションにデプロイした場合に、WebLogic Serverがこのアプリケーションのための同時管理対象オブジェクトをグローバル同時管理対象オブジェクト・テンプレートに基づいて作成します。思い出されるかもしれませんが、サーバ・スコープの最大同時長時間リクエスト(Max Concurrent Long Running Requests)と最大同時新規スレッド(Max Concurrent New Threads)があります。これらの設定はサーバ全体の長時間実行リクエスト、実行スレッドを制限するもので、これにはパーティションも含まれることにご注意ください。Configuration
システム管理者はパーティション・スコープの同時管理対象オブジェクト・テンプレートを定義することができます。Part 1(管理対象エグゼキュータ・サービス:ManagedExecutorService)やPart 3(管理対象スレッド・ファクトリ:ManagedThreadFactory)で述べたように、WebLogic Serverは同時実行タスクやスレッドの個数を制限する設定(最大同時長時間リクエストと最大同時新規スレッド)を以下のスコープに対して提供しています。
- 管理対象エグゼキュータ・サービス(ManagedExecutorService)、管理対象スケジュール済エグゼキュータ・サービス(ManagedScheduledExecutorService)、管理対象スレッド・ファクトリ(ManagedThreadFactory)の各インスタンス
- サーバのグローバル(ドメインレベル)ランタイム
- サーバ
- パーティション・スコープの最大同時長時間リクエスト:50
- パーティション・スコープの最大同時新規スレッド:50
- この管理対象エグゼキュータ・サービスに対して発行されている10個の長時間実行タスクが進行中
- このパーティション・スコープにある管理対象エグゼキュータ・サービスや管理対象スケジュール済エグゼキュータ・サービスに対して発行されている50個の長時間実行タスクが進行中
- このサーバの管理対象エグゼキュータ・サービスや管理対象スケジュール済エグゼキュータ・サービスに対して発行されている100個の長時間実行タスクが進行中
Configure Partition Scope Concurrent Managed Object Templates
WebLogic Serverのシステム管理者はパーティションのために事前定義済みの同時管理対象オブジェクト・テンプレートを構成することができます。アプリケーションをパーティションにデプロイすると、WebLogic Serverは同時管理対象オブジェクト・インスタンスをパーティション・スコープの同時管理対象オブジェクト・テンプレートの設定に基づいて作成します。そしてこの作成された同時管理対象オブジェクト・インスタンスはすべてこのアプリケーションのスコープに入ります。Example-1: Configure a Partition Scope ManagedThreadFactory template using WebLogic Administration Console
Step1)WebLogic Server管理コンソールで[同時管理対象オブジェクト・テンプレートのサマリ]の[新規]ボタンをクリックすると、パーティション・スコープの管理対象スレッド・ファクトリ・テンプレートを作成することができます。[新規管理対象スレッド・ファクトリ・テンプレートの作成]ページが開くので、新たな管理対象スレッド・ファクトリ・テンプレートの名前やその他のパラメータを指定することができます。スコープをパーティションに選択してください。この例では、testMTFP1という管理対象スレッド・ファクトリ・テンプレートを partition1パーティションのために作成しています。
Step2)
パーティション・スコープの管理対象スレッド・ファクトリ・テンプレートを作成したら、当該パーティション上の任意のアプリケーションが自身のデフォルト管理対象スレッド・ファクトリ・インスタンスを取得し、利用することができます。
@WebServlet("/SomeServlet")
public class SomeServlet extends HttpServlet {
@Resource(mappedName="testMTFP1")
ManagedThreadFactory mtf;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Runnable aTask = new Runnable() {
...
};
Thread t = mtf.newThread(aTask);
t.start();
...
}
}
Configure Partition Scope Max Concurrent New Threads & Max Concurrent Long Running Requests
パーティションの最大同時新規スレッドは、サーバの当該パーティションにおけるすべての管理対象スレッド・ファクトリが作成するスレッドの制限です。パーティションの最大同時長時間リクエストは、サーバの当該パーティションで管理対象エグゼキュータ・サービスや管理対象スケジュール済エグゼキュータ・サービスに対して発行された同時長時間タスクの制限です。パーティションの最大同時新規スレッドと最大同時長時間リクエストは、WebLogic Server管理コンソールの[(パーティション名)の設定]ページで編集することができます。この例では、partition1パーティションの最大同時新規スレッド、最大同時長時間リクエストをそれぞれ30と80に設定しています。
Related Articles:
- Concurrency Utilities support in WebLogic Server 12.2.1
https://blogs.oracle.com/WebLogicServer/entry/concurrency_utilities_support_in_weblogic
http://orablogs-jp.blogspot.jp/2015/12/concurrency-utilities-support-in.html - Concurrency Utilities support in WebLogic Server 12.2.1, Part One: ManagedExecutorService
https://blogs.oracle.com/WebLogicServer/entry/concurrency_utilities_support_in_weblogic1
http://orablogs-jp.blogspot.jp/2015/12/concurrency-utilities-support-in_66.html - Concurrency Utilities support in WebLogic Server 12.2.1, Part Two: ManagedScheduledExecutorService
https://blogs.oracle.com/WebLogicServer/entry/concurrency_utilities_support_in_weblogic2
http://orablogs-jp.blogspot.jp/2015/12/concurrency-utilities-support-in_14.html - Concurrency Utilities support in WebLogic Server 12.2.1, Part Three: ManagedThreadFactory
https://blogs.oracle.com/WebLogicServer/entry/concurrency_utilities_support_in_weblogic3
http://orablogs-jp.blogspot.jp/2015/12/concurrency-utilities-support-in_68.html - Concurrency Utilities support in WebLogic Server 12.2.1, Part Four: ContextService
https://blogs.oracle.com/WebLogicServer/entry/concurrency_utilities_support_in_weblogic4
http://orablogs-jp.blogspot.jp/2015/12/concurrency-utilities-support-in_28.html
Oracle® Fusion Middleware Administering Server Environments for Oracle WebLogic Server 12c (12.2.1)
Configuring Concurrent Managed Objects
https://docs.oracle.com/middleware/1221/wls/CNFGD/concurrent-utils.htm#CNFGD359