36
1 1 This presentation is for informational purposes only and may not be incorporated into a contract or agreement 2 This presentation is for informational purposes only and may not be incorporated into a contract or agreement The Oracle BPEL Process Manager Administration Overview Feature Preview Webinar Series Kevin Clugage, [email protected] Product Director Robin Zimmermann, [email protected] Senior Product Manager Dial-in: 888.283.3946 or +1.210.795.4773 passcode: bpel Press *1 at the end to ask verbal questions To ask questions during conf, use "chat" feature

Bpel Admin Webinar

Embed Size (px)

Citation preview

Page 1: Bpel Admin Webinar

1

1

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

2

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

The Oracle BPEL Process Manager

Administration OverviewFeature Preview Webinar Series

Kevin Clugage, [email protected] Director

Robin Zimmermann, [email protected] Product Manager

Dial-in: 888.283.3946 or +1.210.795.4773

passcode: bpel

Press *1 at the end to ask verbal questionsTo ask questions during conf, use "chat" feature

Page 2: Bpel Admin Webinar

2

3

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Agenda

• Basic Facts

• Oracle BPEL Process Manager API• Deployment

• Dehydration Store Management• High Availability and Clustering

• Process Recovery• Miscellaneous

4

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Goodies Bag

• Links to items mentioned• Pointers to doc

• Preview copies of papers• Utilities

References used in this webinar will be emailed to youIt includes:

Page 3: Bpel Admin Webinar

3

5

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Agenda

• Basic Facts

• Oracle BPEL Process Manager API• Deployment

• Dehydration Store Management• High Availability and Clustering

• Process Recovery• Miscellaneous

6

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

A word about version numbers

10.1.2.0.0Jan 05

10.1.2.0.2Aug 05

10.1.3.0.0Jan 06

10.1.2.0.0May 05

10.1.2.0.2Jan 06

10.1.3.1.0July 06?

11?

AS /JDev

BPEL /SOA

Release timeline

Page 4: Bpel Admin Webinar

4

7

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

BPEL has moved!

• 10.1.2.0.2 and earlier:

BPEL_HOME = ORACLE_HOME\integration\orabpel

e.g. c:\bpel1012\integration\orabpel\bin

• 10.1.3.1.0 and onwards:

BPEL_HOME = ORACLE_HOME\bpel

e.g. c:\bpel1013\bpel\bin

8

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Agenda

• Basic Facts

• Oracle BPEL Process Manager API• Deployment

• Dehydration Store Management• High Availability and Clustering

• Process Recovery• Miscellaneous

Page 5: Bpel Admin Webinar

5

9

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Oracle BPEL PM API

• Rich Java API• Build or customize your own dashboards and consoles• Administration tasks• Create reports or extract information

• We use our own API• BPEL Console• Admin Console• Worklist Application

• Source code for consoles included

10

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Oracle BPEL PM API

• API Javadoc<HOME>\docs\apidocs\index.html

• Console source<HOME>\system\appserver\oc4j\j2ee\home\applications\orabpel_ear\console_war

• Admin source<HOME>\system\appserver\oc4j\j2ee\home\applications\orabpel_ear\admin_war

• Workflow source<HOME>\samples\hw

Page 6: Bpel Admin Webinar

6

11

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Workflow – A special mention

• Changes in 10.1.3:

• New Workflow service in 10.1.3• Not compatible with previous workflow service• Previous workflow service will be supported• Watch Workflow Deepdive webinar for details

Identity Service Plugin example

Workflow Service 10.1.2 source

Workflow Service 10.1.3 source

10.1.2 10.1.3

12

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Agenda

• Basic Facts

• Oracle BPEL Process Manager API• Deployment

• Dehydration Store Management• High Availability and Clustering

• Process Recovery• Miscellaneous

Page 7: Bpel Admin Webinar

7

13

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Use JNDI names consistently

• Example for database adapter:• Use database connection eis/DB/myConn in your

application• Set the connection factory in each environment for

that name:In dev, eis/DB/myConn points to dev databaseIn prod, eis/DB/myConn points to prod database

