ヘッダーをスキップ
Oracle Enterprise Service Bus 開発者ガイド
10g (10.1.3.4.0)
B50869-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

13 Enterprise Service Bus Antデプロイ機能

この章では、Oracle Application Serverリリース10.1.3.4のESB Antデプロイ機能のサポートについて説明します。

項目は次のとおりです。

Antデプロイ機能の概要

Antデプロイ機能には、ESBサービス・デプロイメント自動化に使用するカスタムAntタスクのセットが含まれています。ESB Antデプロイ機能は、ESBメタデータとの連携をサポートしているため、プロパティ置換の発生に関係なく、カスタムAntタスクを使用してメタデータをESBメタデータ(設計時)サーバーにデプロイまたはアンデプロイできます。


関連項目:


Apache Antツールの詳細はhttp://ant.apache.org/を参照してください。

Antのインストール

次の場所からAntをダウンロードしてインストールする必要があります。

http://ant.apache.org/bindownload.cgi

手順は次のとおりです。

  1. Antおよび依存JARファイルをインストールします。

  2. ESBMetadataMigrationTaskdefs.xmlファイルを編集してJARファイルを指すようにします。

  3. JDeveloperで、ルーティング・サービスとファイルアウト・アダプタを使用して簡易ESBプロジェクトAntTestを作成します。

  4. 次のようにAntTestBuild.xmlファイルを作成します。

    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <project name="AntTest" default="usage">
        <property name="esbProjectLocation" value="C:\mywork\ESBTests\AntTest"/>
        <property name="deploymentPlanFile" value=".\AntTestDeploymentPlan.xml"/>
      <import file="${basedir}/ESBMetadataMigrationTaskdefs.xml"/>
      <target name="AntTest">
        <delete file="${deploymentPlanFile}"/>
        <extractESBDeploymentPlan
            sourceDir= "${esbProjectLocation}"
            deploymentPlanFile="${deploymentPlanFile}"/>
      </target>
        <target name="AntTestDeploy">
    <deployESBProjects esbMetadataServerHostname="localhost"
              esbMetadataServerPort="8888"
                               userName="oc4jadmin"
                               password="welcome1">
       <esbProject directory="${esbProjectLocation}"/>
    </deployESBProjects>
        </target>
    <target name="AntTestDeployPlan">
        <deployESBSuitcase sourceDirectory="${esbProjectLocation}"
               deploymentPlanFilename="${deploymentPlanFile}"
                           esbMetadataServerHostname="localhost"
                           esbMetadataServerPort="8888"
                           forcedDeployment="true"/>
    </target>
       <target name="usage">
    <exec executable="ant" dir="${basedir}" vmlauncher="false">
        <arg value="-projecthelp"/>
    </exec>
        </target>
    </project>
    
  5. JREバイナリおよびAntバイナリにアクセスするようにパスを設定します。

  6. JDeveloperを使用してプロジェクトをデプロイします。これを実行するのはJDeveloper環境下で1回のみです。

  7. 次の"ant -f AntTestBuild.xml AntTest"コマンドを使用して抽出したAntタスクを実行します。

  8. 任意で、新規作成したAntTestDeploymentPlan.xmlファイルを編集します。

  9. ESBコンソールからプロジェクトを削除します。

  10. "ant -f AntTestBuild.xml AntTestDeployPlan"計画でプロジェクトをデプロイします。計画なしで直接デプロイする場合は、"ant -f AntTestBuild.xml AntTestDeploy"デプロイ・プロジェクトAntタスクを実行できます。

  11. 埋込みEMテスト・ページを使用して検査します。

Antタスクのデプロイ

Antスクリプトを使用してコマンドラインからESBプロジェクトを登録できます。それには、次の場所からESBデプロイメント・パッケージをダウンロードする必要があります。

OracleAS_HOME\integration\esb\deployment\documentation.zip

このパッケージには次のカスタム・タスクが含まれています。

Antタスク・サンプル・ファイルのデプロイ

例13-1に、ESBMetadataMigrationTaskdefs.xmlサンプル・ファイルを示します。

