Disabling Skip Locking Skip locking has been available on Oracle Database

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. Oracle JCA Adapter for Database 9-39

9.3.10 detectOmissions Feature

The following are the features of the detectOmission feature: Available Since Release 10.1.3 Configurable Yes Default Value Design Time: true, unless explicitly set to false Use Case Users may pass incomplete or partial XML to a merge, update, or insert, and see that every column they left unspecified in XML is set to null in the database. It allows DBAdapter merge, insert, or update to differentiate between null value and the absence of a value omission in XML documents. On a case by case basis, it determines which information in XML is meaningful and which is not. In this way XML is seen as a partial representation of a database row, as opposed to a complete representation. The following table lists examples for null values, and values that can be omitted. A value considered omitted is omitted from UPDATE or INSERT SQL. For an update operation, existing meaningful values on the database are not overwritten. For an insert operation, the default value on the database is used, as no explicit value is provided in the SQL string. A DBAdapter receive is not able to produce XML with omissions, and makes use of xsi:nil=true. If you are unable to produce input XML with xsi:nil=true, or are concerned about the difference between director and directordirector, then it is best to set DetectOmissions=false in the JCA file. Element Type Omission Null Column directordirector director -- director…director -- director xsi:nil=true 1-1 -- dept … dept -- dept xsi:nil=true 1-M -- empCollection… empCollection -- empCollection empCollection empty Note: The 1-1 representation dept denotes an empty department object and should not be used.For 1-M, empCollection actually means a collection of 0 elements and is considered a meaningful value.For columns, directordirector is not considered an omission in cases where it represents an empty string.