• Config file for DB Adapter:<HOME>\system\appserver\oc4j\j2ee\home\application-deployments\default\DbAdapter\oc4j-ra.xml

14

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Use JNDI names consistently

• Dev environment:

• Prod environment:

<oc4j-connector-factories><connector-factory location="eis/DB/myConn" connect or-name="Database Adapter">

<config-property name="driverClassName" value="orac le.jdbc.driver.OracleDriver"/><config-property name="connectionString" value="jdb c:oracle:thin:@localhost:1521:orcl"/><config-property name="userName" value="scott"/><config-property name="password" value="tiger"/>...

<oc4j-connector-factories><connector-factory location="eis/DB/myConn" connect or-name="Database Adapter">

<config-property name="driverClassName" value="orac le.jdbc.driver.OracleDriver"/><config-property name="connectionString" value="jdb c:oracle:thin:@prodhost:1521:prodDB"/><config-property name="userName" value="scottProd"/ ><config-property name="password" value="shhhSecret" />...

oc4j-ra.xml

oc4j-ra.xml

Page 8: Bpel Admin Webinar

8

15

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

The Deployment Challenge

• Multiple environments:• Dev• Test• QA• Prod

• Multiple files• bpel.xml

• Location of services• Runtime properties

• WSDL files for adapters• Connection information• File locations

16

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

The Deployment Challenge• bpel.xml

• Location of services• Runtime properties

<BPELSuitcase><BPELProcess id="OrderBooking" src="OrderBooking.bpe l">

<partnerLinkBindings><partnerLinkBinding name="CreditRatingService">

<property name="wsdlLocation">http://localhost:9700/orabpel/default/CreditRatingS ervice/CreditRatingService?wsdl

</property></partnerLinkBinding>

</partnerLinkBindings><configurations>

<property name="noAlterWSDL">true</property><property name="sensorLocation">sensors.xml</proper ty><property name="xpathValidation">true</property><property name="user">robin</property>

<configurations></BPELProcess>

</BPELSuitcase>

Dev: http://localhost:9700

Test: http://testhost:9700

Prod: http://prodhost:3115

These values may also change in

different environments

bpel.xml

Page 9: Bpel Admin Webinar

9

17

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

The Deployment Challenge• WSDL files for adapters

• Connection information• File locations

<operation name="Write"><jca:operation PhysicalDirectory="C:\Temp\output_dir ">...

• Could be a different directory in production• Could be a different platform (i.e. non-Windows)

18

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

The Deployment Challenge

• A BPEL application has many BPEL projects

• Each BPEL project has a bpel.xml file + many WSDL files

• Each bpel.xml file or WSDL file has many configuration properties

That’s a lot of configuration!

Page 10: Bpel Admin Webinar

10

19

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Deployment in 10.1.2

• Deploying from within JDeveloper is a "black box"

• Deploying from outside JDeveloper uses obant, a customized version of Ant

• Need two sets of bpel.xml + WSDL files:• One set for development• One set for deployment to other environments

20

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Deployment in 10.1.2Development version

• Configuration properties are hard-coded• Can be deployed from within JDeveloper

<BPELSuitcase><BPELProcess id="OrderBooking" src="OrderBooking.bpe l">

<partnerLinkBindings><partnerLinkBinding name="CreditRatingService">

<property name="wsdlLocation">http://localhost:9700/orabpel/default/CreditRatingS ervice?wsdl

</property></partnerLinkBinding>

</partnerLinkBindings></BPELProcess>

</BPELSuitcase> bpel.xml

Page 11: Bpel Admin Webinar

11

21

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Deployment in 10.1.2Deployment version

• Use tokens to make files generic• Use obant to replace tokens with actual value• Use different targets for different environments• Do this for bpel.xml + WSDL files• Cannot be used in a JDeveloper project

<BPELSuitcase><BPELProcess id="OrderBooking" src="OrderBooking.bpe l">

<partnerLinkBindings><partnerLinkBinding name="CreditRatingService">

