[WLS, Java, FMW] WLS Data Source Multitenancy

原文はこちら。
https://blogs.oracle.com/WebLogicServer/entry/wls_data_source_mt

Multitenancyや他の新機能については、以下のエントリをご覧ください。
Announcing Oracle WebLogic Server 12.2.1
https://blogs.oracle.com/WebLogicServer/entry/announcing_oracle_weblogic_server_12
[WLS, FMW] Announcing Oracle WebLogic Server 12.2.1
http://orablogs-jp.blogspot.jp/2015/10/announcing-oracle-weblogic-server-1221.html
WebLogic Server 12.2.1で最大かつ最もイノベーティブな機能がMultitenancyです。アプリケーションサーバのすべてのコンポーネントが統合され、Muititenancy機能の一部として主要なコンセプトとして導入されたのが、ドメインをスライスするという考えです。これはPartitionもしくはDomain Partitionと呼んでいます。Partitionはアプリケーションやリソースを特定のTenantのために定義します。ここでPartitionの構成やランタイムはDomain中の他のPartitionとは分離しています。
Multi-tenancyは、複数ドメインやアプリケーション・デプロイメントを管理する上での管理業務のオーバーヘッドを削減し、こうしたデプロイメントの集積度をあげることで、運用上のコストとプラットフォームへのコスト削減をめざしています。

WLS MT機能のコンセプトは、以下のドキュメントに記載されています。
Oracle® Fusion Middleware Using WebLogic Server Multitenant 12c (12.2.1)
End-to-End Lifecycle Management
http://docs.oracle.com/middleware/1221/wls/WLSMT/concepts.htm#WLSMT725.
MTデータソースの詳細は以下のドキュメントに説明があります。
Oracle® Fusion Middleware Using WebLogic Server Multitenant 12c (12.2.1)
Configuring JDBC
http://docs.oracle.com/middleware/1221/wls/WLSMT/config_jdbc.htm#WLSMT614
この記事では、MT環境でのデータソースの利用について概説し、管理コンソールやFusion Middleware Controlでの操作にしぼってご紹介します。

WLS Multi Tenant機能を使わない場合、データソースはシステムリソースともしくはドメインレベルでデプロイすることになりますが、Multi Tenant機能を使う場合、データソースは以下のスコープで定義することができます。
  • ドメイン
    • データソース(グローバルスコープ)
    • データソース(グローバルスコープ)を有するドメインレベル・リソースグループ
    • データソースを有するドメインレベル・リソースグループ・テンプレート
    • パーティション
      • データソースを有するパーティションレベルリソースグループ
      • リソースグループテンプレートに基づくパーティションレベルリソースグループ
      • パーティションレベルのJDBCシステムリソースのオーバーライド
      • パーティションレベルのリソースデプロイメントプラン
      • パーティションレベルにデプロイされたオブジェクト

下表に様々なデプロイメントタイプとデータソース定義の更新やオーバーライドのための機構をまとめました。
データソースのデプロイメントタイプパラメータのオーバーライドのサポート有無
ドメインレベル・システムリソース(リソースグループで範囲指定している場合あり)オーバーライドは非サポート。
データソースの直接変更が必要。
リソースグループテンプレート・システムリソースデータソースを直接変更するか、もしくはリソースグループテンプレートから派生したリソースグループでオーバーライド。
パーティションレベル・リソースグループ内のシステムリソースオーバーライドは非サポート。
データソースの直接変更が必要。
リソースグループ・テンプレートを基にしたリソースグループの、パーティションレベル・システムリソースJDBCシステムリソースのオーバーライドもしくはリソースデプロイメントプランを使ったオーバーライド
ドメインやパーティションにデプロイされた、アプリケーションスコープ・データソースもしくはアプリケーションパッケージ・データソースアプリケーション・デプロイメントプランによるオーバーライド
ドメインやパーティションにデプロイされた、スタンドアロンデータソースモジュールアプリケーション・デプロイメントプランによるオーバーライド
ドメインやパーティションにデプロイされたデータソース定義(Java EE 6)オーバーライドは非サポート。

ドメインレベルのリソースグループに範囲を限定したデータソースやパーティションでデータソースを作成するのは、ドメインレベルのシステムリソースを作成するのと類似していますが、スコープの指定という手順がもう一つ必要です。
管理コンソールやFusion Middleware Controlで、データソース作成するにあたり、最初の手順で、利用可能なスコープをドロップダウンリストから選択します。
WLSTでは、所有者のMBean(ドメイン、リソースグループ、リソースグループテンプレートのMBean)でcreateJDBCSystemResourceを使ってデータソースを作成する必要があります。
以下のドキュメントにあげられているWLSTのサンプルはパーティション化されたドメインをセットアップする上で非常に役立ちます。
Oracle® Fusion Middleware Using WebLogic Server Multitenant 12c (12.2.1)
Configuring JDBC Data Sources: WLST Example
http://docs.oracle.com/middleware/1221/wls/WLSMT/config_jdbc.htm#WLSMT519
ここでは、仮想ターゲット、パーティション、リソースグループテンプレート、リソースグループの作成、全レベルでのデータソースの作成を説明しています。

この記事の残りでは、GUIにフォーカスすることにします。

