This document was uploaded by user and they confirmed that they have the permission to share
it. If you are author or own the copyright of this book, please report to us by using this DMCA
report form. Report DMCA
Overview
Download & View Oracle Bpel Process Manger Performance Tuning-1 as PDF for free.
Overview Process Level Performance Setting Domain Level Performance Setting Tuning OC4J for BPEL Server Tuning JVM for BPEL Server Tuning Dehydration Database for BPEL Server Takeaways
Copyright Tushar Jain, 2008
-2-
Overview
Performance tuning is done at two levels
Process Types
Domain Level Process Level Transient processes Durable processes
Invocation Types
One-way invocation Two-way invocation
Copyright Tushar Jain, 2008
-3-
Overview contd…
Invocation Types Use
One-Way Invocation
Two-Way Invocation
WSDL file definition
Variable declarations in BPEL activities
...
Through-delivery service
The request is saved in the delivery service. The caller thread does not block until the message is delivered to the targeted instance.
The request is delivered into Oracle BPEL Server and the targeted BPEL instance. The caller thread is blocked until the response is ready.
Copyright Tushar Jain, 2008
-4-
Overview contd…
Idempotent Activity
An activity that can be retried (e.g. an assign activity or an invoke activity). Oracle BPEL Server saves the instance after a nonidempotent activity.
In-Flight Database Storage
JTA Transactions for Two-way Invocations
For two-way invocations, if the process being called is a transient process, Oracle BPEL Server honors the caller's Java Transaction API (JTA) transaction. If the process being called is a durable process, meaning an in-flight database save can be occurring, Oracle BPEL Server creates a new transaction.
Copyright Tushar Jain, 2008
-5-
Overview contd…
BPEL Threading Model
Threading and Connection Pool Relationships
Copyright Tushar Jain, 2008
-6-
Process Level Performance Settings
Process level performance properties are set in the bpel.xml file. After modifying the settings the process must be redeployed for the new settings to take effect. Can also set these properties in the Deployment Descriptor Properties window of Oracle JDeveloper
Domain level performance properties are set in the SOA_Oracle_Home\bpel\domains\domain_name\confi g\domain.xml file. Modify these from Oracle BPEL Control under Manage BPEL Domain Configuration. Oracle BPEL Control checks the existing settings and any new settings entered, and validates them without requiring a restart. Can also set these properties directly but it requires BPEL Server restart
Copyright Tushar Jain, 2008
-9-
Domain Level Performance Settings contd…
Properties which have no impact on performance tuning
auditDetailThreshold auditLevel deliveryPersistPolicy - Do Not change from default. By Oracle dspAgentDelay dspInvokeAllocFactor dspMaxRequestDepth dspMaxThreads dspMinThreads expirationMaxRetry idempotentThreshold instanceKeyBlockSize instCacheHighWatermark - If you don’t understand JVM issues, do not change instCacheLowWatermark - If you don’t understand JVM issues, do not change instCachePolicy invokerQueueConnectionPoolMinSize largeDocumentThreshold minBPELWait optCacheOn optIdempotentRouting - Do Not change from default. By Oracle optSoapShortcut - Do Not change from default. By Oracle processCheckSecs relaxBpelAssignRules - Do Not change. It is depricated. By Oracle slowPerfThreshold statsLastN syncMaxWaitTime uddiLocation - Miniscule effect on performanance validateXML workerQueueConnectionPoolMinSize
Copyright Tushar Jain, 2008
- 11 -
Tuning OC4J for BPEL Server
Tuning JTA Transaction Timeout for Oracle BPEL Process Manager Oracle BPEL Server EJB Configuration
WorkerBean InvokerBean
Configuring Data Sources for Oracle BPEL
Copyright Tushar Jain, 2008
- 12 -
Tuning OC4J for BPEL Server contd…
Tuning JTA Transaction Timeout for Oracle BPEL Process Manager
BPEL Server uses JTA. The transaction timeout value is set by default to 60000 milliseconds in the transaction-manager.xml file. The location of this file depends on the method by which you installed Oracle BPEL Process Manager: • •
Transaction rollback errors due to timeouts, especially when BPEL Server is under stress. The timeout can happen for many reasons: • •
For Oracle Application Server SOA installations, the file is located in SOA_Oracle_Home\j2ee\home\config. For Oracle BPEL Process Manager installations, the file is located in SOA_Oracle_Home\bpel\system\appserver\oc4j\j2ee\home\config.
Insufficient resources (e.g., not enough database connections in the connection pool, the server thread waits for 60 seconds and displays a timeout error, and so on). Large document manipulation (e.g., database writes of very large documents can take longer than 60 seconds).
Change this value according to your process. The following example sets the timeout to 120 seconds: • •
If your process invokes partners that take longer than the specified timeout threshold, call them using a one-way request or set the nonBlockingInvoke partner link property to true in the bpel.xml deployment descriptor file.
Copyright Tushar Jain, 2008
- 13 -
Tuning OC4J for BPEL Server contd…
Oracle BPEL Server EJB Configuration
To increase performance, Oracle recommends removing the max-instances attribute for all of BPEL Server's EJBs in the orion-ejb-jar.xml file. This enables the application server to allocate more resources to heavily-used beans For the BPEL Process Manager for OracleAS Middle Tier installation type, this file is located in SOA_Oracle_Home\j2ee\home\applicationdeployments\orabpel\ejb_ob_engine.
Copyright Tushar Jain, 2008
- 14 -
Tuning OC4J for BPEL Server contd…
Oracle BPEL Server EJB Configuration
WorkerBean •
•
Oracle BPEL Server uses an MDB called WorkerBean to perform processing. so, it is important to allocate enough threads to this MDB. Otherwise, resource utilization is not optimal. The following code from the orion-ejb-jar.xml file shows an allocation of 80 threads. <message-driven-deployment name="WorkerBean" destinationlocation="jms/collaxa/BPELWorkerQueue" connection-factorylocation="jms/collaxa/BPELWorkerQueueFactory" listener-threads=“80" mininstances="100"> <ejb-ref-mapping name="ejb/local/DispatcherLocalBean" /> .. ..
Copyright Tushar Jain, 2008
- 15 -
Tuning OC4J for BPEL Server contd…
Oracle BPEL Server EJB Configuration
InvokerBean •
•
The invoker bean is used only for nonblocking invoke activities. If you set some invokes to be nonblocking, increase the number of threads allocated to the InvokerBean. The following orion-ejb-jar.xml code shows an allocation of 40 threads.
The sum of the InvokerBean and WorkerBean threads must be greater than or equal to the value specified for the dspMaxThreads domain property in BPEL Control under Manage BPEL Domain Configuration. If multiple domains configured , add the dspMaxThreads property for all domains and compare that sum to the MDB total thread count.
Copyright Tushar Jain, 2008
- 16 -
Tuning OC4J for BPEL Server contd…
Configuring Data Sources for BPEL Server
BPEL Server obtains database connections using an application server JTA data source. BPEL Server by default is configured to use the Oracle Database Lite dehydration store. For stress testing and production, Oracle recommends that use Oracle Database 10g. Oracle Database Lite packaged with the default installation to ease the initial developer experience. For the Oracle BPEL Process Manager for OracleAS Middle Tier installation type, the data source entry is located in the SOA_Oracle_Home\j2ee\home\config\data-sources.xml file. Be aware of the following issues when configuring the BPEL Server data source entry.. • •
When configuring the data source, ensure that the connection pool has enough free connections to serve Oracle BPEL Server. The connection pool size must be greater than or equal to the sum of the dspMaxThreads property value in BPEL Control. If you have configured multiple domains, add all dspMaxThreads property values and compare that value with the data source's max-connections value. The default max-connections value is unlimited.
For Oracle Database 10g, the data source must also use the thin driver. For the Oracle9i Database, Oracle Call Interface (OCI) performs slightly better. When database persistence is enabled, BPEL Server generally performs better with JDBC statement caching enabled using the num-cached-statements attribute. Statement caching eliminates overhead due to repeated cursor creation and repeated statement parsing and creation. Statement caching also reduces the overhead of communication between the application server and the database server.
Copyright Tushar Jain, 2008
- 17 -
Tuning JVM for BPEL Server
JVM parameters can have an impact BPEL Server performance. The major factors that impact performance relate to the heap size. The heap size controls the amount of memory the JVM uses. If your BPEL process instance runs on a dedicated host, set the heap size value as high as possible. Another important heap configuration is the garbage collector's generational settings. The garbage collector optimizes collection by classifying objects by how long they live. Most BPEL Server objects are short-lived; thus they live in the Eden space. Oracle recommends sizing the Eden space to be 60 to 70 percent of the total heap size. The JVM -Xmn setting startup option sets an explicit value for the Eden space size. Do the following to set this option:
Calculate the 60-70 percent value, based on the specified maximum heap size. Use the calculated value to set the JVM -Xmn command line parameter.
Take the following steps to change JVM command line options:
Navigate to the Home page for the OC4J instance. Click Administration. If necessary, expand the Properties section of the table by clicking the Expand icon. Then, click the Go to Task icon in the Server Properties row. In the Command Line Options area, modify or change the appropriate command line options in the Options table. Click Apply. Navigate to the Cluster Topology page, select the OC4J instance that you modified, and click Restart. On the Confirmation page, click Yes.
Copyright Tushar Jain, 2008
- 18 -
Tuning Dehydration Database for BPEL Server
BPEL Server performance is related to the dehydration store's capacity. Oracle recommends the following:
Parameter Name
Moving the redo logs into a separate RAID 1+0 disk Increasing the size of each redo log file to a large value (for example, 1 GB) Creating a separate database tablespace for Oracle BPEL Server
Database Parameters Impacting Oracle BPEL Process Manager Performance
Copyright Tushar Jain, 2008
- 19 -
Sample Value
LOG_BUFFER
1048576
SHARED_POOL_SIZE
400M
JOB_QUEUE_PROCESSES
1
DB_CACHE_SIZE
1000M
DB_FILE_MULTIBLOCK_READ_COUNT
8
UNDO_RETENTION
0
PROCESSES
300
SESSION_CACHED_CURSORS
100
Takeaways
BPEL Server can be tuned at two levels
Apart from BPEL Server following also play role in performance tuning
Domain Level Process Level
Application Server Dehydration Database JVM
Hardware and Network assets have their own say in performance tuning