<property name="wsdlLocation">${creditRatingServiceWsdlLocation}

</property></partnerLinkBinding>

</partnerLinkBindings></BPELProcess>

</BPELSuitcase> bpel.xml

22

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Deployment in 10.1.2

Example build.xml file (psuedocode):<project name="OrderBooking">

<property name="CreditRatingServiceQA" value="http://qahost:9700/orabpel/default/CreditRat ingService?wsdl">

<property name="CreditRatingServiceProd" value="http://bigserver:3115/orabpel/default/Credit RatingService?wsdl">

<target name="qa"><!-- Replace ${creditRatingServiceWsdlLocation} with ${CreditRatingServiceQA} -->...<deployProcess/>

</target>

<target name="prod"><!-- Replace ${creditRatingServiceWsdlLocation} with ${CreditRatingServiceProd} -->...<deployProcess/>

</target>

</project> build.xml

Page 12: Bpel Admin Webinar

12

23

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Deployment in 10.1.2

• Pros:• Simple but effective• Works for all properties• One build.xml file for all environments

• Cons• Requires two copies of each file bpel.xml and

WSDL file – and they must stay be synchronized• Configuration properties spread over bpel.xml and

WSDL files

• Not the only deployment method

24

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Deployment in 10.1.2

WsdlLocation & WsdlRuntimeLocation

• Only two options. What if you have three deployment environments?

<BPELSuitcase><BPELProcess id="OrderBooking" src="OrderBooking.bpe l">

<partnerLinkBindings><partnerLinkBinding name="CreditRatingService">

<property name="wsdlLocation">http://localhost:9700/orabpel/default/CreditRatingS ervice?wsdl

</property><property name="wsdlRuntimeLocation">

http://prodhost:9700/orabpel/default/CreditRatingSe rvice?wsdl</property>

</partnerLinkBinding></partnerLinkBindings>

</BPELProcess></BPELSuitcase> bpel.xml

Page 13: Bpel Admin Webinar

13

25

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Deployment in 10.1.2

String substitution

Only have support for:• server_url• domain_url• suitcase_url• suitcase_path

<BPELSuitcase><BPELProcess id="OrderBooking" src="OrderBooking.bpe l">

<partnerLinkBindings><partnerLinkBinding name="CreditRatingService">

<property name="wsdlLocation">http://$(server_url)/orabpel/default/CreditRatingSe rvice?wsdl

</property></partnerLinkBinding>

</partnerLinkBindings></BPELProcess>

</BPELSuitcase> bpel.xml

• Can't do other properties (e.g. for adapters)• Can't point to other hosts

26

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Deployment in 10.1.3

• Can consolidate all configuration properties in a BPEL project to bpel.xml

• Can effectively tokenize configuration properties for deployment to multiple environments

• Can use a single build.xml fordevelopment and deployment(for all developers and admins)

• Uses standard Ant

Page 14: Bpel Admin Webinar

14

27

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Deployment in 10.1.3

Properties in WSDL files can be parameterized in bpel.xml

<operation name="customer_out_queue_Dequeue"><jca:operation QueueName="RECEIVE_QUEUE">...

<operation name=" customer_out_queue_Dequeue "><jca:operation QueueName="$InputQueue">...

<activationAgents><activationAgent className="oracle.tip.adapter.fw.ag ent.jca.JCAActivationAgent"

partnerLink="InQueue"><property name="InputQueue">RECEIVE_QUEUE</property >

</activationAgent>...

Original

Parameterized

bpel.xml

28

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Deployment in 10.1.3

Properties in WSDL files can be parameterized in bpel.xml

<operation name="customer_out_queue_Dequeue"><jca:operation QueueName="RECEIVE_QUEUE">...

<operation name=" customer_out_queue_Dequeue "><jca:operation QueueName="$InputQueue">...

<activationAgents><activationAgent className="oracle.tip.adapter.fw.ag ent.jca.JCAActivationAgent"

partnerLink="InQueue"><property name="InputQueue">RECEIVE_QUEUE</property >

</activationAgent>...

Original

