Specify User and Group Rules for Automated Assignment

17-4 Oracle Fusion Middleware Performance and Tuning Guide

17.3 Oracle JCA Adapter for Database Tuning

The Oracle Database Adapter is pre-configured with many performance optimizations. You can, however, make some changes to reduce the number of round trips to the database, as described in the following sections: ■ JCA Adapter Basic Tuning Considerations ■ Existence Checking

17.3.1 JCA Adapter Basic Tuning Considerations

Adapter performance is directly related to the number of round-trips to the database, and the network cost of each trip. If performance becomes an issue, and making modifications is appropriate for your deployment, consider tuning the following parameters: ■ Use Indexes Indexes can improve performance of selects, updates and deletes. Index all queried fields, such as the primary key and the MarkReadField of the LogicalDeletePollingStrategy, when polling. For MarkReadField specify a non-null MarkUnreadValue. Caution: An index on a column containing many nulls may revert to full table scans. ■ Disable OptimizeMerge The OptimizeMerge parameter allows the detection of XML elements for which no value was specified. The related columns are excluded from inserts and updates. Disabling this parameter generally improves performance, but there is one case where it could have a negative effect. If multiple rows are being passed in as a single XML, and each row has different columns set user entered with many optional fields, there is no benefit from batch writing, as each insert or update is different. inMemoryTranslatio n Binding Property reference name=PurchaseOrder Out interface.wsdl interface=.... binding.jca config=PurchaseOrd erOut_ftp.jca property name=inMemoryTrans lation type=xs:string many=false source=override= mayfalsepropert y reference Default: False This parameter is applicable only if UseStaging is False. If True, then the translation step occurs in-memory an in-memory byte array is created. If False, then the adapter creates an output stream to the target file FTP, FTPS, and SFTP included and allows the translator to translate and write directly to the stream. Defined in Binding property for reference in composite.xml. Note: The tuning considerations in this chapter are listed for example only. Tuning parameters are specific to each deployment. Review you current usage and performance issues to determine which tuning considerations can improve performance. Parameter Type Value Description Oracle Adapters Performance Tuning 17-5 ■ Increase MaxRaiseSize The MaxRaiseSize parameter indicates the maximum number of XML records that can be raised at a time to the BPEL engine. For example, if you set MaxRaiseSize = 10, then 10 database records are raised simultaneously. On an inbound read, for example, you can set MaxRaiseSize = 0 unbounded which means that if you read 1000 rows, you can create one XML with 1000 elements. These elements are passed through a single Oracle BPEL Process Manager instance. A merge on the outbound side can then take all 1000 in one group and write them all at once with batch writing. Use the MaxRaiseSize parameter for publishing large payloads. ■ Increase MaxTransactionSize This property controls the number of records processed per transaction by each thread. If set to a large value such as 1000, turning on the UseBatchDestroy option could have a negative impact on performance. Setting a large MaxTransactionSize and a small MaxRaiseSize could also have negative impact on performance. Consider maintaining up to a 10:1 ratio in a synchronous scenario. Ideally, you should consider increasing MaxRaiseSize until it is a 1:1 ratio. ■ Enable UseBatchDestroy This property controls how the processed records are updated ex: Deleted for DeletePollingStrategy, MarkedProcessed for LogicalDeleteStrategy. If set, only one updatedelete is executed for all the rows that are part of that transaction. The number of rows in a transaction is controlled by the MaxTransactionSize option. Note that this may not always offer an improvement because, by default, batch writing is used, which also ends up in a single round trip to the database. ■ Enable Batch Reading Batch reading of one-to-many and one-to-one relationships is on by default. You can also use joined reading for one-to-one relationships instead, which may offer a slight improvement. ■ Disable Delete Polling Strategy Avoid the delete polling strategy because it must individually delete each row. The sequencing polling strategy can destroy 1000 rows with a single update to a helper table. Note that a LogicalDelete is also better than Delete, as updates are typically faster than deletes. To maintain performance, however, ensure that you have indexed the table. If you have not indexed, you can keep the total number of rows small by using deletes. In some instances deletes may be faster as the cost of a full table scan is negligible. ■ Use Distributed Polling Distributed polling enables you to configure polling for scalability. For more information, see Scalability in Oracle Fusion Middleware Users Guide for Technology Adapters. ■ Use Synchronous Processes On BPEL you can configure Database Adapter processes to be synchronous. You can also create sequential routing rules in Mediator. This can improve throughput in database-to-database scenarios, as there is less instance processing impact. ■ Use Insert