例13-1 ESBMetadataMigrationTaskdefs.xmlサンプル・ファイル

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<project name="ESBMetadataMigrationTaskdefs">
<!-- PROPERTIES, unique  to the installation environment -->
 <property name="commons.httpclient.home" value="C:/src/esbDeploymentAutomation"/>
 <property name="jaxb.v2.0.2.home"  value="C:/src/esbDeploymentAutomation/jaxb-ri-20070122"/>
 <property name="soa.suite.home" value="C:/product/10.1.3.1/OraESB_1"/>
<!--- Custom ant task definitions, do not change below this line -->
    <dirname property="imported.basedir"
 file="${ant.file.ESBMetadataMigrationTaskdefs}"/>
    <taskdef resource="oracle/tip/esb/client/anttasks/antlib.xml">
        <classpath>
            <pathelement location="${imported.basedir}/ESBMetadataMigration.jar"/>
            <pathelement
 location="${commons.httpclient.home}/commons-httpclient-3.0.1.jar"/>
            <pathelement location="${soa.suite.home}/lib/xmlparserv2.jar"/>
            <pathelement
 location="${soa.suite.home}/integration/esb/lib/commons-logging.jar"/>
            <pathelement
 location="${soa.suite.home}/integration/esb/lib/commons-codec-1.3.jar"/>
            <pathelement
 location="${soa.suite.home}/integration/esb/lib/oraesb.jar"/>
            <pathelement location="${jaxb.v2.0.2.home}/lib/activation.jar"/>
            <pathelement location="${jaxb.v2.0.2.home}/lib/jaxb-api.jar"/>
            <pathelement location="${jaxb.v2.0.2.home}/lib/jsr173_1.0_api.jar"/>
            <pathelement location="${jaxb.v2.0.2.home}/lib/jaxb-impl.jar"/>
        </classpath>
    </taskdef>
</project>

例13-2に、AntTestBuild.xmlサンプル・ファイルを示します。

例13-2 AntTestBuild.xmlサンプル・ファイル

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<project name="AntTest" default="usage">
    <property name="esbProjectLocation" value="C:\mywork\ESBTests\AntTest"/>
    <property name="deploymentPlanFile" value=".\AntTestDeploymentPlan.xml"/>
  <import file="${basedir}/ESBMetadataMigrationTaskdefs.xml"/>
  <target name="AntTest">
    <delete file="${deploymentPlanFile}"/>
    <extractESBDeploymentPlan
        sourceDir= "${esbProjectLocation}"
        deploymentPlanFile="${deploymentPlanFile}"/>
  </target>
    <target name="AntTestDeploy">
<deployESBProjects esbMetadataServerHostname="localhostÒ
 esbMetadataServerPort="8888"
userName="oc4jadminÒ password="welcome1">
      <esbProject directory="${esbProjectLocation}"/>
</deployESBProjects>
    </target>
<target name="AntTestDeployPlan">
    <deployESBSuitcase sourceDirectory="${esbProjectLocation}Ò
deploymentPlanFilename="${deploymentPlanFile}"
esbMetadataServerHostname="localhostÒ esbMetadataServerPort="8888"
forcedDeployment="true"/>
</target>
   <target name="usage">
<exec executable="ant" dir="${basedir}" vmlauncher="false">
    <arg value="-projecthelp"/>
</exec>
    </target>
</project>

ESB Antデプロイ・カスタム・タスク

この項では、次のESB Antデプロイ・カスタム・タスクについて説明します。

deployESBProjects

deployESBProjectsは、所定のESBメタデータ・サーバーに1つ以上のESBプロジェクト(JDeveloperにより作成され保持される)をデプロイするのに使用できるカスタムAntタスクです。このタスクは、JDeveloperのRegister with ESB関数と同様の動作をします。ただし、JDeveloperが所有し保持するESBプロジェクト・アーティファクトを自動更新または再同期化するという追加機能があります。JDeveloperを使用して、Register with ESB関数により手動で1つ以上のそのESBプロジェクトをデプロイする場合、まず最初にESBメタデータ・サーバーからESBプロジェクト・メタデータを更新する必要があります。

パラメータ

次の表で、パラメータの属性と内容を説明します。