Parameterized

All configurationproperties nowcontained in a

single file!

Page 15: Bpel Admin Webinar

15

29

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Deployment in 10.1.3

Properties in bpel.xml can be changed or added by Ant using <customize>

<project name="OrderBooking">

<property name="CreditRatingServiceQA" value="http://qahost:9700/orabpel/default/CreditRat ingService?wsdl">

<target name="qa"><bpelc ...>

<customize><partnerLinkBinding name="CreditRatingService">

<property name="wsdlLocation">${CreditRatingService QA}</property></partnerLinkBinding>

</customize><bpelc/>

</target>

</project>

build.xml

<property name="wsdlLocation">http://localhost:9700/orabpel/default/CreditRatingS ervice?wsdl

</property> bpel.xml

30

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

An example with two targets:<project name="OrderBooking">

<property name="CreditRatingServiceQA" value="http://qahost:9700/orabpel/default/CreditRat ingService?wsdl">

<property name="CreditRatingServiceProd" value="http://bigserver:3115/orabpel/default/Credit RatingService?wsdl">

<target name="qa"><bpelc ...>

<customize><partnerLinkBinding name="CreditRatingService">

<property name="wsdlLocation">${CreditRatingService QA}</property></partnerLinkBinding>

</customize><bpelc/>

</target>

<target name="prod"><bpelc ...>

<customize><partnerLinkBinding name="CreditRatingService">

<property name="wsdlLocation">${CreditRatingService Prod}</property></partnerLinkBinding>

</customize><bpelc/>

</target>

</project> build.xml

Page 16: Bpel Admin Webinar

16

31

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Deployment in 10.1.3

Whether deploying from JDeveloper or externally, the same Ant scripts are used

build.xml

32

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Deployment in 10.1.3

• Single file for each project containing configurations

• Single build.xml for all development and deployments

• More options, more flexibility

Page 17: Bpel Admin Webinar

17

33

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

I can do this in 10.1.2 !?

• <customize> has been implemented in 10.1.2

• Done by Jim Clark, an Oracle Solutions Architect

• Unofficial, unsupported• See Goodies Bag for

details

34

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Agenda

• Basic Facts

• Oracle BPEL Process Manager API• Deployment

• Dehydration Store Management• High Availability and Clustering

• Process Recovery• Miscellaneous

Page 18: Bpel Admin Webinar

18

35

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Dehydration Store Tables

36

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Installation & Setup

• Install schema tables• BPEL_HOME\system\database\scripts

• Configure BPEL engine to point to database• Modify:

BPEL_HOME\system\appserver\oc4j\j2ee\home\config\data-sources.xml

• See Install Guide for details

• Database settings are tuned (e.g. for growth)• Optionally tweak storage settings. Examples:

• Partition tables• Store blobs separately

Page 19: Bpel Admin Webinar

19

37

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Dehydration Store• It only grows... You must manually archive and purge• Can be done via the API (fully supported)• Can be done directly in SQL (Not so supported)

• API can't archiving -- must be done in SQL• Schema definition can change at any time!

Process instances

Process variables

Incoming messages

Outgoing messages

Task information

38

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Purging

package bpel_dehydration as

cursor c_cube_instance isselect cikeyfrom cube_instancewhere state >= 5 && modify_date < p_older_than;

cursor c_invoke_message isselect message_guidfrom invoke_messagewhere state > 1 && receive_date < p_older_than;

cursor c_dlv_message isselect message_guidfrom dlv_messagewhere state > 1 && receive_date < p_older_than;

Continued on next slide...

Page 20: Bpel Admin Webinar

20

39

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Purgingprocedure purge_instances( p_older_than timestamp )begin

-- Delete all closed instancesfor r_cube_instance in c_cube_instanceloop

collaxa.delete_ci( r_cube_instance.cikey );end loop;

-- Purge all handled invoke_messagesfor r_invoke_message in c_invoke_messageloop

delete from invoke_message_binwhere message_guid = r_invoke_message.message_guid;

delete from invoke_messagewhere current of c_invoke_message;