管理コンソールでは、データソースのサマリをホームページから選択するところから始まります。この最初の図では、4個のデータソースがあって、WLSTを実行して作成したことがわかります。
1個はグローバルスコープ、残りの3個はパーティション中で様々なスコープを有しています。

“ds-using-template” データソースをクリックし、接続プールプロパティを見てみましょう。テンプレートに基づいたデータソースのオリジナルの値が確認できます。オーバーライドはこのレベルでは見えません。

データソースのサマリで[新規]を選択し、汎用データソースを作成すると、最初のページにスコープのドロップダウンリストが現れることが確認できます。このリストは、現在利用可能なスコープに基づいて変化します。

ホームページに戻り、ドメイン・パーティションを選択しましょう。すると2個のリソースグループを有する1個の”partition1”パーティションがあります。

"partition1"をクリックし、オーバーライドのページへ異動すると、"ds-in-template"のJDBCオーバーライドが確認できます。ここで、URLは”otrade”から”otrade2”へオーバーライドされていることに注意してください。

"ds-in-template"のリンクをクリックすると、変更やオーバーライドが可能です。このページではユーザーが"scott"にオーバーライドされていることを確認できます。

[新規]を選択して、新たなJDBCシステムリソースのオーバーライドを作成できます。データソースのドロップダウンボックスにはオーバーライドを作成可能なリソースが並びます。
管理コンソールは現在、パーティション中のすべてのリソースグループを表示しますが、趣旨はリソースグループテンプレートから派生したリソースグループのみでオーバーライドが許可されるべきで、派生していないリソースグループは直接アップデートすべきです。そのため、これらのグループはオーバーライドするべきではありません(将来取り除かれる可能性があります)。

ホームページに戻り、データソースのページで、データソース>セキュリティ>資格証明マッピングと辿り、[新規]をクリックすると、新規のユーザー、リモートユーザー、リモートパスワードを入力できます。

様々なレベルでデータソースのリストを見ることができます。ドメインレベルから、データソースのページの[監視]タブでは、全スコープで実行中のすべてのデータソースを表示します。

パーティションページで"partition1">リソースグループで"partition1-rg">[サービス]>[JDBC]と辿ると、このスコープの1個のデータソースを確認できます。

パーティションスコープのデプロイメントを非パーティションスコープデプロイメントとして取り扱うには、ホームページで[デプロイメント]を選択し、デプロイしたいearファイルもしくはwarファイルを選択します。[アプリケーションインストールアシスタント]で下図のようにスコープを選択することができます。

earファイルやwarファイルのデプロイが完了すると、関連するスコープがある場合、関連づけられたリンクをクリックすると関連モジュールをコンソールで確認できます。最初はデプロイメントプランはありません。

アプリケーションデプロイメントプランの作成は少々複雑ゆえ、管理コンソールを使って自動的に作成することをお勧めします。デプロイ済みデータソースへ遷移し、設定を変更して変更を保存すると、コンソールが関連するデプロイメントプランを作成するので、デプロイメントプランの名前を指定します。

リソースグループテンプレートを派生したパーティション・データソースの属性のうち、ユーザーやパスワード、URL以外のものをオーバーライドしたい場合、リソースデプロイメントプランを作成する必要があるでしょう。
これを管理コンソールで自動的に作成することはできませんが、アプリケーションデプロイメントプランをいじって、リソースデプロイメントプランのようにするか、XMLエディタを使って最初から作成することができます。
これはリソースデプロイメントプランと同等のものです。リソースデプロイメントプランを利用するには、ホームページ>ドメインパーティションでパーティションのリンクをクリックし、リソースデプロイメントプランのパスにパス名を指定します。

Fusion Middlewarwe Controlは管理コンソールと似ていますが、異なるLook&Feelを有しています。
Fusion Middlewarwe Controlは現在セキュリティページを持っておらず、データソースのセキュリティ設定は管理コンソールで実施する必要があります。
JDBCデータソースをWebLogicドメインのドロップダウンから選択すると、下図のようになります。

[作成]をクリックすると、スコープのドロップダウンを含むページが現れます。
リソースグループ名を選択すると、リソースグループ編集のためのページが現れます。
既存のデータソースを選択すると、データソース編集のためのページが現れます。
パーティション名を選択すると、パーティション属性編集のためのページが現れます。

パーティションシステムリソースのオーバーライドは、パーティション名を選択して、[管理]をクリックして、[リソースのオーバーライド]を選択します。

このページは下図のような感じです。

このページでは、リソースグループテンプレートから派生したすべてのリソースグループを表示しています。[オーバーライドあり]にチェックがない場合、[オーバーライドの編集]をクリックして新たなオーバーライドを作成します。
[オーバーライドあり]にチェックがある場合、下図のように[オーバーライドの編集]をクリックして既存のオーバーライドを更新します。

この記事ではMulti Tenant環境でのデータソースの構成を主に取り上げてきました。これはMulti Tenant環境でのアプリケーションの利用は、アプリケーションソフトウェアに対し透過性が非常に高いことをご紹介したかったからです。
重要なことは、アプリケーションサーバーのオブジェクトやコンテナを構成して、必要とされるパーティションやリソースグループにデプロイできる、ということです。

0 件のコメント:

コメントを投稿