bpel admin webinar
TRANSCRIPT
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
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:
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
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
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
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
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
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
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!
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
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
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
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
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!
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
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
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
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
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...
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
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
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;
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
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
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
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
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)
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...
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
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
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
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
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
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
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
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