Dynamic Partner Link with BPEL 2.0 and SOA Suite 12.2.1.3
Problem: Calling the external soap services dynamically using BPEL 2.0.
Issues Fixed:
<selectionFailure xmlns=”h ttp://docs.oasis-open.org/wsbpel/2.0/process/executable”>
<part name=”summary”>
<summary>fromValue is not a sref:service-ref element</summary>
</part>
Transactions in SOA
Transactions
-
Services can be:
- Non-Transactional Services
- Transactional Service
- Non-Transactional services are the services that does not modify data.
E.g. File Adapter, FTP Adapter
- Transactional service can be defined as any service that performs DML operations, where each operation are subject to ACID(Atomicity, Consistency, Isolation, Durability) principles.
- Transactional services are implemented as a java web services or adapter services which are invoked from SOA using BPEL or Mediator
- Transactional boundaries depend on context, configurations and environment of the services that are implemented and invoked.
- Transactional semantics differs for the services that are invoked synchronously compared with services invoked asynchronously.
SOA Suite 12C Installation and Domain Creations
Open cmd prompt as Administrator
C:\>cd Java\jdk1.7.0_65\bin
C:\Java\jdk1.7.0_65\bin>java -jar C:\Softwares\fmw_12.1.3.0.0_soaqs_Disk1_1of1\f
mw_12.1.3.0.0_soa_quickstart.jar
We can configure below mentioned three different types of domain in Oracle SOA 12c.
Integrated WebLogic Server’s default domain in JDeveloper – Uses internal JavaDB
Standalone domain – Uses internal JavaDB
Compact domain – Uses External Oracle DB
SOA Server Startup Failed with error message: JDBC LLR, table verify failed for table ‘WL_LLR_ADMINSERVER’, row ‘JDBC LLR Domain//Server’
Most common errors that you probably get when you are starting off on soa server. While starting the server, if you check the server logs, and you get a message similar to this
<Critical> <JTA> <BEA-110482> <A logging last resource failed during initialization. The server cannot boot unless all configured logging last resources (LLRs) initialize. Failing reason:
weblogic.transaction.loggingresource.LoggingResourceException: java.sql.SQLException: JDBC LLR, table verify failed for table ‘WL_LLR_ADMINSERVER’, row ‘JDBC LLR Domain//Server’ record had unexpected value ‘base_domain//AdminServer’ expected ‘domain1//AdminServer’*** ONLY the original domain and server that creates an LLR table may access it ***
Mediator with Re-sequencing
- Provides mediation capabilities such as routing, transformation, and validation capabilities.
- Provides a lightweight framework to mediate between various components within a composite application
- Provides services like
- Content based routing and header based routing
- Sequential and parallel routing
- Message re-sequencing
- Data transformation
- Payload validation
- Event Handling
When you compare your Mediator with BPEL, using Mediator you can achieve everything what you achieve using BPEL. But it will be difficult to implement complex logic in Mediator.
But if you want to implement the re-sequencing of incoming message before calling to external system/process, which can’t be achieve with BPEL. In this case we only Mediator can solve the problem. Know lets see use-case with implementation
Business Rules
Oracle Business Rules allows you in separating rule logic from underlying application code(i.e. in BPEL, Mediator) to enable business persons to take dynamic decisions at run-time allowing them to modify the rule at run-time.
Business Rules provide more agile rule maintenance and empowers business analysts with the ability to modify rule logic without programmer assistance and without interrupting business processes.
In SOA Suite, BPEL, Human task and Mediator service components can make use of rules for dynamic routing. A mediator service component can use a business rule for routing messages, and a human task can use a business rule for routing assignments.
The Oracle Metadata Repository (MDS) stores the rulesets for Oracle Business Rules.
Use case: In Banking systems, Average minimum monthly balance to be maintained in an account many vary from time to time. In this example we will get account id, average minimum monthly balance as inputs to the process and call a business rules service to evaluate business rule saying maintenance fee will be applicable if average balance is less than 10000.
JMSAdapter
In this post we will implement the following
1. How to configure JMS server, Queue on weblogic server.
2. BPEL process publishing messages to Queue
Dehydration In SOA
Why Dehydration
- Long running process or processes waiting for response consumes memory and CPU
- While waiting for the response the bpel engine can store the process, thus freeing up server resources.
- Over the life cycle of the BPEL instance, the instance with the current state of execution may be saved in database.
Transactions in SOA
-
In SOA space, Services can be either:
- Non-Transactional Services
- Transactional Service
- Non-Transactional services are the services that does not modify data.
E.g. File Adapter, FTP Adapter
BPEL Process with multiple Operations / Pick Activity / BPEL Process in Top-down approach
Topics covered:
1. Developing a BPEL process which can expose multiple operations to its clients or handle multiple messages request from clients
2. Developing the BPEL process in Top – Down approach
3. Having a pick activity as the first activity in BPEL process
4. Developing a BPEL process Based on WSDL
5. Developing XSD and WSDL
Sample Description:
Implementing the Calculator service which exposes 4 operations( addition, subtraction, multiplication, division) which takes 2 parameters as input and returns value. Use BPEL to implement the Calculator service and expose it as service so that client can any operations of his choice
Recent Comments