属性 説明 必須
esbMetadataServerHostname 対象ESBメタデータ・サーバーをサポートするコンピュータのホスト名。 はい
esbMetadataServerPort ESBメタデータ・サーバーのポート番号。 はい
userName ESBコンソール、通常oc4jadminを使用してESBシステム、サービス・グループおよびサービスをデプロイまたはアンデプロイする権限のあるログイン名 はい
password userNameアカウントのパスワード はい


注意:


所定のESBメタデータ・サーバー・インスタンスのesbMetadataServerPortは、所定のマシンのESBコントロールおよびコンソールと相互作用するために使用されるポート番号により識別できます。目的のESBインスタンスのESBコントロールおよびコンソールと相互作用するために使用するURLは、同じポート番号を使用します。

ネストした要素として指定されるパラメータ

deployESBProjectsカスタム・タスクは、1つ以上のネストしたesbProjectタスクをサポートします。esbProjectタスクを別のesbProjectタスク内にネストすることはできません。次の表で、esbProjectタスクのパラメータを説明します。

属性 説明 必須
directory JDeveloperが作成し保持するESBプロジェクトの最上位ディレクトリ はい

システム・レスポンス

カスタムAntタスクは、タスクが正しく定義されていない場合には、その出力が進捗状況を通知するのと同様にセマンティック検証エラーを通知します。タスク完了時、ESBコンソールを開いてESBシステム、サービス・グループおよびサービスが対象のESBメタデータ・サーバーにデプロイされていることを確認してください。

次に例を示します。

例13-3では、ローカル・ホストで稼働し、ポート8889で接続しているESBメタデータ・サーバーに5つのESBプロジェクトをデプロイするよう要求します。ESBプロジェクトは、CustomerDataCustomerData5CustomerData8CustomerData9CustomerData10の順序でデプロイされます。指定されたディレクトリは、5つのプロジェクトごとに最上位ディレクトリであることに注意してください。それぞれのディレクトリ(またはいずれかのサブディレクトリ)内で、ESBプロジェクト・アーティファクト(.esb.esbgrp.esbsvc.esbsys.xml.xsd.xsl.xsltおよび.wsdlのファイル名拡張子を持つファイル)が見つかります。

例13-3 deployESBProjectsの例

<target name="test.DeployESBProjects">
    <deployESBProjects esbMetadataServerHostname="localhost"
     esbMetadataServerPort="8889"
                       userName="oc4jadmin"
                       password="oc4jadmin">
                       protocol="https">
                      <truststore="C:\JDev_10134\jdk\jre\lib\security\cacerts">
        <esbProject
directory="C:/Oracle/product/JDeveloper/v10.1.3.1/jdev/mywork/ESBSamples/CustomerData"/>
        <esbProject directory="C:/Oracle/product/JDeveloper/v10.1.3.1/jdev/mywork/ESBSamples/CustomerData5"/>
        <esbProject directory="C:/Oracle/product/JDeveloper/v10.1.3.1/jdev/mywork/ESBSamples/CustomerData8"/>
        <esbProject directory="C:/Oracle/product/JDeveloper/v10.1.3.1/jdev/mywork/ESBSamples/CustomerData9"/>
        <esbProject directory="C:/Oracle/product/JDeveloper/v10.1.3.1/jdev/mywork/ESBSamples/CustomerData10"/>
    </deployESBProjects>
</target>

undeployESBEntities

undeployESBEntitiesは、以前にデプロイされた1つ以上のESBエンティティ(システム、サービス・グループおよびサービス)を識別されたESBメタデータ・サーバーにアンデプロイするのに使用できるカスタムAntタスクです依存管理およびエラー処理を簡素化するため、最初に識別された全サービスをアンデプロイします。次に識別された全サービス・グループ続いて識別された全システムをアンデプロイします。このタスクは、少なくとも1つのシステム、サービス・グループまたはサービスをアンデプロイするするように指定する必要があります。アンデプロイのため識別されるESBシステム、サービス・グループおよびサービスは、どの順序でも指定できます。

パラメータ

次の表で、パラメータの属性と内容を説明します。

