Non blocking invoke à true (multithreading)
XSD:
i/p i1 ,i2
int
o/p result àint
create variables:
- name (add) type(int)
- name (mul) type(int)
Assign 1 :
Input invoke 1 i/p
Input invoke 2 i/p
Assign 2 :
Invoke 1 o/p add
Assign 3:
Invoke 2 o/p mul
Switch:
Case1: add> mul
Case2: mul > add
Assign 4:
Add result
Assign 5:
mul result
Create the property:
Double click on partner link (ex: PL _add)
Property click
Property name(non blocking invoke), property value (true) ok
Note:
- Put property to 2 partner links
- PL_add
- PL _ mul
- Non blocking invoke means send the message parallel.
Flow:
Loan approval process à when ever we know the flow of our project we work with “flow activity” .
i/p loan amount, duration
Flow – N :
When we are not sure of the flow of the project and don’t how many web services we need to invoke we will dynamically process at runtime by using “flow activity” .
DB –poll + synchronous _read to file _write:
Fault Handling Frame work:
2 ways to handle the faults
- Process level :
- Scope
- Catch
- Catch all
- Throw
- compensate
- Policy level
- Fault – indings.xml
- Fault – polices .xml
- Process level can be handle particular BPEL process only
Ex:
In process have multiple BPEL’s are then if we created throw, catch, catch all for ci validation BPEL then it applicable for that BPEL only not applicable for total process project.
- Policy level can be handle entire application /project
Ex:
Process project all BPEL process handled.
2 types of faults
- Business faults: it can be defined business conditions
Ex: amount> 50,000 , length cc number = 16 digits
- Run time faults : it can handle by using catch, catch all blocks. It doesn’t have throw activity.
Business faults | Run time faults |
| |
XSD:
i/p Branch name
string
branch string
loan amount int
o/p Result
string
Switch:
Case1 :
Label :SBI
Expression: bank name = “SBI”
Case2:
Label :ICICI
Expression: bank name= “ICICI’
Throw 1 and catch1:
Name space URI = http://SBI BANK
Local part = SBI BANK
Throw 2 and catch2:
Name space URI = http://ICICI BANK
Local part = ICICI BANK
Throw 3
Name space URI = http://other BANKs
Local part = other BANKs
Process level :
Project customer details.
- Policy level:
- Fault – bindings.xml
- Fault – policies.xml
These core tutorials will help you to learnthe fundamentals of Oracle SOA.
For an in-depth understanding and practical experience,
explore Online Oracle SOA Training.
Write inside composite .xml:
<property name = “oracle .composite.faultpolicy file”>
Fault – policies.xml</property>
<property name = “oracle .composite.faultpolicy file”>
Fault – bindings.xml</property>
- xml
open source
</service>
<component name =”BPEL process 1” version= “1-0”>
- Copy fault – bindings.xml , fault – polices.xml
Paste inside project(C://j developer/ my works/application ramesh 1/project)
fault –policies.xml -> contains (actions)
- Ora – retry
- Ora – terminate
- Ora – human intervention
- Ora –rethrow
- Ora –reply
- Ora –java
Main faults:
- Remote fault
- Mediator fault
- Binding fault
- Selection failure.
Ora – retry:
- Retry interval failure action
- Retry count
- Retry failure action
Ora – human intervention:
Some one has come and do something
Ora –java:
Send the mail to admin /client(java code)
Ora –rethrow:
Throw back policy level to process level
Ora – terminate:
Immediately stop the process.
Ora –reply:
Starts again ora retry
Example for above all (remote fault)
PL:
- Shut down
- Retired
- Undeploy
- Server shutdown
Mediator faults:
- Routing rules
- Transformation
- XSD validation
- Filter condition
Binding fault:
WSDL miss match
Ault – policies .xml:
<conditions>
<fault name Xmlns:bpelx =http://schemas.oracle.com/bpel/extension name =”bpelx: remotefault” >
<conditions>
<action ref =”ora -retry”/>
</conditions>
</fault name>
<faultname Xmlns:bpelx =http://schemas.oracle.com/bpel/extension name =”medns:mediatorfault” >
<conditions>
<action ref =”my – mediator-fault-handler”/>
</conditions>
</fault name>
<fault name Xmlns:bpelx =http://schemas.oracle.com/bpel/extension name =”bpelx: bindingfault” >
<conditions>
<action ref =”my- java- handler”/>
</conditions>
</fault name>
</conditions>
<Actions>
<Action id = “my –java-handler”>
<retry>
<retry count>4</retrycount>
<retry FailureAction ref =”Ora – human - intervention”/>
</retry>
</Action>
</Actions>
For Indepth knowledge on Oracle SOA, click on below