ADFバインディング・サービス名は、デプロイされたすべてのSOAコンポジット・アプリケーション間で一意であることが必要

すべてのADFバインディングのサービス名は、デプロイされたすべてのSOAコンポジット・アプリケーション間で一意であることが必要です。

たとえば、次のステップを実行すると考えてみます。

  1. SOAサーバーに複数のコンポジットを組み込むSOAコンポジット・アプリケーションをビルドし、正常にデプロイします。
  2. 新規のコンポーネントとアウトバウンド外部参照を追加して、SOAコンポジット・アプリケーション内のコンポジットの1つを変更します。
  3. 更新したSOAコンポジットをリビジョン2.0としてコンパイルし、正常にビルドします。
  4. 更新したSOAコンポジット・アプリケーションを、同じパーティションまたは別のパーティションにデプロイします。

    次のエラーが出されることがあります。

    <Oct 7, 2013 11:52:01 AM EDT> <Error> <ServletContext-/soa-infra>
    <BEA-000000> <Error during deployment
    oracle.fabric.common.FabricException: Deployment Failed: The serviceName
    attribute "OrderProcessorService" has already been used.   ServiceName must
    be unique among all deployed composites.  The new service will overwrite the
    old one.
            at
    oracle.integration.platform.blocks.deploy.StandaloneCompositeDeploymentCoordin
    atorImpl.coordinateCompositeDeployment(StandaloneCompositeDeploymentCoordinato
    rImpl.java:99) 
    . . .
    . . .
    

    このエラーが発生した理由は、すべてのADFバインディングのサービス名が、デプロイされたすべてのSOAコンポジット・アプリケーション間で一意であることが必要だからです。

  5. 回避策として、composite.xmlファイルを編集して、binding.adfセクションでサービスに別の名前を割り当てる必要があります。例:
    <binding.adf serviceName="OrderProcessorService_v2" registryName=""/>
        <!-- exposed for using via direct binding api -->