属性 説明 必須
esbMetadataServerHostname 対象ESBメタデータ・サーバーをサポートするコンピュータのホスト名。 はい
esbMetadataServerPort ESBメタデータ・サーバーのポート番号。 はい
userName ESBコンソール、通常oc4jadminを使用してESBシステム、サービス・グループおよびサービスを削除する権限のあるログイン名 はい
password userNameアカウントのパスワード はい


注意:


所定のESBメタデータ・サーバー・インスタンスのesbMetadataServerPortは、所定のマシンのESBコントロールおよびコンソールと相互作用するために使用されるポート番号により識別できます。目的のESBインスタンスのESBコントロールおよびコンソールと相互作用するために使用するURLは、同じポート番号を使用します。

ネストした要素として指定されるパラメータ

undeployESBEntitiesカスタム・タスクは、1つ以上のネストしたシステム、サービス・グループおよびサービス・タスクをサポートします。各タスクは他のタスクのピアである必要があるので、このようなタスクを互いのタスク内にネストすることはできません。システム、サービス・グループおよびサービス・タスクのパラメータは同一で、次の表で説明します。

属性 説明 必須
guid この値は、アンデプロイする必要のあるESBエンティティを一意に識別します。ESBエンティティのguidは、JDeveloperが保持するファイルに対応する.esbsys、.esbgrpまたは.esbsvcファイルのシステム、サービス・グループまたはサービス要素のguid属性内にあります。各エンティティのguidも、ESBのエクスポート・コマンドライン・ユーティリティを使用して作成されるmetadata.xmlファイル要素のguid属性内にあります。

注意: metadata.xmlファイルは、エクスポート・コマンドライン・ユーティリティが作成するZIPファイル内に格納されます。

はい

システム・レスポンス

カスタムAntタスクは、タスクが正しく定義されていない場合には、その出力が進捗状況を通知するのと同様にセマンティック検証エラーを通知します。タスク完了時、ESBコンソールを開いてESBシステム、サービス・グループおよびサービスが対象のESBメタデータ・サーバーからアンデプロイされていることを確認してください。

次に例を示します。

例13-4では、識別された5つのESBシステム、2つのサービス・グループおよび2つのサービスを、ローカル・ホストで稼働しポート8889で接続しているESBメタデータ(設計時)サーバーからアンデプロイするよう要求します。依存管理およびエラー処理を簡素化するため、最初に2つの識別されたサービスをアンデプロイします。次に2つの識別されたサービス・グループ続いて5つの識別されたシステムをアンデプロイします。

例13-4 undeployESBEntitiesの例

<target name="test.UndeployESBEntities">
    <undeployESBEntities esbMetadataServerHostname="localhost"
                         esbMetadataServerPort="8889"
                         userName="oc4jadmin"
                         password="oc4jadmin">
                         protocol="https">
        <system guid="8D61C3F0871111DB8F2675C60E6C31C6"/>
        <serviceGroup guid="0EB5F380896111DBBFBC9530C01627AC"/>
        <service guid="0547F370841611DBBFCF2D9BF80323FA"/>
        <service guid="05458270841611DBBFCF2D9BF80323FA"/>
        <system guid="86443990871611DB8F2675C60E6C31C6"/>
        <serviceGroup guid="B90E6B70895F11DBAF1483EEF470B835"/>
        <system guid="A62C91C1841511DBBFCF2D9BF80323FA"/>
        <system guid="D9F290E1896011DBBFBC9530C01627AC"/>
        <system guid="A9B213C1895F11DBAF1483EEF470B835"/>
    </undeployESBEntities>
</target>

extractESBDeploymentPlan

extractESBDeploymentPlanは、JDeveloper ESBプロジェクトから識別されたdeploymentPlanFileへのデプロイ・プランの直接抽出をサポートしているカスタムAntタスクです。

事前条件

識別されたESBプロジェクトは、JDeveloperのRegister with ESB関数を使用して少なくとも1回デプロイしておく必要があります。これは基礎となるESBアーティファクトがRegister with ESB関数の結果として変更されるという事実によるもので、このタスクはアーティファクトがその完全に指定された状態にあると予期します。

