Tuesday, 3 June 2014

Resolving Pending State of SOA Composite

Scenario : I have faced this Issue while I am calling multiple services from SOA composite.Let us take an example like I have three processes A,B and C. I am calling 'B 'and 'C' processes from Process 'A' as shown in below .


Here this issue is happening because that   SOA server doesn't know of the service dependencies that a SOA composite has, while deployment is going on.SOA composite under consideration might refer to a service which could be down when the composite was started.

The one and only the solution for this is referring abstract wsdl which was kept in the MDS. Means we need to kept the reusable components in MDS and need to import them from MDS directly as shown below.


else we can change the locations in two places at the end of your development as below.

1. Update the import statements in your composite XML to refer the WSDL/XSDs from concrete references to abstract ones;

 <import namespace="http://xmlns.oracle.com/EnterpriseServices/Core/PayableInvoice/V1"
          location="oramds:/apps/Metadata/EnterpriseBusinessServiceLibrary/Core/EBO/PayableInvoice/V1/PayableInvoiceEBS.wsdl"
          importType="wsdl"/>

2. Update the service wsdl location to MDS abstract WSDL reference as the soa engine would only look at this element to look up & start the services;

 <reference name="InvoiceResponseEBS"
             ui:wsdlLocation="oramds:/apps/Metadata/EnterpriseBusinessServiceLibrary/Core/EBO/PayableInvoice/V1/PayableInvoiceEBS.wsdl">

Leave the WSDL URL in the binding to refer to concrete WSDL because at run time, the bindings will be used to invoke the actual web service.

No comments:

Post a Comment