MarkReservedValue If you are using Logical Delete polling and you set SequencingPollingStrategy Last Read or Last Updated This distributed approach

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. 9-40 Oracle Fusion Middleware Users Guide for Technology Adapters To treat all null values as omissions, check out the IgnoreNullsMerge sample, which comes with a custom TopLink plugin. The plugin works similar to this feature, but cannot detect subtleties between null and omission. To obtain the IgnoreNullsMerge sample code, access the Oracle SOA Sample Code site, and select the Adapters tab. When you are expecting an update, you can improve performance, by omitting 1-1 and 1-M relationships. Because the merge operation can skip considering the detail records completely. Alternatively, map only those columns that you are interested in, and create separate mappings for different invokes. If two updates should update two different sets of columns, create two separate partnernlinks. Performance By default, XML is not used as an input to the Oracle Database Adapter containing omissions. Until an XML with omissions is detected, there is no performance overhead. Once omissions are detected, a TopLink descriptor event listener is added. This event listener has some overhead, and every modifyRow about to become a SQLUpdate or SQLInsert must be iterated over, to check for omissions. Hence, every column value sent to the database is checked. If the input XML has mostly omissions, then the cost overhead should be more than compensated by sending fewer values to the database. Incompatible Interactions DirectSQL=true and DetectOmissions=true - DetectOmissions takes precedence. The following are some examples for incompatible interactions: ■ DetectOmissionsMerge ■ IgnoreNullsMerge ■ OptimizeMerge See the following for more information: You can also access the forums from Oracle Technology Network at ■ The Oracle BPEL Process Manager forum at http:forums.oracle.comforumsforum.jspa?forumID=212 ■ The TopLink forum at http:forums.oracle.comforumsforum.jspa?forumID=48 This site contains over 2,000 topics, such as implementing native sequencing, optimistic locking, and JTA-managed connection pools with TopLink http:www.oracle.comtechnology Note: For migrated old BPEL project, you must re-run the Database Adapter Wizard in order to regenerate the JCA file. When you do this, the DetectOmissions and OptimizeMerge options appear in the JCA file with default values as DetectOmissions=false and OptimizeMerge=false.