Oracle API Catalogの移入に使用されるツールはハーベスタと呼ばれます。このハーベスタにより、Oracle製品およびデプロイ済サービスからメタデータが読み込まれます。これには、Oracle SOA SuiteおよびOracle Service Busを含みます。
ハーベスタにより自動的にアセットが作成され、収集されたサービスの情報に基づいてアセットのメタデータが移入されます。
ランタイム環境にデプロイ済のファイルが収集されます。ハーベスタは、コマンド行、Ant内およびWebLogic Scripting Tool(WLST)から使用できます。
この章には、次のセクションがあります。
この項では、ハーベスタの使用を開始する方法、および様々な高レベルのユースケースでの使用について説明します。
この項には次のトピックが含まれます:
ハーベスタを使用する前に、次の前提条件を実行する必要があります。
Oracle Service Busから収集する場合、Oracle Service Busのインストール場所と同じFMW_HOMEまたはOracle Service Busインストールにアクセス可能な共有ファイル・システムに、ハーベスタをインストールします。詳細は、5.2.2.2項「コマンド行での収集用にアーティファクトを選択する」を参照してください。
|
注意: Oracle Service Busからプロジェクトを収集する場合は、通常のハーベスタ・ユーティリティharvest.batまたはharvest.shのかわりに、osb-harvest.batまたはosb-harvest.shユーティリティを使用する必要があります。これには、Oracle Service Bus 12cライブラリがインストールされている必要があります。OSBハーベスタの詳細は、第5章「Oracle Service BusからのWebサービスの収集」を参照してください。 |
Oracle SOA SuiteやOracle Service Busなどのデプロイ済アプリケーションからアセットを収集する場合、アプリケーションをWebLogic 11g以上にデプロイする必要があります。
ハーベスタには、Java SDKのバージョン6以上が必要です。
ハーベスタを使用し、表5-1に示すアーティファクトおよび製品から公開されているサービスを公開できます。
表5-1に、ハーベスタでサポートされているアーティファクト/製品のバージョン・マトリックスを示します。
表5-1 アーティファクト/製品とバージョンのマトリックス
| アーティファクト/製品 | バージョン |
|---|---|
|
デプロイ済WSDL |
1.1 |
|
デプロイ済WADL |
1.1.5 |
|
Oracle SOA Suite |
11gおよび12c (12.1.3および12.2.1) |
|
Oracle Service Bus |
11gおよび12c (12.1.3および12.2.1) |
|
WebLogic Webサービス |
11gおよび12c (12.1.3および12.2.1) |
|
注意: ハーベスタは、12.2.1リリースで導入されたOracle SOA SuiteおよびService Busのエンド・ツー・エンドJSONまたはネイティブRESTサービスの収集をサポートしません。これらの製品の12.2.1リリースの他のアーティファクトの収集はサポートされています。 |
この項では、ハーベスタを構成する方法について説明します。
この項には次のトピックが含まれます:
Oracle API Catalogのインストール時に、ハーベスタは自動的に次のディレクトリに解凍されます。
<FMW_HOME>/oer/tools/harvester
<FMW_HOME>/oer/tools/osbharvester
ハーベスタは、Oracle API Catalog 12cインストールにバンドルされている12.1.3.0.0-OER-Harvester.zipを使用することもでき、次の場所にあります。
<FMW_HOME>/oer/modules/tools/solutions/12.1.3.0.0-OER-Harvester.zip
OSBハーベスタは、Oracle API Catalog 12cインストールにバンドルされている12.1.3.0.0-OSB12c-Harvester.zipを使用することもでき、次の場所にあります。
<FMW_HOME>/oer/modules/tools/solutions/12.1.3.0.0-OSB12c-Harvester.zip
このマニュアルでは、どちらのハーベスタを使用しているかに応じて、<FMW_HOME>/oer/tools/harvesterまたは<FMW_HOME>/oer/tools/osbharvesterのいずれかを<Harvester Home>ディレクトリとして参照します。
表5-2に、製品とそれに対応するバージョンの関係のマトリックスを示します。
表5-2 ハーベスタの製品とバージョンのマトリックス
| 製品とバージョン | 収集 | IDEの検索、参照および使用 |
|---|---|---|
|
Service Bus 11gおよび12c (12.1.3および12.2.1) |
OER 12c |
はい |
|
SOA Suite 11gおよび12c (12.1.3および12.2.1) |
OER 12c |
はい |
|
WSDL |
OER 12c |
状況により異なる |
|
WADL |
OER 12c |
状況により異なる |
|
注意: ハーベスタは、12.2.1リリースで導入されたOracle SOA SuiteおよびService Busのエンド・ツー・エンドJSONまたはネイティブRESTサービスの収集をサポートしません。これらの製品の12.2.1リリースの他のアーティファクトの収集はサポートされています。 |
コマンド行からハーベスタを構成できます。組織は、コマンド行からハーベスタを使用して、簡単にAPI Catalogのインストールを開始できます。
この項では、コマンド行でハーベスタを構成するために実行する必要のあるタスクについて説明します。
<Harvester Home>にあるXMLファイルHarvesterSettings.xmlを開き、次のように、正しい資格証明を使用し、ハーベスタがOracle API Catalogのインスタンスを指すようにXMLを変更します。
<repository>
<uri>http://localhost:7101/oer</uri>
<credentials>
<user>smith</user>
<password>*****</password>
//To ensure security, the password must be encrypted.
//The password encryption tool (encrypt.bat/encrypt.sh) allows you to encrypt
// the passwords that are stored in the Harvester configuration
// (HarvesterSettings.xml) file.
</credentials>
<timeout>30000</timeout>
</repository>
|
注意: 管理者のロールを持つユーザーでハーベスタを実行することをお薦めします。 |
ハーベスタは、harvest.batまたはharvest.shユーティリティを使用してコマンド行から実行できます。
|
注意: Oracle Service Busからプロジェクトを収集する場合は、OSBハーベスタを使用する必要があります。OSBハーベスタは、<FMW_HOME>/oer/tools/osbharvesterディレクトリにインストールされていて、osb-harvest.batまたはosb-harvest.shを使用して実行できます。OSBハーベスタは、OSB 12cがインストールされているのと同じFMW_HOMEにインストールする必要があります。
OSBハーベスタ使用方法の詳細は、5.2.5.3項「Oracle Service BusからのWebサービスの収集」を参照してください。 |
harvest.batおよびharvest.shユーティリティは、Oracle API Catalogがインストールされているサーバーから実行できます。別のクライアントからハーベスタを実行する場合は、<FMW_HOME>/oer/modules/tools/solutionsディレクトリから12.1.3.0.0-OER-Harvester.zipファイルを入手し、表5-3に示すような、有効なJAVA_HOME環境変数のセットが設定されている任意のクライアントにzipファイルを解凍します。
osb-harvest.batおよびosb-harvest.shユーティリティは、Oracle API Catalogがインストールされているサーバーから実行できます。別のクライアントからハーベスタを実行するには、次のようにします。
Oracle Service Busをクライアント・マシンの<FMW_HOME>ディレクトリにインストールします。
クライアント・マシンに、表5-3に示すように、JAVA_HOME環境変数が設定されていることを確認します。
Oracle API Catalogがインストールされているマシンの<FMW_HOME>/oer/modules/tools/solutionsディレクトリから12.1.3.0.0-OSB12c-Harvester.zipファイルを入手します。このファイルを、ターゲット・マシンの<FMW_HOME>/oer/toolsディレクトリに解凍します。ファイルを解凍した後のハーベスタのフルパスは、<FMW_HOME>/oer/tools/osbharvesterとなるはずです。OSBハーベスタは、OSB 12cがインストールされているのと同じFMW_HOMEにインストールする必要があります。
harvest.bat、harvest.sh、osb-harvest.batまたはosb-harvest.shを実行する前に、表5-3に示す環境変数が設定されていることを確認します。Windowsでは、コマンド・ウィンドウから変数Xの値を表示するには「set X」と、Xの値を「abc」に設定するには「set X=abc」と入力します。
表5-3 コマンド行スクリプト
| 環境変数 | 説明 |
|---|---|
|
|
|
|
|
オプションで、JAVA_OPTSパラメータを設定し、必要とする付加的なJavaパラメータを追加します。たとえば、HTTPプロキシ・サーバーを使用する必要がある場合は、-Dhttp.proxyHost=www-proxy.yourhost.com -Dhttp.nonProxyHosts= "*.yourhost.com |localhost"のように値を設定します。 関連項目: http://java.sun.com/javase/6/docs/technotes/guides/net/proxies.html |
表5-4に、ハーベスタのコマンド行ユーティリティを使用して指定できるオプションを示します。
| ハーベスタのオプション | 説明 |
|---|---|
|
|
構成設定XMLファイルを指定します。 |
|
|
Oracle API CatalogのURLを指定します。 |
|
|
Oracle API Catalogユーザーのユーザー名を指定します。 |
|
|
そのモデルで作成されるすべてのアセットに適用されるバージョン。 |
|
|
収集するファイルまたはディレクトリを指定します。ファイル名またはファイルのURLを指定できます。 |
|
|
収集するファイルのファイル・タイプを指定します。指定しない場合は、ファイルの拡張子からタイプが導出されます。これは、config/pluginsフォルダ内のファイル・タイプのいずれかに対応している必要があります。デフォルトでは、次のものがサポートされています: .bpel、.mfl、.policy、.wsdl、.xsd、.xquery、.xslt。 |
|
|
ファイルのかわりに、リモート・プロジェクトを収集する実行中のサーバーを指定します。 |
|
|
リモート・サーバーに接続するためのユーザー名を指定します。 |
|
|
リモート・サーバーのタイプを指定します。リモート・サーバーは、次のいずれかが可能です: 注意: SOA Suite 11gサーバーに対して実行する場合は、 |
|
|
ファイルのかわりに、収集するリモート・プロジェクトの名前を指定します。省略した場合、サーバー上のすべてのプロジェクトが収集されます。Oracle SOA Suiteの場合は、たとえば |
|
|
Oracle SOA Suite用のパーティションの名前を指定し、デフォルトでは、SOAの「default」パーティションを使用します。 |
|
|
出力するバージョン情報を指定します。 |
|
|
収集をプレビュー・モードで実行するかどうかを指定します。trueに設定すると、プレビュー・モードでハーベスタを実行します。成功と失敗の詳細な情報が記録され、変更はOracle API Catalogにはコミットされません。 falseに設定するか、値が指定されていない場合は、本番モードでハーベスタを実行します。成功と失敗の詳細な情報が記録され、変更はOracle API Catalogにコミットされます。 |
|
|
|
|
|
ハーベスタのコマンド行ユーティリティのオンライン・ヘルプを表示します。 |
リモート収集の例を次に示します。
harvest.bat -remote_url mysoasuiteserver:8001 -remote_username weblogic -remote_server_type SOASuite -remote_project MyComposite_rev1.0 -soa_partition department1
図5-1に、harvest.bat -helpコマンドで表示されるコマンド行ユーティリティのオプションとオンライン・ヘルプを示します。
コマンド行オプションは、Oracle SOA Suite 11gサーバーからの収集時にのみ必要となります。この場合、-remote_server_type SOASuite11gオプションを含める必要があります。詳細は、5.2.5.1項「Oracle SOA Suiteサーバーから収集する」を参照してください。
オプションが省略された場合、ハーベスタは、harvest.batが置かれている<Harvester Home>ディレクトリのHarvesterSettings.xmlファイルにある情報を使用します。コマンド行でオプションが指定されている場合、そのオプションがHarvesterSettings.xmlでの設定より優先されます。
セキュリティを確保するため、パスワードはコマンド行経由では渡さず、暗号化する必要があります。Oracle API Catalogとリモート・サーバーのパスワードを設定する唯一の方法は、ハーベスタ構成ファイル(HarvesterSettings.xml)に格納することです。パスワード暗号化ツール(encrypt.batまたはencrypt.sh)により、ファイルに格納されているパスワードを暗号化できます。パスワードの暗号化の詳細は、第8章「パスワードの暗号化」を参照してください。
収集するアーティファクトを示すため、<Harvester Home>内のHarvesterSettings.xmlファイルを使用し、次のXMLを変更します。
<query>
<fileQuery>
<rootDir>C:\samples</rootDir>
<files>BPEL</files>
</fileQuery>
</query>
または
<query>
<fileQuery>
<files>http://remote/server/my_generated_wsdl</files>
<fileType>.wsdl</fileType>
</fileQuery>
</query>
Antタスクとしてハーベスタを起動でき、デプロイ時に確実にすべてのデプロイメント情報をOracle API Catalogに格納できます。Oracle API Catalogへの収集とメタデータのインポートに、Oracle API Catalogとともに提供されるAntタスクrepository.submitを使用できます。このタスクは、<FMW_HOME>/oer/tools/harvesterディレクトリにあるharvest-tasks.xmlファイルに定義できます。
この項には次のトピックが含まれます:
表5-5に、harvest-tasks.xmlファイル内のAntタスクrepository.submitに指定できるパラメータを示します。
表5-5 repository.submit Antタスクのパラメータ
| 属性 | 説明 | 必須 |
|---|---|---|
|
|
接続するリポジトリ・インスタンス。 |
はい(プロパティで指定されないかぎり)。 |
|
|
Oracle API Catalogにログインするユーザー名。 |
はい(プロパティで指定されないかぎり)。 |
|
|
Oracle API Catalogにログインするパスワード。 セキュリティを確実にするために、パスワードを暗号化する必要があります。 Oracle API CatalogのWebコンソールには、パスワードを暗号化するため、次のツールがあります。 http://<host>:<port>/<domain>/diag/encryptstrings.jsp |
はい(プロパティで指定されないかぎり)。 |
|
|
Oracle API Catalogへのコールがタイムアウトするまでの秒数。 |
いいえ。デフォルトは300(5分)。 |
|
|
Oracle API Catalogの操作結果にエラーがあると、ビルド・スクリプトの全体が失敗します。 |
いいえ。デフォルトは「true」。 |
|
|
リポジトリの操作結果にエラーがあった場合に設定するAntプロパティの名前。これは、 |
いいえ。 |
|
|
Antの |
いいえ。デフォルトは「true」。 |
|
|
Oracle API Catalogで作成した各アセットとハーベスタの説明を関連付けます。これはハーベスタのプロパティに表示されます。 |
いいえ。 |
|
|
Oracle API Catalogで作成した各アセットの前に付けるネームスペース。 |
いいえ。 |
|
|
Oracle API Catalogで作成した各アセットとハーベスタのバージョンを関連付けます。これはハーベスタのプロパティに表示されます。 |
いいえ。 |
|
|
インストールされたOracle Service Busサーバーの |
はい(Oracle Service Busプロジェクトのjarファイルを収集するとき)。 |
|
|
設定XMLファイルの場所。 |
いいえ。デフォルトはAntタスクにバンドルされている設定XML。 |
|
|
設定XMLファイルの場所。 |
いいえ。デフォルトはAntタスクにバンドルされている設定XML。 |
|
|
このオプションは、ハーベスタをプレビュー・モードに設定します。ハーベスタは、作成または変更されるすべてのアセットを表示しますが、トランザクションはコミットされません。有効にするには、「true」を設定します。 |
いいえ。デフォルトはfalse。 |
fileSetは、収集するファイルのセットの選択に使用されます。1つ以上のfileSetを指定する必要があります。ハーベスタにより、.zip形式(.zip、.jar、.earなど)内のファイルを含め、fileSetで選択されたすべてのファイルが検証されます。例5-1に示すAnt repository.submitタスクでは、ハーベスタにより、fileSetのディレクトリ(/tmp/componentsディレクトリ)以下のすべてのファイルとディレクトリが検証され、Oracle API Catalogにインポートされます。
URIは、イントロスペクションするファイルを識別します。1つ以上のURIを指定できます。これには、リモート・ファイルを指す「http:」URL、ローカル・ファイルを指す「file:」URL、その他のJavaでサポートされるURLなどがあります。単一のファイルまたはzip、jar、earsなどを含むzip形式内のファイルを指すことができます。エクスポートされたOracle Service Busプロジェクトのjarを含むこともできます。Oracle Service Busプロジェクトは、Export|Oracle Service Bus|Configuration Jarコマンドを使用してOracle Service Bus Workshopからエクスポートできます。artifactStore属性は、参照するOracle API Catalogアーティファクト・ストアの名前です。アーティファクト・ストアは、あらかじめOracle API Catalogのアセット・エディタで作成しておく必要があります。指定した場合、URIはアーティファクト・ストアのURLの相対として解決されます。アーティファクト・ストアからの相対URIを指定する場合、そのURIは、必ず.wsdlまたは.zipファイルとして解決されます。ディレクトリを指すURIはサポートされていません。fileType属性は、収集するファイルのファイル・タイプを示します。指定しない場合は、ファイルの拡張子からタイプが導出されます。これは、config/pluginsフォルダ内のファイル・タイプのいずれかに対応している必要があります。デフォルトでは、次のものがサポートされています: .bpel、.mfl、.policy、.wsdl、.xsd、.xquery、.xslt。
例5-1 Ant repository.submitタスクで収集するファイルの指定
<repository.submit repositoryurl="http://server.example.com:8080/oer"
repositoryusername="myuser"
registrypassword="*****"
//To ensure security, the password must be encrypted.
//The password encryption tool (encrypt.bat/encrypt.sh) allows you to encrypt
// the passwords that are stored in the Harvester configuration
// (HarvesterSettings.xml) file.
settingsFile="../MyCustomSettings.xml">
<fileset dir="/tmp/components/">
<include name="**/*"/>
</fileset>
</repository.submit>
RemoteProjectは、ハーベスタがファイルからではなく、リモート・サーバーからプロジェクトを読み込むことを指定します。uri属性は、そこからリモート・プロジェクトを収集する、実行中のサーバーを示します。ユーザー名とパスワードの属性は、リモート・サーバーのログイン情報を示します。
serverType属性は、リモート・サーバーのタイプを示し、Oracle SOA Suite(SOASuiteまたはSOASuite11g)、Oracle Service Bus(OSB)またはWebLogic Server(WLS)のいずれかです。projectName要素は、ファイルのかわりに収集するリモート・プロジェクトの名前を示します。省略した場合、サーバー上のすべてのプロジェクトが収集されます。Oracle SOA Suiteの場合は、たとえばMyComposite_rev1のような、コンポジットとリビジョンを加えた名前にする必要があります。WLSの場合は、WebLogic Administration consoleおよびEnterprise Managerのように、アプリケーション名にする必要があります。
例5-2 ネストされた要素としてのパラメータの指定 - RemoteProject
<repository.submit repositoryurl="http://server.example.com:8080/oac"
repositoryusername="myuser"
registrypassword="*****"
//To ensure security, the password must be encrypted.
//The password encryption tool (encrypt.bat/encrypt.sh) allows you to encrypt
// the passwords that are stored in the Harvester configuration
// (HarvesterSettings.xml) file.
settingsFile="../MyCustomSettings.xml">
<remoteProjects uri="http://mywlsserver:7001" username="admin" password="*****"
serverType="SOASuite" soaPartition="${partiton}">
//To ensure security, the password must be encrypted.
//The password encryption tool (encrypt.bat/encrypt.sh) allows you to encrypt
// the passwords that are stored in the Harvester configuration
// (HarvesterSettings.xml) file.
<projectName>MySOAComposite1_rev1.0</projectName>
<projectName>MySOAComposite3_rev2.0</projectName>
</remoteProjects>
</repository.submit>
収集したものから作成されるすべてのアセットのため、生成中のプロジェクトとしてタグ付けされた複数のプロジェクトを指定できます。このプロジェクトはすでにOERに存在している必要があります。
<repository.submit>要素は次のものを含みます。
<producingProject name="MyProjectName"/>
<producingProject name="MyOtherProjectName"/>
生成中のプロジェクトも、同じ方法でHarvesterSettings.xmlファイル内に設定できます。
ハーベスタのAntタスクをインポートするには、AntのXMLに次のような行を含めます。
<taskdef file=${harvester.dir}/harvest-tasks.xml/>
ここで、harvester.dirは<FMW_HOME>/oer/tools/harvesterディレクトリです。
コマンド行から実行する場合は、ハーベスタ・ライブラリがAntのクラスパスで利用できることを確認します。ハーベスタには、Antのクラスパスを正しく設定するrunantと呼ばれるスクリプトが含まれています。ハーベスタのAntタスクを使用するときは、このスクリプトを使用してAntを起動する必要があります。次に例を示します。
runant -f mybuild.xml
(mybuild.xmlはAntのビルドXML)
runantに渡される引数は、すべてAntに渡されます。harvest.batまたはharvest.shを実行する前に、環境変数が設定されていることを確認します。表5-6に、設定が必要な環境変数のリストを示します。
表5-6 コマンド行スクリプト
| 環境変数 | 説明 |
|---|---|
|
|
|
|
|
|
|
|
Oracle Service Busからプロジェクトを収集する場合は、 |
|
|
オプションで、 関連項目: |
runantスクリプトは、Antの古いランチャであるorg.apache.tools.ant.Mainを使用します。新しいランチャはURIClassLoaderインタフェースを使用し、これはOracle Service BusのカスタムなURIStreamHandlersの使用と衝突します。
古いAntランチャは、ant/libディレクトリのカスタムAntタスクの自動検出をサポートしていません。<taskdef>でカスタム・タスクを定義する場合は、classpath属性を指定する必要があります。
たとえば、次の例は、定義されていない<taskdef>です。
<taskdef id="ant-contrib" resource="net/sf/antcontrib/antcontrib.properties"/>
次の例は、定義されている<taskdef>です。
<taskdef id="ant-contrib" resource="net/sf/antcontrib/antcontrib.properties" classpath="${ant.home}\lib\ant-contrib.jar"/>
WLST(WebLogic Scripting Tool)は、システム管理者がWebLogic Serverインスタンスの管理に使用できる、コマンド行スクリプト・インタフェースです。WLSTは、Oracle Service Bus 11gと12cおよびSOA Suite 11gと12cをサポートします。WLSTの詳細は、『Oracle Fusion Middleware WebLogic Scripting Toolコマンド・リファレンス』を参照してください。WLSTからハーベスタを呼び出し、デプロイ時に確実にすべてのデプロイメント情報をOracle API Catalogに格納できます。次の手順を実行し、WLSTからハーベスタを起動します。
oer.pyファイルをハーベスタのインストール・フォルダから<BEA_HOME>\wlserver\common\wlst\libディレクトリにコピーします。
コマンド・ウィンドウで、次のコマンドを入力します。
WLSTのclasspathの初期化: run <BEA_HOME>\wlserver\server\bin\setWLSEnv.cmd
ハーベスタのclasspathの初期化: cd to the <harvester> folder and run <harvester>\setenv.bat
WLSTの起動: java weblogic.WLST<scriptname>
AntからWLSTを起動するには、次の手順を実行します。
コマンド・プロンプトで、cdコマンドを使用して<harvester>ディレクトリに移動します。
runant.bat -f<antscriptname>と入力すると、AntスクリプトがAntの<java>タスクを使用してJavaクラスのweblogic.WLSTを起動します。
<java>タスクでは、「fork = true」を設定します。
<java>には、環境変数CLASSPATHを含めます(runant.batでCLASSPATHにハーベスタのクラスが含まれるように設定されます)。
<java>タスクには、WLSTスクリプトによって参照されるあらゆるライブラリのクラスパスも含めます。
サンプルのAntスクリプトを次に示します。
<property environment="env"/>
<target name="harvest">
<java classname="weblogic.WLST" fork="true">
<arg line="${domain.import.script}"/>
<arg line="${import.config.file}"/>
<classpath refid="extra.class.path"/> <!--extra jars used by WLST script, e.g.
OSB jars-->
<classpath path="${env.CLASSPATH}"/>
</java>
</target>
oer.harvest()メソッドは1つの引数を受け取り、それはコマンド行パラメータのディクショナリです。これは、ハーベスタのコマンド行から使用できるものと同じパラメータです。
コマンド行からのハーベスタの使用方法の詳細は、5.2.2.2項「コマンド行での収集用にアーティファクトを選択する」を参照してください。
次に、その使用方法の例を示します。
argMap = {}
argMap['-harvester_home'] = '.'
argMap['-bea_home'] = 'c:/bea'
argMap['-remote_url'] = 'http://mywlsserver:7001'
argMap['-remote_username'] = 'admin'
argMap['-remote_password'] = '*****'
//To ensure security, the password must be encrypted.
//The password encryption tool (encrypt.bat/encrypt.sh) allows you to encrypt
// the passwords that are stored in the Harvester configuration
// (HarvesterSettings.xml) file.
argMap['-remote_server_type] = 'SOASuite'
argMap['-remote_project] = 'MySOAComposite_rev1.0'
argMap['-soa_partition'] = 'department1'
oer.harvest(argMap)
-harvester_home引数は、ハーベスタのインストール場所を指している必要があります。-bea_home引数は、Oracle Service Busでの収集に必要です。
アセットが、開発からテスト、ステージングおよび本番環境に移行するとき、Oracle API Catalogが最新のエンドポイントを持つように、Oracle API Catalogにこれらのアセットを収集することもできます。Oracle API Catalogは、Oracle API Catalog内の既存のアセットの既存のエンドポイントを上書きします。WSDLがそのライフサイクルを通じてアセットを移動するように変更されている場合は、更新されたWSDLもOracle API Catalog内の既存のアセットに関連付けられます。
この項では、異なるサーバーのランタイム収集の詳細を説明します。この項には次のトピックが含まれます:
実行中のサーバーにデプロイしたOracle SOA Suiteプロジェクトがイントロスペクトされると、すべてのサービスがOracle API Catalog内のAPIアセットのコンポジットの結果によって公開されます。
Oracle SOA Suiteサーバーから収集するときには、次のWLSセキュリティ・ロールが必要になります。
管理
オペレータ
モニター
-remote_urlパラメータは、soa-infra管理対象サーバーのポートを指している必要があります。Oracle SOA Suiteでのデフォルト値は8001です。
soa-infra管理対象サーバーが起動して実行中である必要があります。収集では、リモート収集の一部としてのMDSデータベースに接続します。MDSデータベースが実行されており、収集が行われているマシンからアクセスできる必要があります。
SSL/HTTPプロトコルがサポートされます。ハーベスタは、t3プロトコルを介してサーバーのMBeanに接続します。
ハーベスタは、自動的に-remote_urlの値をランタイム・サーバーから収集されたアセットのDeployment URIプロパティに保存します。
Oracle SOA Suiteサーバーからの収集の例を次に示します。
harvest.bat -remote_url mysoasuiteserver:8001 -remote_username weblogic -remote_server_type SOASuite -remote_project MyComposite_rev1.0 -soa_partition default
Oracle SOA Suite 11gサーバーからの収集の例を次に示します。
harvest.bat -remote_url mysoasuiteserver:8001 -remote_username weblogic -remote_server_type SOASuite11g -remote_project MyComposite_rev1.0 -soa_partition default
セキュリティを確保するため、パスワードはコマンド行経由では渡さず、暗号化する必要があります。Oracle API Catalogとリモート・サーバーのパスワードを設定する唯一の方法は、ハーベスタ構成ファイル(HarvesterSettings.xml)に格納することです。パスワード暗号化ツール(encrypt.batまたはencrypt.sh)により、ファイルに格納されているパスワードを暗号化できます。パスワードの暗号化の詳細は、第8章「パスワードの暗号化」を参照してください。
Oracle SOA Suiteサーバーは、実行時にコンポジットを分類するためにパーティションも実装しています。これによりハーベスタで、コンポジット名とともに、使用するパーティションを選択できます。HarvesterSettings.xmlファイル内のパラメータ名は、soaPartitionと呼ばれます。サンプルのHarvesterSettings.xmlファイルを次に示します。
<remoteQuery>
<serverType>SOASuite</serverType>
<projectName>MyComposite_rev1.0</projectName>
<uri>http://remotehost:8001/</uri>
<credentials>
<user>weblogic</user>
<password>password</password>
</credentials>
<soaPartition>partition_name</soaPartition>
</remoteQuery>
|
注意: Oracle SOA Suite 11gでは、<servertype>要素をSOASuite11gに設定する必要があります。また、Oracle SOA Suite 11gサーバーから収集するときは、-remote_server_type SOASuite11gコマンド行引数を含める必要があります、 |
|
注意: パーティションは、SOAサーバーのバージョン11g R1 PS2以降でのみ使用します。PS2よりも前のバージョンを使用する場合は、soaPartition要素をコメントにします。デフォルトでは、ハーベスタは、「default」に設定されたpartition_nameオプションを使用して収集します。指定しない場合は、SOAのデプロイメントによる「default」パーティションが即時利用可能です。 |
|
注意: SOA Suiteの異なるパーティションに同じコンポジットをデプロイできます。そのような状況があり、その複数を収集する場合は、1つのAPIアセットのみがOACで作成され、最新の収集で連続的に上書きされます。 |
クラスタでのSOA Suiteコンポジットの収集
OHSサーバーは、ミドルウェア・ホームにWebTierラベルの一部としてデプロイされており、同様に、このミドルウェア・ホーム内で構成されたドメインに関連付けられています。
通常、OHSサーバーのmod_wl_2x.soのHTTPサーバー・モジュールに割り当てられている多数のURIがあり、そのいくつかを次に示します(OHSのmod_wl_ohs.confファイルからの引用で、外部で使用するために汎用的なものに変更しています)。
LoadModule weblogic_module
"/opt/Oracle/Middleware/wlserver_10.3/server/plugin/linux/x86_64/mod_wl_22.so"
<IfModule weblogic_module>
ConnectTimeoutSecs 10
ConnectRetrySecs 2
Debug ALL
WLLogFile /tmp/weblogic.log
DebugConfigInfo ON
WLSocketTimeoutSecs 2
WLIOTimeoutSecs 300
Idempotent ON
FileCaching ON
KeepAliveSecs 20
KeepAliveEnabled ON
DynamicServerList ON
WLProxySSL OFF
</IfModule>
<Location /soa-infra>
SetHandler weblogic-handler
WebLogicCluster slc01ese.example.com:23049,wls02.example.com:15980
</Location>
<Location ~ "/bea_wls_internal/iiop/Client*">
SetHandler weblogic-handler
WebLogicCluster wls01.example.com:23049,wls02.example.com:15980
</Location>
<Location ~ "/bea_wls_internal/HTTPClnt*">
SetHandler weblogic-handler
WebLogicCluster wls01.example.com:23049,wls02.example.com:15980
</Location>
<Location /console>
SetHandler weblogic-handler
WebLogicHost wls01.example.com
WebLogicPort 19617
</Location>
<Location /em>
SetHandler weblogic-handler
WebLogicHost wls01.example.com
WebLogicPort 19617
</Location>
<Location /bea_wls_internal>
SetHandler weblogic-handler
WebLogicHost wls01.example.com
WebLogicPort 19617
</Location>
<Location /jndi>
SetHandler weblogic-handler
WebLogicHost wls01.example.com
WebLogicPort 23049
</Location>
<Location /HTTPClnt>
SetHandler weblogic-handler
WebLogicHost wls01.example.com
WebLogicPort 23049
</Location>
これらの特別なURIパターンにより、JMSおよびJMXのリクエストは、OHSのWebLogicモジュールを介してルーティングできます。
コードに適用した変更以外は、SOAクラスタ化されたインストールに適用されたカスタマイズのみです。
Oracle Service Busのプロジェクトは、コマンド行からOracle API Catalogに発行できます。プロジェクトは、Export|Oracle Service Bus: Configuration jarコマンドを使用して、Oracle Service Bus Workshopからエクスポートする必要があります。
ハーベスタは、プロキシ・サービスとWSDLのアーティファクトを処理します。結果として生じたアセットは、APIアセット・タイプになります。
WebLogicサーバーから収集するときは、WebLogicサーバーのセキュリティ・ロールはなにも必要ありません。
-remote_urlパラメータは、WLS管理サーバーのポートを指している必要があります。Weblogicでのデフォルト値は7001です。WLS管理サーバーが起動して実行中である必要があります。SSL/HTTPプロトコルがサポートされます。ハーベスタは、t3プロトコルを介してサーバーのMBeanに接続します。
ハーベスタは、自動的に-remote_urlの値をランタイム・サーバーから収集されたアセットのDeployment URIプロパティに保存します。
Oracle Service Busから収集するときには、Admin WLSのセキュリティ・ロールが必要になります。
Oracle Service BusからWebサービスを収集する場合は、OSBハーベスタを使用する必要があります。OSBハーベスタは、<FMW_HOME>/oer/tools/osbharvesterディレクトリにインストールされています。
OSBハーベスタは、osb-harvest.batまたはosb-harvest.shユーティリティを使用してコマンド行から実行できます。OSBハーベスタの構成の詳細は、5.2.2項「コマンド行でのハーベスタの構成」を参照してください。
|
注意: osb-harvest.bat/.shユーティリティを使用してService Bus 11gサーバーから収集する場合、Service Bus 12cがインストールされている同じミドルウェア・ホームからService Busハーベスタを実行する必要があります。Service Busサーバーが11gであっても、ハーベスタにはService Bus 12cライブラリが必要です。これを実行するには様々な方法がありますが、最も簡単な方法は、Service Busハーベスタを既存のService Bus 12cサーバーにコピーすることです。
Service Bus 12cが別のクライアントまたは別のミドルウェア・ホームにインストールされている場合、この場所を記述する |
Oracle Service Busドメインでは、-remote_urlパラメータはWLS管理サーバーのポートを指している必要があります。Weblogicでのデフォルト値は7001です。WLS管理サーバーが起動して実行中である必要があります。SSL/HTTPプロトコルがサポートされます。ハーベスタは、t3プロトコルを介してサーバーのMBeanに接続します。
ハーベスタは、自動的に-remote_urlの値をランタイム・サーバーから収集されたアセットのDeployment URIプロパティに保存します。
Oracle Service BusからのWebサービスの収集の例を次に示します。
osb-harvest.bat -remote_url myosbserver:7001 -remote_username weblogic -remote_server_type OSB -remote_project MyOSBProject
セキュリティを確保するため、パスワードはコマンド行経由では渡さず、暗号化する必要があります。Oracle API Catalogとリモート・サーバーのパスワードを設定する唯一の方法は、ハーベスタ構成ファイル(HarvesterSettings.xml)に格納することです。パスワード暗号化ツール(encrypt.batまたはencrypt.sh)により、ファイルに格納されているパスワードを暗号化できます。パスワードの暗号化の詳細は、第8章「パスワードの暗号化」を参照してください。
SOA SuiteおよびService BusからのAPIの収集に加え、デプロイ済WSDLファイルへのURLを使用してデプロイ済サービスを収集することもできます。次の例は、インターネットから天気サービスを収集します。
./harvest.sh -file "http://example.com/WeatherWebService/Weather.asmx?WSDL"
この方法は、Oracle API Gateway(OAG)からセキュア・エンドポイントを収集するために使用できます。OAGからWSDL URLを取得するには、WebサービスのService Handlerの「WSDL」タブにあるゲートウェイにWSDLのクライアントへの公開を許可するチェック・ボックスを選択し、OAG Policy StudioでそのWSDLをクライアントに公開します。
オプションで、<Harvester Home>ディレクトリにあるXMLファイルHarvesterSettings.xml内の、次のような追加の構成設定を変更できます。
<harvesterDescription>: 実行した収集についての説明。この情報は、Oracle API Catalogで作成されたアセットのHarvester Propertiesに格納されます。
<harvesterVersion>: 実行したハーベスタのバージョン。この情報は、Oracle API Catalogで作成されたアセットのHarvester Propertiesに格納されます。
<namespace>: 収集中に作成されたOracle API Catalogアセットの概要(アーティファクトではない)に追加されるネームスペース。ネームスペースは、重複の検出に使用されます。空のままにした場合、使用可能になったときに、Oracle SOA SuiteおよびOracle Service Busプロジェクトからの情報に基づいて設定されます。一般的には、これがベスト・プラクティスなので、注意してオーバーライドします。
<workDir>: zipおよびjarファイルが解凍される一時ディレクトリ。デフォルトでは、システムの一時ディレクトリが使用されます。
ハーベスタは、実行した詳細タスクをlog4jを使用してロギングし、ログ・ファイルは<Harvester Home>ディレクトリに配置されます。ロギングのオプションは、<Harvester Home>ディレクトリにあるlog4fl.propertiesファイルを更新することで変更できます。
デフォルトでは、ハーベスタはOracle API Catalogに対するすべての変更を単一のトランザクションで行います。ハーベスタ機能におけるトランザクション操作は、次の規則に基づいています。
Oracle API Catalogサーバーは、一度に1つのトランザクションをサポートしています。トランザクションが開始できない場合は、そのことがハーベスタによって通知されます。
トランザクションに関連づけられた一連のタイムアウトがあります。タイムアウトを超えた場合、ハーベスタの操作は終了します。
cmee.extframework.impexp.monitor.rex.maxidleの設定は、クライアントとの接続が切断した場合における、トランザクションのキープ・アライブの最大時間を指定します。これにより、クライアント側のハーベスタ・プロセスが停止された場合に、トランザクションの取消しができます。
cmee.extframework.impexp.monitor.maxruntimeの設定は、トランザクション全体にかかる時間の最大を指定します。
1つの操作がcmee.extframework.impexp.monitor.rex.maxidle(maxidle)の設定を超過すると、後続のすべての操作が失敗する可能性があります。その場合、ログの最後のエラーにはトランザクションが開始されていないため、ロールバックしようとしたときにエラーが発生しました。と記録されます。これは、トランザクション文がmaxidleを超過すると、トランザクションが自動的にロールバックされるためです。このため、クライアント・アプリケーションが強制的にロールバックを試行しても、トランザクションを使用できず、エラーが検出されます。その結果、ハーベスタの操作によるデータはOracle API Catalogには追加されません。
この項では、ハーベスタの使用方法に関する追加情報を説明します。
この項には次のトピックが含まれます:
ハーベスタで作成されたアセットを表示するため、プレビュー機能を使用できます。次のいずれかの方法でプレビュー機能を使用できます。
コマンド行を使用する
コマンド行またはAntタスクで「-preview true」を追加すると、ハーベスタが実行され、作成されるアセットのすべてのリストが表示されますが、実際には変更がコミットされません。
HarvesterSettings.xmlファイルを使用する
次のように、HarvesterSettings.xmlファイルでプレビュー・モードを設定することもできます。
<introspection preview="true">
<reader>com.oracle.oer.sync.plugin.reader.file.FileReader</reader>
<writer>com.oracle.oer.sync.plugin.writer.oer.OERWriter</writer>
</introspection>
この項では、ハーベスタのベスト・プラクティスについて説明します。内容は次のとおりです。
管理者のロールを持つユーザーのみがアセットを収集できます。
ハーベスタには、収集したアセットのプロジェクトのネームスペースを設定する機能があります。プロジェクトのネームスペースは、ネームスペースの異なるものは、異なるアセットになるように、重複するアセットの検出に使用されます。ほとんどの場合、このパラメータをオーバーライドしないことをお薦めします。
ただし、Oracle SOA SuiteまたはOracle Service Busからの収集時、これらの製品のプロジェクト名に基づいて、ハーベスタによりプロジェクトのネームスペースが自動的に設定されます。
これに従うことは、複数のソース(JDevおよびランタイム)から、同じプロジェクトとリビジョンを収集するとき、特に重要です。ネームスペースの変更またはオーバーライドは、OERのアセットの重複につながります。
WSDLファイルの収集では、それぞれが一意のインタフェース、サービスおよびエンドポイントに、一意のネームスペースを使用することをお薦めします。
Oracle API Catalog内の既存アセットとの相関はQNameを介して行われるため、インタフェース、サービスまたはエンドポイントのアセットに大幅な変更を加え、QNameを変更しなかった場合、変更したアセットで既存のアセットを上書きすることになります。
表5-7に、Oracle API CatalogのアセットとWSDL構造の相関を示します。
この項では、次のハーベスタの既知の問題について説明します。
現在、ハーベスタは、Oracle SOA Suite、Oracle Service BusおよびWebLogic 11gと12c上で実行中のWebLogic Serverプロジェクトへのリモート接続のみをサポートしています。
ハーベスタは、アーティファクトのイントロスペクト(WSDL、WADL、コンポジット)からアセット名を導出します。すでにOACに存在するアーティファクトを収集すると、ハーベスタによって既存のものが単に上書きされます。
しかし、アーティファクトになんらかの変更がある場合、サービス名プラスWSDLからのネームスペースというように、名前付けの規則が既存のものと同じであるときは、ハーベスタにより新規アセットが作成され、アセット名の末尾に「-2」、「-3」、「-4」といった番号が追加されます。
手動で、OACから古いアセットを削除し、新しいアセットの名前を変更できます。
不正な暗号化パスワードでHarvesterSettings.xmlファイルを構成した場合、次に示すような、長いスタック・トレースが表示されます。
log4j:WARN No appenders could be found for logger
(org.apache.axis.i18n.ProjectResourceBundle).
log4j:WARN Please initialize the log4j system properly.
@ com.oracle.oer.sync.framework.MetadataIntrospectionException:
@ com.oracle.oer.sync.framework.MetadataIntrospectionException: Unable to read
plugin file:
C:\Drive-E\XU-harvest-tools\dec16\OER-Harvester\.\plugins\biz.introspector
at
@ com.oracle.oer.sync.framework.MetadataManager.init(MetadataManager.java:308)
@ at com.oracle.oer.sync.framework.Introspector.<init>
Introspector.java:188)
at
@ com.oracle.oer.sync.framework.Introspector.main(Introspector.java:395)
@ Caused by: com.oracle.oer.sync.framework.MetadataIntrospectionException:
Unable
to read plugin file:
C:\Drive-E\XU-harvest-tools\dec16\OER-Harvester\.\plugins\biz.introspector
at
@ com.oracle.oer.sync.framework.impl.DefaultPluginManager.processIntrospector(De
faultPluginManager.java:127)
at
@ com.oracle.oer.sync.framework.impl.DefaultPluginManager.<init>(DefaultPluginMa
nager.java:73)
at
@ com.oracle.oer.sync.framework.MetadataManager.init(MetadataManager.java:306)
... 2 more
Caused by: java.lang.IllegalArgumentException: The char '0x12' in
'java.lang.Ill
egalArgumentException: The char '0x12' in 'E/?↕?↕H?rd' is not a
valid XML character.' is not a valid XML character.
at
@ org.apache.axis.components.encoding.AbstractXMLEncoder.encode(Abstrac
tXMLEncoder.java:110)
at org.apache.axis.utils.XMLUtils.xmlEncodeString(XMLUtils.java:131)
at org.apache.axis.AxisFault.dumpToString(AxisFault.java:366)
at org.apache.axis.AxisFault.printStackTrace(AxisFault.java:796)
at
com.oer.log4j.spi.ThrowableInformation.getThrowableStrRep(Throw
ableInformation.java:42)
at
com.oer.log4j.spi.LoggingEvent.getThrowableStrRep(LoggingEvent.java:217)
at
com.oer.log4j.WriterAppender.subAppend(WriterAppender.java:298)
at
com.oer.log4j.RollingFileAppender.subAppend(RollingFileAppender.java:294
)
at com.oer.log4j.WriterAppender.append(WriterAppender.java:157)
at
com.oer.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
at
com.oer.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(Appen
derAttachableImpl.java:57)
at com.oer.log4j.Category.callAppenders(Category.java:255)
at com.oer.log4j.Category.forcedLog(Category.java:445)
at com.oer.log4j.Category.log(Category.java:882)
at
@ com.oracle.oer.sync.framework.logger.DefaultMetadataLogger.error(DefaultMetada
taLogger.java:98)
at
@ com.oracle.oer.sync.plugin.writer.oer.OERConnectionCache.getAuthToken(OERCon
nectionCache.java:138)
at
@ com.oracle.oer.sync.plugin.writer.oer.OERAssetQueries.getToken(OERAssetQueri
es.java:82)
at
@ com.oracle.oer.sync.plugin.writer.oer.OERAssetQueries.assetTypeQueryByUUID(AL
ERAssetQueries.java:159)
at
@ com.oracle.oer.sync.framework.MetadataManager.putAssetType(MetadataManager.jav
a:204)
at
@ com.oracle.oer.sync.framework.impl.DefaultPluginManager.processIntrospector(De
faultPluginManager.java:104)
... 4 more
Oracle JDeveloper 12cから、リポジトリの表示をクリックするとJDeveloperにアセットの詳細が開きますが、それは読取り専用のもので、ページ内のリンクは動作しません。
回避するには、Oracle API Catalogコンソールにログインし、詳細情報のリンクをクリックします。