Partition Field In a distributed scenario you will have polling instances on

Oracle JCA Adapter for Database 9-37 xmlns:xsi=http:www.w3.org2001XMLSchema-instance xsi:schemaLocation=http:java.sun.comxmlnsj2ee http:java.sun.comxmlnsj2eeconnector_1_5.xsd version=1.5 ... resourceadapter outbound-resourceadapter connection-definition ... config-property config-property-nameusesSkipLockingconfig-property-name config-property-typejava.lang.Booleanconfig-property-type config-property-valuefalseconfig-property-value config-property ... connection-definition ... outbound-resourceadapter resourceadapter connector For more information on how to configure connector-level properties, see: ■ Configuring the ra.xml File in the Oracle Fusion Middleware Programming Resource Adapters for Oracle WebLogic Server ■ Packaging and Deploying Resource Adapters in the Oracle Fusion Middleware Programming Resource Adapters for Oracle WebLogic Server

9.3.8.1.6 MarkReservedValue If you are using Logical Delete polling and you set

MarkReservedValue, skip locking will not be used. Formerly, the best practice for multiple Oracle Database Adapter process instances deployed to multiple Oracle BPEL Process Manager or Oracle Mediator nodes was essentially using LogicalDeletePollingStrategy or DeletePollingStrategy with a unique MarkReservedValue on each polling node, and setting MaxTransactionSize. However with the introduction of skip locking in this release, that approach has now been superseded. If you were using this approach previously, you can simply remove in db.jca or clear Logical Delete Page of wizard the MarkReservedValue, and you will automatically get skip locking. The benefits of using skip locking over a reserved value include: ■ Skip locking scales better in a cluster and under load. ■ All work is in one transaction as opposed to updatereserve, then commit, then select in a new transaction, so the risk of a non-recoverable situation in an HA environments is minimized. ■ No unique MarkReservedValue must be specified. For this to work you had to configure a complex variable like R{weblogic.Name-2}-{IP-2}-{instance}.

9.3.8.1.7 SequencingPollingStrategy Last Read or Last Updated This distributed approach

works with Delete or Logical Delete based polling strategies. The work of the sequencing polling based strategies cannot be distributed as records are initially processed in order. For example, the second row cannot be marked as processed ahead of the first setting last read ID to 2 means not just that 2 has been processed but 1 also. 9-38 Oracle Fusion Middleware Users Guide for Technology Adapters However, as the sequencing polling strategies are non-intrusive, requiring no post updates or deletes to the source tables, they are already extremely fast. Sequencing polling strategies should be used with a single node and with fan-out on a cluster. It is still safe to use in a cluster however, the select for update is instead applied on accessing the last read ID in the helper table.

9.3.8.2 Distributed Polling Second Best Practice: Tuning on a Single Node First

The next best practice for multiple Oracle Database Adapter process instances deployed to multiple Oracle BPEL PM or Mediator nodes is to tune on a single node first. For an Oracle Database Adapter intensive process, such as a database-database integration, performance can be improved by a factor 10 or 100 just by tuning on a single Java Virtual Machine JVM, scaling |NumberOfThreads|, and setting high values for MaxTransactionSize and MaxRaiseSize. As Section 9.3.8.1, Distributed Polling First Best Practice: SELECT FOR UPDATE SKIP LOCKED describes, there may be times where it is best to improve performance on a single node, and then optionally do fan-out to multiple nodes in a cluster. Relying on concurrency control features of the database such as locking can be great, but these are often designed more for preserving data integrity than for high performance scalability. Cases where it may be best to do polling on a single node in the cluster include using the non-intrusive Sequencing Polling strategy, polling large un-indexed tables, or using a non-Oracle back-end database that does not provide high concurrency locks like skip locks. You can also refer to Section 2.14, Singleton ActivePassive Inbound Endpoint Lifecycle Support Within Adapters . For the samples MultiTablesPerformance and DirectSQLPerformance that show tuning on a single node, access the Oracle SOA Sample Code site, and select the Adapters tab.

9.3.9 Performance Tuning

The Oracle Database Adapter is preconfigured with many performance optimizations. You can, however, make some changes to reduce the number of round trips to the database by implementing performance tuning. For information about performance tuning, see: ■ Oracle JCA Adapter for Database Tuning in the Oracle Fusion Middleware Performance and Tuning Guide ■ Inbound Database Adapter Tuning in the Oracle Fusion Middleware Performance and Tuning Guide Note: For Oracle Database Adapter with polling operation in a clustered environment, you must use the option of distributed polling by selecting the Distributed Polling check box in the Adapter Configuration Wizard.