end loop;

-- Purge all handled callback messagesfor r_dlv_message in c_dlv_messageloop

delete from dlv_message_binwhere message_guid = r_dlv_message.message_guid;

delete from dlv_messagewhere current of c_dlv_message;

end loop; end purge_instances;

end bpel_dehydration; BPEL_HOME\system\database\scripts\domain_oracle.ddl

40

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Purging

procedure delete_ci( p_cikey in integer )asbegin

-- Delete the cube instance first--delete from cube_instance where cikey = p_cikey;

-- Then cascade the delete to other tables with refe rences--delete from cube_scope where cikey = p_cikey;delete from work_item where cikey = p_cikey;delete from wi_exception where cikey = p_cikey;delete from document where cikey = p_cikey;delete from scope_activation where cikey = p_cikey;delete from dlv_subscription where cikey = p_cikey;delete from audit_trail where cikey = p_cikey;delete from audit_details where cikey = p_cikey;delete from sync_trail where cikey = p_cikey;delete from sync_store where cikey = p_cikey;collaxa.delete_txs( p_cikey );

end delete_ci;

procedure delete_txs(p_cikey in integer)as

cursor c_tx_superior isselect tx_idfrom tx_superiorwhere cikey = p_cikeyfor update;

begin-- Open the cursor and iterate-- through all the superiors.--for r_tx_superior in c_tx_superiorloop

-- Delete the inferiors--delete from tx_inferiorwhere tx_id = r_tx_superior.tx_id;

-- Delete the superior--delete from tx_superiorwhere current of c_tx_superior;

end loop;end delete_txs;

BPEL_HOME\system\database\scripts\domain_oracle.ddl

Page 21: Bpel Admin Webinar

21

41

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Archiving

• Create a procedure like purge_instancesthat archives, using the same cursor queries

• Replace all of the DELETEs with commands to archive

• For example:• Duplicate the BPEL schema• Replace all DELETEs with SQL to copy the rows to

the second schema• Now backup the second schema using normal

techniques• Purge from the real schema

42

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Using different criteriacursor c_cube_instance is

select cikeyfrom cube_instancewhere state >= 5 && modify_date < p_older_than;

cursor c_invoke_message isselect message_guidfrom invoke_messagewhere state > 1 && receive_date < p_older_than;

cursor c_dlv_message isselect message_guidfrom dlv_messagewhere state > 1 && receive_date < p_older_than;

STATE_INITIATED = 0STATE_OPEN_RUNNING = 1STATE_OPEN_SUSPENDED = 2STATE_OPEN_FAULTED = 3STATE_CLOSED_PENDING_CANCEL = 4STATE_CLOSED_COMPLETED = 5STATE_CLOSED_FAULTED = 6STATE_CLOSED_CANCELLED = 7STATE_CLOSED_ABORTED = 8STATE_CLOSED_STALE = 9

STATE_UNRESOLVED = 0STATE_RESOLVED = 1STATE_HANDLED = 2STATE_CANCELLED = 3

STATE_INACTIVE = 0STATE_OPEN_ACTIVE = 1STATE_OPEN_SUSPENDED = 2STATE_OPEN_PENDING_COMPLETE = 3STATE_OPEN_FAULTED = 4STATE_CLOSED_COMPLETED = 5STATE_CLOSED_FINALIZED = 6STATE_CLOSED_PENDING_CANCEL = 7STATE_CLOSED_CANCELLED = 8STATE_CLOSED_FAULTED = 9STATE_CLOSED_ABORTED = 10STATE_CLOSED_COMPENSATED = 11STATE_CLOSED_STALE = 12Activity state in table work_item

Page 22: Bpel Admin Webinar

22

43

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Using different criteria

• Use whichever criteria you like to select the rows

• Some examples:

select cikeyfrom cube_instance, domainwhere cube_instance.domain_ref = domain.domain_refand domain.domain_id = 'X' X is the name of the do mainand state = X X is the state (see previous slide)and modify_date < sysdate-X X is the number of day s of history and process_id = 'X'; X is the process name