また、作成されるデプロイ・プラン・ファイルは、このタスクの実行により誤って上書きされることがなくなります。このタスク実行時に作成するデプロイ・プラン・ファイルがすでに存在している場合、タスクは終了しこの状態を通知します。

パラメータ

次の表で、パラメータの属性と内容を説明します。

属性 説明 必須
sourceDir JDeveloperがESBプロジェクトを格納するために使用する絶対または相対最上位ディレクトリ。存在しかつ読取り可能なディレクトリを指し、ESBアーティファクトを少なくとも1つ含んでいる必要があります。 はい
deploymentPlanFile このタスクの結果として作成されるファイルの絶対または相対ファイル名。書込み可能なファイルを指している必要があります。 はい

ネストした要素として指定されるパラメータ

extractESBDeploymentPlanカスタム・タスクは、ネストした要素をサポートしていません。

システム・レスポンス

カスタムAntタスクが正しく定義されていない場合には、デプロイ・プランの作成能力のステータスのみでなくセマンティック検証エラーも通知します。正しく定義されている場合は、作成したデプロイ・プランファイルの完全パスを通知します。

次に例を示します。

例13-5では、C:/Oracle/product/JDeveloper/v10.1.3.1/jdev/mywork/ESBSamples/CustomerData8ディレクトリにあるESBプロジェクト・アーティファクトに現在保持されているデプロイ・プラン情報を、../CustomerData8DeploymentPlan.xmlとして識別されるファイルに抽出するタスクを示します。

例13-5 extractESBDeploymentPlanの例

<target name="test.ExtractESBDeploymentPlan">
    <extractESBDeploymentPlan
sourceDir="C:/Oracle/product/JDeveloper/v10.1.3.1/jdev/mywork/ESBSamples/CustomerData8"
        deploymentPlanFile="../CustomerData8DeploymentPlan.xml"/>
</target>

例13-6は、タスク実行前にデプロイ・プランがディスクから削除される点を除いて前述の例と同一です。

例13-6 extractESBDeploymentPlanの例

<target name="test.ExtractESBDeploymentPlan">
    <property name="deploymentPlan" value="../CustomerData8DeploymentPlan.xml"/>
    <delete file="${deploymentPlan}"/>
    <extractESBDeploymentPlansourceDir="C:/Oracle/product/JDeveloper/v10.1.3.1/jdev/mywork/ESBSamples/
CustomerData8" deploymentPlanFile="${deploymentPlan}"/>
</target>

deployESBSuitcase

deployESBSuitcaseはカスタムAntタスクの1つで、指定したデプロイ・プラン内容を適用した後に、すでに作成されて別の方法でJDeveloperに保持されている1つのESBプロジェクトをデプロイするために使用できます。このタスクは、JDeveloperのRegister with ESB関数と同様に動作しますが、次の点で異なります。

  • JDeveloperのRegister with ESB関数で検索したESBアーティファクトにデプロイ・プランを適用しませんが、このタスクでは適用します。

  • JDeveloperのRegister with ESB関数でJDeveloperアーティファクトは自動更新および再同期化されますが、このタスクではされません。

このタスクを使用して1つ以上のESBプロジェクトをデプロイし、その後JDeveloperのRegister with ESB関数を使用してそのような所定のESBプロジェクトを1つ以上手動でデプロイする場合、最初にESBメタデータ・サーバーからESBプロジェクト・メタデータを更新する必要があります。

パラメータ

次の表で、パラメータの属性と内容を説明します。

属性 説明 必須
sourceDir JDeveloperが保持するESBプロジェクト関連の全アーティファクトを格納する最上位ディレクトリ。つまり、プロジェクトの一部として保持されるすべての.esb、.esbgrp、.esbsvc、.esbsys、.xml、.xsd、.xsl、.xsltおよび.wsdlファイル。 はい
deploymentPlanFile 存在し読取り可能なデプロイ・プランを格納するファイルを示します。 はい
esbMetadataServerHostname 対象ESBメタデータ・サーバーをサポートするコンピュータのホスト名。 はい
esbMetadataServerPort ESBメタデータ・サーバーのポート番号。 はい
forcedDeployment 強制的にデプロイして、競合やバージョンまたはタイムスタンプあるいはその両方の不一致を無視するかどうかを示します。この属性のデフォルト値はtrueです。Falseでも可能です。 いいえ


