次の項目では、Oracle WebサービスのMetadata Services(MDS)リポジトリを管理するためのガイダンスを示します。
Oracle Web Services Manager(WSM)は、MDSリポジトリを使用してポリシー、アサーション・テンプレート、およびポリシーの使用状況データを格納します。ポリシー、アサーション・テンプレート、および使用状況データは、開発でサポートされているファイルシステムにファイルとして格納することも、本番環境でサポートされているOracle Fusion Middlewareデータベースに格納することもできます。
このリリースでサポートされているデータベースのリストは、http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html
のOracle Fusion Middlewareでサポートされているシステム構成に関する項を参照してください。
リポジトリ内では、各ポリシーがURIを持ち、それを評価してパスが形成され、そのパスにポリシーを含む特定のXMLドキュメントが置かれます。Oracle WSMはMDSカスタマイズ機能を使用しません。そのためすべてのポリシーは完全なドキュメントとして格納されます。MDSには指定されたドキュメントの複数のバージョンを格納する機能がありますが、Oracle WSMはポリシー強制時に最新バージョンのみにアクセスします。
MDSリポジトリの管理に関する詳細は、次のドキュメントを参照してください。
WebLogic Scripting Toolコマンド・リファレンスのMetadata Services(MDS)のカスタムWLSTコマンドに関する項
Oracle Fusion Middleware管理者ガイドのメタデータ・リポジトリの管理に関する項
ポリシーのMDSリポジトリへのインポートやMDSリポジトリからのエクスポートは、Fusion Middleware ControlとMDS WebLogic Scripting Tool(WLST)コマンドのどちらでも使用できます。この2つのメカニズムが同じ基本機能を実行する一方で、どちらを使用するかを決定する前に、これらの動作の微妙な違いについて理解しておく必要があります。
次の項では、2つのメカニズムの相違点について説明します。
Oracle Enterprise Manager Fusion Middleware Controlには、1つのポリシーを一度に選択的にインポートおよびエクスポートする機能があります。Fusion Middleware Controlを使用してポリシーをインポートまたはエクスポートする場合、操作はOracle WSM Policy Managerアプリケーションのインスタンスによってルーティングされます。ランタイム時にポリシーのリクエストが行われたときには、常に最新のポリシーが提供されることがPolicy Managerによって保証されます。そのため、常に最新のポリシーが強制されます。
Fusion Middleware Controlを使用したポリシーのインポートおよびエクスポートの手順は、次の項で説明されています。
MDSのカスタムWLSTコマンドには、コマンドライン・インタフェースが用意されており、これを使用してMDSリポジトリを直接変更できます。Fusion Middleware Controlとは異なり、MDS WLSTコマンドimportMetadata
およびexportMetadata
を使用してポリシーをインポートまたはエクスポートする場合は、Oracle WSM Policy Managerのインスタンスによってルーティングされません。結果として、Oracle Web Services Managerは変更に気付かず、古いポリシーを強制し続ける可能性があります。必ず最新のポリシーのみが強制されるようにするには、MDSリポジトリが登録されているすべてのサーバーを再起動する必要があります。
これらのコマンドの使用例は、「ポリシーの移行」に記載されています。
importMetadata
およびexportMetadata
コマンドの詳細は、WebLogic Scripting Toolコマンド・リファレンスのMetadata Services(MDS)のカスタムWLSTコマンドに関する項を参照してください。
ポリシーは、アプリケーションの開発およびデプロイのサイクルにおいて様々なステージ間(開発から本番へなど)で移行できます。ポリシーの移行の詳細は、「ポリシーの移行」を参照してください。
MDS WLSTコマンドを使用して移行を行う場合は、必ず目的のポリシーのみが転送されるようにすることが重要です。docs
パラメータを使用して、エクスポート(exportMetadata
コマンドを使用)またはインポート(importMetadata
コマンドを使用)するメタデータ・オブジェクトのセットを指定します。値に/**
を指定すると(デフォルト)、ポリシー、アサーション・テンプレート、ポリシー使用状況データなどのすべてのオブジェクトが転送されます。すべてのポリシーおよびアサーション・テンプレートを転送することが望ましい場合もありますが、ポリシー使用状況データを転送すると、ソースとターゲットの環境が異なる場合には、Fusion Middleware Controlでレポートされる使用状況分析数にエラーが発生します。そのため、ポリシーのエクスポートを実行する際は、より具体的なパスを使用することをお薦めします。
ポリシーの名前が「ポリシーの推奨ネーミング規則」に記載されている推奨ネーミング規則に従って付けられており、そしてすべてのカスタム・ポリシーがその独自のディレクトリに置かれている場合は、そのディレクトリ名を指定することで必要なドキュメントのみをエクスポートするように簡単に制限できます。たとえば、mycompany
ディレクトリにあるポリシーのみをエクスポートするには、次のコマンドを指定します。
exportMetadata(application='wsm-pm',server='myserver', docs='/policies/mycompany/**',toLocation='/exported/owsm_policies')
必要なオブジェクトすべてを1つのコマンドで指定するのが不可能な場合(たとえば、ポリシーが複数のディレクトリに存在する場合や、ポリシーとアサーション・テンプレートの両方をエクスポートする場合)は、exportMetadata
コマンドを複数回指定できます。
注意: Policy Managerでは、すべてのポリシーを/policiesディレクトリに置くことが要求されます。そのため、ポリシーのエクスポート時には任意のディレクトリ名を使用できますが、インポートするポリシーは/policies ディレクトリに置く必要があります。たとえば、/somedir/mypolicies という名前のディレクトリにポリシーをエクスポートし、このポリシーをインポートする場合は、ディレクトリ名をsomedir/policies に変更するか、またはポリシーを/policies ディレクトリにコピーする必要があります。
|
importMetadata
およびexportMetadata
コマンドの詳細は、WebLogic Scripting Toolコマンド・リファレンスのMetadata Services(MDS)のカスタムWLSTコマンドに関する項を参照してください。
JDeveloperでは、カスタム・ポリシーを次のデフォルトのポリシー格納場所に追加できます。
C:\Documents and Settings\user-dir\ApplicationData\JDeveloper\system11.1.1.2.x.x.x\DefaultDomain\oracle\store\gmds
このディレクトリ内で、次のディレクトリ構造のいずれかを使用してOracle WSMポリシー・ファイルを格納する必要があります。
事前定義済Oracle WSMポリシー: owsm/policies/oracle/
policy_file
カスタム・ユーザー・ポリシー: owsm/policies/oracle/
policy_file
JDeveloperで使用するためにポリシー・ファイルをOracle WSM Metadata Services(MDS)リポジトリからエクスポートする場合、このディレクトリ構造は維持されません。エクスポートされたポリシーをJDeveloper環境に追加する場合は、必ず前述の要求されるディレクトリ構造を使用する必要があります。そうしないと、ポリシーはJDeveloper環境で使用できなくなります。
「ポリシーのインポートとエクスポートの異なるメカニズムの理解」で説明されているように、Fusion Middleware ControlまたはWLSTコマンドを使用してポリシーをパッチできます。ポリシーを作成または更新する場合、リポジトリをパッチするときに使用可能なシナリオとして次の2つが考えられます。
新しいポリシーを作成するか、新しいポリシーURIを使用する既存のポリシーを更新します。このシナリオでは、リポジトリのパッチは、新しいファイルがインストールに追加されたかのように機能します。結果として、新しいポリシーを使用する予定のコンポーネントのみが影響を受けます。ロードすると、ポリシーはすべてのアプリケーションで使用できるようになります。一般的には、新しいポリシーURIを使用する方が望ましいモデルといえます。というのは、ポリシーは通常それが行う動作を示すように名前が付けられてるためです。
新しいポリシーを作成するか、既存のポリシーURLを使用する既存のポリシーを更新します。このシナリオでは、リポジトリのパッチは、既存のファイルが新しいバージョンで上書きされたかのように機能します。そのため、既存のポリシーを使用しているすべてのコンポーネントに影響します。ロードすると、すべてのアプリケーションで新しいバージョンのポリシーが使用されます。既存のURIの再使用は、通常はポリシーの動作の変更箇所が少ない場合にのみ行われます。WLSTコマンドを使用してリポジトリをパッチする場合は、サーバーを再起動して必ず最新バージョンのポリシーが強制されるようにする必要があることに注意してください。Fusion Middleware Controlを使用する場合は、再起動する必要はありません。
リポジトリのバックアップとリストアは、使用ケースは異なりますが、機能的には環境間のポリシーの移行と同じです。リポジトリのバックアップを行うには、exportMetadata
コマンドを使用してすべてのリポジトリ・アーティファクトをエクスポートします。リポジトリのリストアを行うには、importMetadata
コマンドを使用してすべてのリポジトリ・アーティファクトをインポートします。
詳細は、「 アプリケーション環境間のポリシーの移行」を参照してください。
これらのコマンドの詳細は、WebLogic Scripting Toolコマンド・リファレンスのMetadata Services(MDS)のカスタムWLSTコマンドに関する項を参照してください。
事前定義済Oracle WSMポリシーとカスタムOracle WSMポリシーの両方とも、Oracle MDSリポジトリに格納されます。これらの事前定義済ポリシーは、その後のリリースで廃止または変更されることがあり、または追加の事前定義済ポリシーが提供されることもあります。新しいバージョンのFusion Middleware softwareをインストールしたときに、WebサービスのカスタムWLSTコマンドを使用して、リポジトリを新しいまたは更新された事前定義済ポリシーによりアップグレードできます。また、カスタム・ポリシーを含むすべてのOracle WSMポリシーをリポジトリから削除して、インストールで提供された事前定義済ポリシーを使用して再投入し、リポジトリをリフレッシュすることもできます。リポジトリをアップグレードするときには、リポジトリ内のすべてのポリシーも再評価されます。
注意: ポリシーを削除する前に、既存のポリシーを安全な場所にバックアップする必要があります。新しいポリシーで問題が発生した場合に、バックアップから既存のポリシーをインポートできます。 |
MDSリポジトリをアップグレードする手順
新しいバージョンのOracle Fusion Middlewareをインストールします。
Oracle Fusion Middlewareの新しいインストールで、アップグレードされたMDSリポジトリが登録されていることを確認します。詳細は、「Metadata Services(MDS)リポジトリの登録」を参照してください。
「WebサービスのカスタムWLSTコマンドへのアクセス」の説明に従って、新しいバージョンのOracle Fusion MiddlewareをインストールしたOracleホームからWLSTを起動します。
次のいずれかを実行します。
Oracle Fusion Middlewareソフトウェアの最新インストールで提供された新しい事前定義済ポリシーを追加するには、次のコマンドを入力します。
upgradeWSMPolicyRepository()
このコマンドを実行するときには、リポジトリに追加されたポリシーを示すメッセージが表示されます。リポジトリ内の既存の事前定義済ポリシーおよびユーザー定義のカスタム・ポリシーは変更されないことに注意してください。出力メッセージには、最新リリースで変更されたか廃止された既存の事前定義済ポリシーのリストも表示されます。ポリシーが廃止されてサポートされなくなった場合は、それに対するすべての参照を削除してから、Oracle Enterprise Managerを使用してそのポリシーを削除することをお薦めします。事前定義済ポリシーが最新リリースで変更された場合は、Oracle Enterprise Managerを使用して更新されたバージョンのポリシーをインポートすることをお薦めします。Enterprise Managerを使用したポリシーの削除とインポートの詳細は、第7章 「Webサービス・ポリシーの管理」を参照してください。
リポジトリに格納された既存の事前定義済ポリシーを削除して、それらを最新の事前定義済ポリシーのセットと置き換えるには、次のコマンドを使用します。
resetWSMPolicyRepository(false)
ユーザー定義のカスタム・ポリシーは変更されません。リポジトリ内で追加、削除、または置き換えられた事前定義済ポリシーをリストする出力メッセージが表示されます。
カスタム・ポリシーを含むすべてのポリシーをリポジトリから削除して、最新の事前定義済ポリシーのセットと置き換えるには、次のコマンドをし使用します。
resetWSMPolicyRepository(true)
注意: ポリシーを削除する前に、ポリシーがポリシー・サブジェクトに添付されていないことを確認することをお薦めします。 |
これらのコマンドのいずれかを実行する場合は、すべての既存ポリシーが再評価されます。
このWLSTコマンドの詳細は、WebLogic Scripting Toolコマンド・リファレンスのポリシー・リポジトリ・アップグレード・コマンドに関する項を参照してください。
環境によっては、元の事前定義済ポリシーおよびアサーション・テンプレートのリストアを含めて、リポジトリ全体を再構築する方が望ましい場合もあります。たとえば、新しいプロジェクトをテスト環境で開始する場合、リポジトリの中身を元の状態にリセットできると便利なことがあります。
ポリシー・リポジトリを再構築するには、次の手順を実行します。
リポジトリが登録されているWebLogic Serverドメインの管理サーバー・インスタンスに接続します。手順については、「WebサービスのカスタムWLSTコマンドへのアクセス」を参照してください。
注意: ポリシーの削除またはリポジトリの再構築の前に、既存のポリシーを安全な場所にバックアップする必要があります。新しいポリシーで問題が発生した場合に、バックアップから既存のポリシーをインポートできます。 |
resetWSMPolicyRepository(true)
コマンドを使用して、リポジトリのOracle WSM部分からすべてのドキュメントを削除し、ソフトウェアとともにインストールされた事前定義済ポリシーおよびアサーション・テンプレートのセットを再投入します。この方法を使用することをお薦めします。
WLSTコマンドresetWSMPolicyRepository
の詳細は、WebLogic Scripting Toolコマンド・リファレンスのポリシー・リポジトリ・アップグレード・コマンドに関する項を参照してください。
または、MDS WLSTコマンドdeleteMetadata
を使用することもできます。たとえば、次のようにします。
deleteMetadata(application='wsm-pm',server='soa_server1',docs='/**')
deleteMetadata
コマンドを実行後、Oracle WSM Policy Managerを実行している管理対象サーバーを再起動します。起動時に、ポリシー・マネージャは空のリポジトリを検出し、元の事前定義済ポリシーおよびアサーション・テンプレートを自動的にインストールします。
注意: ポリシーを削除する前に、ポリシーがポリシー・サブジェクトに添付されていないことを確認することをお薦めします。 |
deleteMetadata
コマンドの詳細は、WebLogic Scripting Toolコマンド・リファレンスのMetadata Services(MDS)のカスタムWLSTコマンドに関する項を参照してください。