WebLogicの概要を解説!Oracle WebLogic Serverのワークマネージャの活用法は?デプロイ手順も確認
Oracle WebLogic Serverは Java EE に準拠したアプリケーションサーバーです。
この記事ではOracle WebLogic ServerをWebLogicと表記します。
WebLogicはかってアメリカ合衆国に存在したBEAシステムズが1998年に販売を開始。
2008年に Oracleが買収して、Oracle WebLogic Serverと名称が変更になりました。
現在はOracleの製品ラインナップ「Oracle Fusion Middleware」に組み込まれています。
Java EEアプリケーションサーバーでのシェアは常に上位に入るでしょう。
最新のバージョンは 2020年3月現在、12となります。
アプリケーションサーバーとは
WebLogicはアプリケーションサーバーですが、そもそもアプリケーションサーバーとは何でしょうか。
アプリケーションサーバーは、Webシステムの1つです。
Webシステムは、「Webサーバー」、「アプリケーションサーバー」、「データベースサーバー」の3層に分けられています。
アプリケーションサーバーは、Webサーバーからの指示を受けてプログラムを実行する(応答する)存在。
そしてアプリケーションサーバーはシステム運用にも関わってくるものでもあります。
システムの中身は、大きく分けてデータベースとプログラムです。
1台のサーバーにデータベースとプログラムを入れると、処理しきれず機械が破損する原因になってしまう可能性があります。
そのためデータベースを入れるコンピューターと、プログラムを入れるコンピューターを分けてシステムを運用することがあります。
そして、その内プログラムを入れるコンピューターのサーバーを、アプリケーションサーバーと呼びます。
Oracle Corporationで開発されたWeblogic
Java EEアプリケーションサーバー
アプリケーションサーバーについて分かったところで、Weblogicとはどんなサーバーなのかを解説しましょう。
概要からいうと、WeblogicはOracle社で開発されたJava EEアプリケーションサーバーです。
Java EEとは、 Java Platform, Enterprise Editionの略。
プログラミング言語であるJavaに、企業向けの機能が追加された仕様のことです。
付けられている機能は様々あり複雑ですが、簡単にいうなら保守と信頼性に特化した機能が付けられています。
そんなJava EE準拠のアプリケーションサーバーがWeblogicというわけです。
ちなみにJava EE準拠の製品は、Weblogic以外にも同じOracle製のGlass FishやRed HatのJBossなどが挙げられます。
Weblogicの特徴とメリット
Weblogicは15,000社を超える企業で採用されているサーバーです。
中でも特徴的なのが「3階層システム」が実現できることではないでしょうか。
Webサーバー(Webブラウザ)、Weblogic、バックエンドシステム(データベースなど)の3階層で構成できます。
3層にすることで、アプリケーションの使用者を毎回更新したり、バックエンドシステムを買い直したりする必要がなくなるのです。
また、WeblogicはJava EEを常に最新版に自動更新。
メンテナンスも楽になりインフラ開発のコストも削減できます。
非常に優れた機能を持つアプリケーションサーバーなので、多くの企業が採用するのも頷けるでしょう。
ワークマネージャとは
WebLogicのワークマネージャはスレッド制御を行うための機能です。
WebLogicは多数の要求を処理することができます。
しかし要求数が限界に近づけばパフォーマンスは急激に低下。
限界を超えれば正常に処理をすることができなくなります。
バージョン8まではスレッドの使用状況をモニタし、スレッドプールサイズを手動で調整する必要がありました。
バージョン9からはワークマネージャが実装されています。
アプリケーションの実行優先順位を設定しておくことで、スレッド数が自動的にチューニングされるようになりました。
アプリケーションサーバーが高負荷で稼働するのを避けるのを想定しましょう。
そして、ワークマネージャでスレッド数・リクエスト数の上限を設定します。
WebLogic のインストール
WebLogicのインストールが必要な場合、インストーラーのサイトよりダウンロードしましょう。
Oracle WebLogic Server Installers
インストーラーのURLは以下の通りです。
https://www.oracle.com/middleware/technologies/weblogic-server-installers-downloads.html
インストールはJavaコマンドでダウンロードしたjarファイルを起動します。
インストール先はローカルコンピュータで、インストーラーの提示するパスはそのままインストールを完了してください。
「$ java -jar fmw_[バージョン情報]_wls.jar」です。
- インストール・タイプを入力する画面では、「WebLogic Server」を選択する。
- インストール後、ドメインを作成します。
ドメインは WebLogic Server インスタンスの基本的な管理単位。
最低1つは作成しておく必要があります。
管理コンソール
- $ [Oracle ホームディレクトリー]/oracle_common/common/bin/config.sh
- ドメインの管理サーバーを起動する。
- $ [ドメインディレクトリー]/bin/startWebLogic.sh
- 管理コンソールを開く。URL:http://localhost:7001/console/
管理コンソールのサイドバーの Domain Structure には先ほど作成したドメインとそれに関する設定項目が表示されています。
デプロイの手順
- 管理コンソールのDomain Structureのドメインの Deployments をクリックする。
- デプロイメントのサマリーで「Install」ボタンをクリックする。
- 配備するアプリケーションファイル (earもしくはwar) を選択し、「Next」をクリックする。
- 「Install this deployment as an application」のチェックボックスをオンとし、「Next」ボタンをクリックする。
- 「Finish」ボタンをクリックすると、WebLogicにデプロイされる。
ワークマネージャのスコープ
ワークマネージャは要件に応じて設定を2つのスコープ (設定のおよぶ範囲) を選択して行うことができます。
グローバルスコープ
すべてのアプリケーションを対象とした設定で、管理コンソールのワークマネージャから設定します。
管理コンソールの内容は config.xml に保存されます。
アプリケーションスコープ
特定のアプリケーションを対象とした設定で、アプリケーションのデプロイメント記述子に記述します。
設定の単位 設定するファイル
サーブレット | web.xml |
エンタープライズアプリケーション | weblogic-application.xml |
EJBモジュール | weblogic-ejb-jar.xml |
Webアプリケーション | weblogic.xml |
デフォルトのワークマネージャ
デフォルトワークマネジャとは
ワークマネージャに設定を行っていない場合、「デフォルトワークマネージャ」が有効となります。
すべてのアプリケーションに同じ優先順位が割り当てられています。
ワークマネージャの設定方法
勿論、後から設定を変更することも可能です。
デフォルトワークマネージャの設定は「default」という名前のワークマネージャを定義して設定すれば変更することができます。
ワークマネージャのコンポーネント
以下のような要求クラス、制約を使用したワークマネージャを複数定義することができます。
英名 | 名前 | 説明 |
Work Manager | ワークマネジャ | 要求クラス、制約を複数同時に設定 |
Response Time Request Class | 応答時間要求クラス | 応答時間の目標値(ミリ秒単位) |
Fair Share Request Class | フェアシェア要求クラス | 平均スレッド使用時間の相対値 |
Context Request Class | コンテキスト要求クラス | コンテキスト情報 |
Maximum Threads Constraint | 最小スレッド数制約 | スレッドの最小数 |
Minimum Threads Constraint | 最大スレッド数制約 | スレッドの最大数 |
Capacity Constraint | 容量制約 | リクエスト数が限界に達した場合要求拒否 |
ワークマネージャの設定手順
ワークマネージャからグローバルスコープの設定を行います。
ドメインのすべてのアプリケーションを対象とした以下の制限を追加しましょう。
- 最大スレッド数制約
- 最小スレッド数制約
- 容量制約
設定するには、管理コンソールのDomain StructureのドメインのEnvironment – Work Managersをクリックしてください。
最大スレッド数制約の追加
- 「New」ボタンをクリックする。
- Select Work Manager Definition Typeで最大スレッド数制約を選択します。
- Maximum Threads Constraintのチェックボックスをオンにし、「Next」ボタンをクリックする。
- Maximum Threads Constraint Propertiesでワークマネージャの名前とスコープを入力します。
名前は任意の名前を入力してください。
スコープ(Scope)はGlobalを選択しましょう。
- Countは初期値 -1 (無制限) が入力されているので、「5」を入力し「Next」ボタンをクリックする。
- Select deployment targets で Servers で対象とするサーバーのチェックボックスをオンにする。
- 「Finish」ボタンをクリック。
最小スレッド数制約の追加
- 「New」ボタンをクリックする。
- Select Work Manager Definition Type で最小スレッド数制約を選択します。
- Minimum Threads Constraint のチェックボックスをオンにし、「Next」ボタンをクリックする。
- Minimum Threads Constraint Properties でワークマネージャの名前とスコープを入力します。
名前は任意の名前を入力し、スコープ(Scope)はGlobalを選択しましょう。
- Count は初期値0が入力されているので、「2」を入力し、「Next」ボタンをクリックする。
- Select deployment targetsでServersで対象とするサーバーのチェックボックスをオンにする。
- 「Finish」ボタンをクリックする。
容量制約の追加
- 「New」ボタンをクリックする。
- Select Work Manager Definition Typeで容量制約を選択します。
- Capacity Constraintのチェックボックスをオンにする
- 「Next」ボタンをクリックする。
- Maximum Threads Constraint Propertiesでワークマネージャの名前とスコープを入力します。
名前は任意の名前を入力し、Scope(スコープ)はGlobalを選択しましょう。
- Count は初期値 -1 (無制限) が入力されているので、「5」を入力し、「Next」ボタンをクリックする。
- Select deployment targetsでServersで対象とするサーバーのチェックボックスをオンにする。
- 「Finish」ボタンをクリックする。
設定することでできること
ここまでの設定で、ワークマネージャに3つの設定をすることができました。
- 要求を処理するスレッド数を2個確保する
- スレッド数は5個まで増やすことができる
- リクエスト数は同時に5個まで対応できる
最後に
Oracle WebLogic Serverは長い間幅広く使われてきました。
まさに実績のあるエンタープライズ向けアプリケーションサーバーだといえます。
高機能であるのはもちろんですが、ワークマネージャを使いミッションクリティカルな業務の実行を止めません。
信頼性にも秀でた製品だといえるということです。
toiroフリーランスは、SHIFTグループがプライムとして参画している独自案件をフリーランスエンジニア向けに紹介する唯一のプラットフォームサービスです。
エージェントによるサポートもありますので、ご利用を検討してみてはいかがでしょうか。