注意:


所定のESBメタデータ・サーバー・インスタンスのesbMetadataServerPortは、所定のマシンのESBコントロールおよびコンソールと相互作用するために使用されるポート番号により識別できます。目的のESBインスタンスのESBコントロールおよびコンソールと相互作用するために使用するURLは、同じポート番号を使用します。

ネストした要素として指定されるパラメータ

deployESBSuitcaseカスタム・タスクは、ネストした要素をサポートしていません。

システム・レスポンス

カスタムAntタスクは、タスクが正しく定義されていない場合には、その出力が進捗を通知するのと同様にセマンティック検証エラーを通知します。タスク完了時、対応するESBメタデータ・サーバーのESBコンソールを開いてESBシステム、サービス・グループおよびサービスが適切にデプロイされていることを確認してください。また、デプロイした各エンティティの状況を検査して、指定されたデプロイメント・プランに保持されているプロパティがデプロイ時に使用され、メタデータ・サーバーが実際使用しているものかどうかを確認できます。

ESBメタデータ・サーバーが保持するアーティファクトと、JDeveloperが保持し管理するプロジェクト・ディレクトリのアーティファクト間で競合する場合、このタスクを利用するAntターゲットから次のように出力されます。

[deployESBSuitcase] Deployment Attempt Response :
[deployESBSuitcase] <deploymentSummary>
[deployESBSuitcase]    <message>Entity Deployment Failed</message>
[deployESBSuitcase]    <conflicts>
[deployESBSuitcase]       <conflict qname="AdapterServices"
 guid="A3CC9DE1AEF811DBBFF7559FF9492F22">
[deployESBSuitcase]          <lastModifiedTime>Tue Feb 27 15:59:03 MST
 2007</lastModifiedTime>
[deployESBSuitcase]          <lastModifiedUser>JDev_temp_ESBSamples
_AdapterServices_localhost</lastModifiedUser>
[deployESBSuitcase]       </conflict>
[deployESBSuitcase]       <conflict qname="AdapterServices.databaseAdapter"
 guid="CC826930AEF911DBBFF7559FF9492F22">
[deployESBSuitcase]          <lastModifiedTime>Tue Feb 27 15:59:03 MST
 2007</lastModifiedTime>
[deployESBSuitcase]          <lastModifiedUser>JDev_temp_ESBSamples
_AdapterServices_localhost</lastModifiedUser>
[deployESBSuitcase]       </conflict>
[deployESBSuitcase]    </conflicts>
[deployESBSuitcase] </deploymentSummary>

この場合、forcedDeployment属性をtrue値に指定することで強制デプロイを選択できます。この場合、このタスクは以降の試行を継続します。

次に例を示します。

例13-7では、ESBプロジェクトおよびその全アーティファクトをC:/Oracle/product/JDeveloper/v10.1.3.1/jdev/mywork/ESBSamples/CustomerData8ディレクトリとその全サブディレクトリから読み取り、../CustomerData8DeploymentPlan.xmlにあるデプロイ・プランをそのアーティファクトに(アーティファクト変更なしで)適用し、ポート8889上でリスニングしているローカル・ホスト・マシンで稼働するESBメタデータ・サーバーにそのアーティファクトをデプロイするカスタムAntタスクについて説明します。デプロイしたアーティファクトは、タスクを実行するたびに再生されるので保持されません。forcedDeployment属性をfalse値に指定しているため、デプロイ時に競合が検出されるデプロイ試行は中断します。

例13-7 deployESBSuitcaseの例

<target name="test.DeployESBSuitcase">
    <deployESBSuitcase
sourceDir="C:/Oracle/product/JDeveloper/v10.1.3.1/jdev/mywork/ESBSamples/CustomerData8"
                       deploymentPlanFile="../CustomerData8DeploymentPlan.xml"
                       esbMetadataServerHostname="localhost"
                       esbMetadataServerPort="8889"
                       forcedDeployment="false"/>
</target>