Oracle SOA 11g: Multiple Runtime Endpoint Locations for Partner Link

Oracle

Share Post Now :

HOW TO GET HIGH PAYING JOBS IN AWS CLOUD

Even as a beginner with NO Experience Coding Language

Explore Free course Now

Table of Contents

Loading

Oracle SOA Suite provides support for specifying multiple partner link endpoint Locations. This capability is useful for failover purposes if the first endpoint is down.

endpointURI” is the property that we need to add in partner link reference to support multiple endpoint location.

e.g. <property name=”endpointURI”>endpoint</property>

Below is example partner link reference that supports multiple endpoint location

<reference name=”HelloWorld” ui:wsdlLocation=”HelloWorld.wsdl”>
<interface.wsdl interface=”http://xmlns.oracle.com/TestApplication/First/BPELProcess1#wsdl.interface(BPELProcess1)”/>
<binding.ws port=”http://xmlns.oracle.com/TestApplication/Second/BPELProcess1#wsdl.endpoint(bpelprocess1_client_ep/BPELProcess1_pt)”
location=”http://localhost:8001/soa-infra/services/default/First/bpelprocess1_client_ep?WSDL”>
<property name=”endpointURI”>http://localhost:8001/soa-infra/services/default/Second/bpelprocess1_client_ep</property>
</binding.ws>
</reference>

Location attribute in the binding.ws tag is default location for the partner link.

e.g. location=http://localhost:8001/soa-infra/services/default/First/bpelprocess1_client_ep?WSDL

Endpoint inside “endpointURI” is the alternate endpoint URI

e.g. <property name=”endpointURI”>http://localhost:8001/soa-infra/services/default/Second/bpelprocess1_client_ep</property>

Here are two use cases to explain more on this. In first use case there is one alternate endpoint and in second one there are two alternate endpoints.

First Use case

We have 3 composites.

  1. TestComposite
  2. HelloWorld
  3. HelloWorldAlternate

TestComposite is calling HelloWorld composite but it should call HelloWorldAlternate composite which is alternate composite in case “HelloWorld” is down.

Sample Partner Link reference

<reference name=”HelloWorld” ui:wsdlLocation=”HelloWorld.wsdl”>
<interface.wsdl interface=”http://xmlns.oracle.com/TestApplication/HelloWorld/BPELProcess1#wsdl.interface(BPELProcess1)”/>
<binding.ws port=”http://xmlns.oracle.com/TestApplication/HelloWorld/BPELProcess1#wsdl.endpoint(bpelprocess1_client_ep/BPELProcess1_pt)”
location=”http://localhost:8001/soa-infra/services/default/HelloWorldAlternate/bpelprocess1_client_ep?WSDL”>
<property name=”endpointURI”>http://localhost:8001/soa-infra/services/default/HelloWorld/bpelprocess1_client_ep</property>
</binding.ws>
</reference>

When both “HelloWorld” and “HelloWorldAlternate” composites are up then TestApplication will invoke “HelloWorld” partner link. That means it will take endpoint from “property”

  • <property name=”endpointURI”>http://localhost:8001/soa-infra/services/default/HelloWorld/bpelprocess1_client_ep</property>

When HelloWorld is down then it will invoke “HelloWorldAlternate” partner link. That means it will take endpoint from location attribute of the binding.ws tag

  • location=”http://localhost:8001/soa-infra/services/default/HelloWorldAlternate/bpelprocess1_client_ep?WSDL”

Want to Get the FREE Step by Step Guide on How you can create your First SOA Composite in 30 Minutes ?

 

Second Use case

We can think about having more than one alternative endpoint for the partner link. In this case, we have 4 composites.

  1. TestComposite
  2. HelloWorld
  3. HelloWorldAlternate.
  4. HelloWorldSecondAlternate

TestComposite is calling HelloWorld composite but it should call HelloWorldAlternate or HelloWorldSecondAlternate composite which is alternate composite in case “HelloWorld” is down.

Sample Partner Link reference

<reference name=”HelloWorld” ui:wsdlLocation=”HelloWorld.wsdl”>
<interface.wsdl interface=”http://xmlns.oracle.com/TestApplication/HelloWorld/BPELProcess1#wsdl.interface(BPELProcess1)”/>
<binding.ws port=”http://xmlns.oracle.com/TestApplication/HelloWorld/BPELProcess1#wsdl.endpoint(bpelprocess1_client_ep/BPELProcess1_pt)”
location=”http://localhost:8001/soa-infra/services/default/HelloWorldAlternate/bpelprocess1_client_ep?WSDL”>
<property name=”endpointURI”>http://localhost:8001/soa-infra/services/default/HelloWorldSecondAlternate/bpelprocess1_client_ep</property>
<property name=”endpointURI”>http://localhost:8001/soa-infra/services/default/HelloWorld/bpelprocess1_client_ep</property>
</binding.ws>
</reference>

When “HelloWorld”, “HelloWorldAlternate” and “HelloWorldSecondAlternate” is up then “TestApplication” will invoke “HelloWorld” partner link. That means it will take endpoint from second “property”
<property name=”endpointURI”>http://localhost:8001/soa-infra/services/default/HelloWorld/bpelprocess1_client_ep</property>

When “HelloWorld” is down, “HelloWorldAlternate” and “HelloWorldSecondAlternate” is up then “TestApplication” will invoke “HelloWorldAlternate” partner link.

  • location=”http://localhost:8001/soa-infra/services/default/HelloWorldAlternate/bpelprocess1_client_ep?WSDL”

When “HelloWorld” is up, “HelloWorldAlternate” is up and “HelloWorldSecondAlternate” is down then “TestApplication” will invoke “HelloWorld” partner link.

  • <property name=”endpointURI”>http://localhost:8001/soa-infra/services/default/HelloWorld/bpelprocess1_client_ep</property>

When “HelloWorld” is down, “HelloWorldAlternate” is up and “HelloWorldSecondAlternate” is down then “TestApplication” will invoke “HelloWorldAlternate” partner link.

  • location=http://localhost:8001/soa-infra/services/default/HelloWorldAlternate/bpelprocess1_client_ep?WSDL

Remember : Schema should be same for all the composites.

Next Task for you:

Register for our FREE Masterclass on “Be An Expert With Oracle SOS Suit Development” as it will help you clear your doubts and concepts about SOA Suite before you start your journey.

Click on the below image to Register for the Free Masterclass Now!

Picture of mike

mike

I started my IT career in 2000 as an Oracle DBA/Apps DBA. The first few years were tough (<$100/month), with very little growth. In 2004, I moved to the UK. After working really hard, I landed a job that paid me £2700 per month. In February 2005, I saw a job that was £450 per day, which was nearly 4 times of my then salary.