44

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Using different criteria

• Apply your criteria to the queries:

• Affects both archiving and purging

cursor c_cube_instance isselect cikeyfrom cube_instancewhere state >= 5 && modify_date < p_older_than;

cursor c_invoke_message isselect message_guidfrom invoke_messagewhere state > 1 && receive_date < p_older_than;

cursor c_dlv_message isselect message_guidfrom dlv_messagewhere state > 1 && receive_date < p_older_than;

Page 23: Bpel Admin Webinar

23

45

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

I didn't get my space back!

• Tablespaces do not reclaim space unless you truncate or rebuild the table

• Oracle RDBMS 10g has shrinking tablespaces• Create new tablespace

create tablespace ts_orabpel datafile 'xxxxxxxx' size 100M segment space management auto;

• Move tables to new tablespace using "alter table move" statement

• Configure tables for auto segment managementalter table cube_scope enable row movement; alter table cube_scope shrink space compact; alter table cube_scope shrink space; alter table cube_scope disable row movement;

46

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Agenda

• Basic Facts

• Oracle BPEL Process Manager API• Deployment

• Dehydration Store Management• High Availability and Clustering

• Process Recovery• Miscellaneous

Page 24: Bpel Admin Webinar

24

47

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Remove Single Points of Failure

BPEL Server

Database(dehydration store)

48

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Database(dehydration store)

Remove Single Points of Failure

BPEL Server

Use multiple BPEL nodes• Stateless

BPEL Server

BPEL Server

Page 25: Bpel Admin Webinar

25

49

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Database(dehydration store)

Remove Single Points of Failure

BPEL Server

Each server is independent – needs coordination

BPEL Server

BPEL Server

50

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Database(dehydration store)

Remove Single Points of Failure

BPEL Server

Cluster the BPEL servers

BPEL Server

BPEL Server

Load

Bal

ance

r

Page 26: Bpel Admin Webinar

26

51

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Database(dehydration store)

Remove Single Points of Failure

BPEL Server

BPEL Server

BPEL ServerLo

ad B

alan

cer

Asynchronous service

52

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Database(dehydration store)

Remove Single Points of Failure

BPEL Server

BPEL Server

BPEL Server

Load

Bal

ance

r

Asynchronous service

Set callback to load balancer

Page 27: Bpel Admin Webinar

27

53

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

RAC

Remove Single Points of Failure

BPEL Server

Database(dehydration store)

BPEL Server

BPEL ServerLo

ad B

alan

cer

Cluster the database

54

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Clustering BPEL servers

1. Configure all BPEL servers to point same dehydration store

BPEL_HOME\system\appserver\oc4j\j2ee\home\config\data-sources.xml

2. Configure load balancer to be aware of BPEL servers

3. Set soapServerUrl and soapCallbackUrl to load balancer address

• Use BPEL Admin Console, or• BPEL_HOME\system\config\collaxa-config.xml• (Screenshot on next slide)

Page 28: Bpel Admin Webinar

28

55

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Clustering BPEL servers

56

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Configuring BPEL for RAC1. Install mandatory patches:

• 4869010 for OC4J• 5030051 for BPEL server• 5149866 for DB Adapter

2. Configure Fast Connection Failover on RAC DB Cluster

3. Configure OC4J data sources• ORACLE_HOME\j2ee\OC4J_BPEL\config\data-sources.xml

• Set class , connectionCachingEnabled , fastConnectionFailoverEnabled

• Example on next slide...

Page 29: Bpel Admin Webinar

29

57

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Configuring BPEL for RAC<data-source class="com.evermind.sql.ICCXADataSourc e"

name="BPELServerDataSource"location="jdbc/BPELServerDataSourceWorkflow"xa-location="BPELServerDataSource"ejb-location="jdbc/BPELServerDataSource"connection-driver="oracle.jdbc.OracleDriver"max-connections="50"min-connections="10"username="orabpel"password="orabpel"url="jdbc:oracle:thin:@(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = stahx13-vip)(POR T = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = stahx14-vip)(POR T = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = stahx15-vip)(POR T = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = stahx16-vip)(POR T = 1521))(LOAD_BALANCE = on)(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = quail)))">

