Wednesday, September 21, 2011

Two scenarios of invoking asychronous service from BPEL

OrderService is one asynchronous service. When invoking it from one BPEL process we can have the different behaviour by using different activities: in one scenario OrderService is invoked and then BPEL process will wait for the callback response from OrderService. If the specified timeout occurs the notification is sent off but BPEL process continues the waiting for the response. However in another scenario after invoking OrderService BPEL will wait for the callback response. If the specified timout occurs BPEL will handle the timeout and will not wait for the callback response any more.

The first scenario can be implemented by using the activity invoke, receive wrapped in the scope with which onAlarm is attached.

The second scenario is implemented using pick activity. One branch of pick is onMessage to wait for the callback and another branch is onAlarm.

Thursday, September 15, 2011

Using MDS in JDeveloper

When using WSDL in MDS in Oracle SOA 11g, JDeveloper uses .adf\META-INF\adf-config.xml to decide where MDS is.

For example, in the following component.xml the WSDL's location is defined as:
oramds:/apps/SOInterfaces-2.3.9.8/BSC/OrderAndActivation/Activation/ServiceProvisioning-v1.wsdl.


When building the SOA application JDeveloper will look up the MDS from adf-config.xml in order to load the WSDL. From adf-config.xml we know that for /apps/SOInterfaces-2.3.9.8 it uses the metadata-store-usage is mstore-usage-2 which is a database-based MDS. Its database details is defined in metadata-store-usage with id="mstore-usage-2".