<property name="connectionCachingEnabled" value="tr ue"/><property name="fastConnectionFailoverEnabled" valu e="true"/><property name="cacheName" value="cache1"/><property name="inactivityTimeout" value="60"/><property name="minLimit" value="10"/><property name="maxLimit" value="50"/>

</data-source> data-sources.xml

RAC nodes

58

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Configuring BPEL for RAC4. For DB Adapter, configure resource adapter

• Set the followinguserName=""

password=""

usesExternalConnectionPooling="true"

usesExternalTransactionController="true"

5. In BPEL PM Admin Console, set fatalConnectionMaxRetry

• The maximum number of times a fatal connection error can be retried before failing.

• Defaults to 2

Page 30: Bpel Admin Webinar

30

59

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Deploying to a cluster

10.1.2• Deployment information is kept on each node• Can only deploy locally• Deploy on each host, or deploy to one node and

manually copy Jar file to other hosts

10.1.3• Deployment information is kept in the dehydration

store• Can deploy remotely• Deploy to any BPEL server, automatically deployed to

database and replicated to other nodes

60

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Agenda

• Basic Facts

• Oracle BPEL Process Manager API• Deployment

• Dehydration Store Management• High Availability

• Process Recovery and Clustering• Miscellaneous

Page 31: Bpel Admin Webinar

31

61

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Process Recovery

• Need to recover process when things go wrong

• Examples:• Host dies• BPEL engine fails• Timeouts from services taking too long• Timeouts from too many messages

62

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Process Recovery

• Restarting a BPEL server will automatically start recovering processes

• Recover processes manually using BPEL Admin Console

• Can automate recovery using the Java API• May add an auto-recovery agent in release 11

Page 32: Bpel Admin Webinar

32

63

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

64

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Page 33: Bpel Admin Webinar

33

65

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Timeouts

• Occur when time between last dehydration and now is too large. For example:• Call a synchronous service that takes too long• Too many messages come in and can't be processed in time

• Default is 60 seconds• Set in server.xml:

BPEL_HOME\system\appserver\oc4j\j2ee\home\config (dev install)

AS_HOME\j2ee\OC4J_BPEL\config (mid-tier install)

• Look for:<transaction-config timeout="60000" />

66

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Timeouts

When does dehydration occur?

• Before a receive activity (but not the initial one!)

• Before a wait activity

• Before an onMessage , or pick (extended onMessage) activity

• When using checkPoint() within a bpelx:exec activity

Page 34: Bpel Admin Webinar

34

67

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Agenda

• Basic Facts

• Oracle BPEL Process Manager API• Deployment

• Dehydration Store Management• High Availability and Clustering

• Process Recovery• Miscellaneous

68

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Tree Finder

Page 35: Bpel Admin Webinar

35

69

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Tree Finder

70

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Miscellaneous

Stany’s JMX Monitoring• Opensource JMX layer• Integrate with consoles supporting JMX

• JConsole, Tivoli, HP OpenView

• Monitor for stale instances• Automatically clean stale instances• Send email alerts• Currently tested on JBoss• http://sourceforge.net/projects/jaisy-obpel-itf

Page 36: Bpel Admin Webinar

36

71

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Miscellaneous

Stany’s JMX Monitoring

J2EE Application Server(WebLogic, Oracle AS, JBoss,

WebSphere)

BPEL Console client

Core BPEL Engine

Interfaces

Web Service

Oracle DB

BPEL Process Manager

JMX clients

BPEL

RMIJaisy-ORABPEL Interface

Interfaces

RMI

JMX

RMI

JConsoleMX4J Http

TIVOLIHP Open View

Shell scripts...

SQL Clients

JMX

SQL

BPEL Console Server

Interfaces

HTTPHTTP

Internet Explorer

...

Architecture

72

This presentation is for informational purposes only and may not be incorporated into a contract or agreement

Q & A+

Feedback