Tuning Process Cubes Tuning Process Analytics
16.2.6 Reduce the Number of Return Query Columns
When using the queryTask service, consider reducing the number of query columns to improve the SQL time. Also, try to use the common columns as they are most likely indexed and the SQL can execute faster. For example, in the following queryTasks method, only the TASKNUMBER and TITLE columns are returned: List queryColumns = new ArrayList; queryColumns.addTASKNUMBER; queryColumns.addTITLE; ... List tasks = querySvc.queryTasksctx, null, ITaskQueryService.AssignmentFilter.MY, null, pred, null, startRow, endRow;16.2.7 Use the Aggregate API for Charting Task Statistics
Sometimes it is necessary to display charts or statistics to summarize task information. Rather than fetching all the tasks using the query API, and computing the statistics at the client layer, consider using the new aggregate APIs to compute the statistics at the database level. For example, the following call illustrates the use of the API to get summarized statistics based on state for tasks assigned to a user: List taskCounts = querySvc.queryAggregatedTasksctx, Column.getColumnWFTaskConstants.STATE_COLUMN, ITaskQueryService.AssignmentFilter.MY, keyWordFilter, filterPredicate, false, Oracle Human Workflow Performance Tuning 16-5 false;16.2.8 Use the Count API Methods for Counting the Number of Tasks
Sometimes it is only necessary to count how many tasks exist that match certain criteria. Rather than calling the queryTasks API method, and determining the size of the returned list, call the countTasks API method, which returns only the number of matching tasks. The performance impact of returning a count of tasks is much lower than returning a list of task objects. For example, the following call illustrates the use of the API to get the total number of tasks assigned to a user: int numberOfTasks = querySvc.countTasksctx, ITaskQueryService.AssignmentFilter.MY, keyWordFilter, filterPredicate;16.2.9 Create Indexes On Demand for Flexfields
The workflow schema table WFTASK contains several flexfield attribute columns that can be used for storing task payload values in the workflow schema. Because there are numerous columns, and their use is optional, the installed schema does not contain indexes for these columns. In certain use-cases, for example, where certain mapped flexfield columns are frequently used in query predicates, performance can be improved if you create indexes on these columns. For example, to create an index on the TEXTATTRIBUTE1 column, the following SQL command should be run: create index WFTASKTEXTATTRIBUTE1_I on WFTASKTEXTATTRIBUTE1;16.2.10 Use the doesTaskExist Method
Sometimes it is necessary to check whether any tasks exist that match particular query criteria. Rather than calling the countTasks method, and checking if the number returned is zero, consider using doesTaskExist. The doesTaskExist method performs an optimized query that simply checks if any rows exist that match the specified criteria. This method may achieve better results than calling the countTasks method. For example, the following call illustrates the use of the API method to determine if a user owns any task instances: boolean userOwnsTask = querySvc.doesTaskExistctx, ITaskQueryService.AssignmentFilter.OWNER,null,null;16.3 Improving Server Performance
Server performance essentially determines the scalability of the system under heavily loaded conditions. Section 16.2.1, Minimize Client Response Time lists several ways in which client response times can be minimized by fetching the right of amount of information and reducing the potential performance impact associated with querying. Note: The exact indexes required depend on the flexfield attribute columns being used, and the nature of the queries being executed. After creating the indexes, the statistics for the WFTASK table should be re-computed and flushed. 16-6 Oracle Fusion Middleware Performance and Tuning Guide These techniques also reduce the database and service logic performance impacts at the server and can improve server performance. In addition, a few other configuration changes can be made to improve server performance: ■ Archive Completed Instances Periodically ■ Select the Appropriate Workflow Callback Functionality ■ Minimize Performance Impacts from Notification ■ Deploy Clustered Nodes16.3.1 Archive Completed Instances Periodically
The database scalability of a system is largely dependent on the amount of data in the system. Since business processes and workflows are temporal in nature, once they are processed, they are not queried frequently. Having numerous completed instances in the system can slow the system. Consider using an archival scheme to periodically move completed instances to another system that can be used to query historical data. Archival should be done carefully to avoid orphan task instances.16.3.2 Select the Appropriate Workflow Callback Functionality
The workflow callback functionality can be used to query or update external systems after any significant workflow event, such as assignment or completion of task. While this functionality is very useful, it has to be implemented correctly to avoid impacting performance. When performance is critical, ensure that there are sufficient resources to update the external system after the task is completed instead of after every workflow event. For example, instead of using a callback, the service can be invoked once after the completion of the task. If a callback cannot be avoided, then consider using a Java callback instead of a BPEL callback. Java callbacks do not have the performance impact associated with a BPEL callback since the callback method is executed in the same thread. In contrast, a BPEL callback may impact performance when sending a message to the BPEL engine, which in turn must be correlated so that it is delivered to the correct process instance. The workflow service has to be called by the BPEL engine after the invocation of the service.16.3.3 Minimize Performance Impacts from Notification
Notifications are useful for alerting users that they have a task to execute. In environments where most approvals happen through email, actionable notifications are especially useful. This also implies that there is not much load in terms of worklist usage. However if most users interact through the Worklist, and notifications serve a secondary purpose, then notifications should be used judiciously. Consider minimizing the notification to just alert a user when a task is assigned instead of sending out notifications for each workflow event. Also, if the task content is also mailed in the notification there may be an impact to performance. To minimize the impact, consider making the notifications secure in which case only a link to the task is sent in the notification and not the task content itself.16.3.4 Deploy Clustered Nodes
All workflow instances and state information are stored in the dehydration database. Workflow services are stateless which means they can be used concurrently on a cluster of nodes. When performance is critical and a highly scalable system is needed, a clustered environment can be used for supporting workflow. For more informationParts
» Oracle Fusion Middleware Online Documentation Library
» Document Scope and Audience Guide to this Document
» Related Documentation Oracle Fusion Middleware Online Documentation Library
» About Identifying Top Performance Areas
» Ensure the Hardware Resources are Sufficient
» Selecting a Garbage Collection Scheme
» Disabling Explicit Garbage Collection
» Logging Low Memory Conditions
» Monitoring and Profiling the JVM
» Initialization Parameters for Oracle 10g
» Initialization Parameters for Oracle 11g
» Tuning Redo Logs Location and Sizing
» Automatic Segment-Space Management ASSM
» Reuse Database Connections Oracle Fusion Middleware Online Documentation Library
» Enable Data Source Statement Caching
» MaxClientsThreadsPerChild HTTP Connection Limits
» Setting the Maximum Number of Connections for Data Sources Tuning the WebLogic Sever Thread Pool
» Tuning Oracle WebCenter Concurrency
» Tuning BPEL Concurrency Control Concurrency
» Set Logging Levels Oracle Fusion Middleware Online Documentation Library
» About Oracle Fusion Middleware Performance Planning
» Define Operational Requirements Identify Performance Goals
» Understand User Expectations Define Your Performance Objectives
» Conduct Performance Evaluations Define Your Performance Objectives
» Design Applications for Performance and Scalability
» Monitor and Measure Your Performance Metrics
» Measuring Your Performance Metrics
» Viewing Performance Metrics Using Fusion Middleware Control
» Oracle WebLogic Server Administration Console
» WebLogic Diagnostics Framework WLDF
» Viewing Performance Metrics Using the Spy Servlet
» Oracle Process Manager and Notification Server Oracle Enterprise Manager 11g Grid Control
» Native Operating System Performance Commands Network Performance Monitoring Tools
» How Persistent Connections Can Reduce Httpd Process Availability
» Access Logging Oracle HTTP Server Logging Options
» Configuring the HostNameLookups Directive
» Error logging Oracle HTTP Server Logging Options
» Oracle HTTP Server SSL Caching
» SSL Application Level Data Encryption SSL Performance Recommendations
» Oracle HTTP Server Port Tunneling Performance Issues
» Analyze Static Versus Dynamic Requests
» Beware of a Single Data Point Yielding Misleading Results
» Beware of Having More Modules
» Monitoring Oracle HTTP Server
» DMS Nouns Common DMS Terms and Concepts
» DMS Sensors Common DMS Terms and Concepts
» DMS Availability Oracle Fusion Middleware Online Documentation Library
» DMS Architecture Overview Oracle Fusion Middleware Online Documentation Library
» Viewing Metrics Using the Spy Servlet
» Viewing metrics with JConsole
» Accessing DMS Metrics with WLDF
» DMS Execution Requests and Sub-Tasks
» DMS Execution Context Communication
» Adding and Editing Destinations
» Adding and Editing Event Routes
» Compound Operations Configuring the DMS Event System
» MBean Creator Destination HTTP Request Tracker Destination JRockit Flight Recorder Destination
» Understanding DMS Event Output
» Understanding DMS Event Actions
» DMS Best Practices Oracle Fusion Middleware Online Documentation Library
» About Oracle Metadata Services MDS
» Reclaim Disk Space Monitor the Database Performance
» Using Database Polling Interval for Change Detection
» Document Cache Tuning Cache Configuration
» Analyzing Performance Impact from Customization
» Understanding DMS metrics and Characteristics
» About Oracle ADF Oracle Fusion Middleware Online Documentation Library
» Oracle ADF Faces Configuration and Profiling
» Performance Considerations for ADF Faces
» Tuning ADF Faces Component Attributes
» Performance Considerations for Table and Tree Components
» Performance Considerations for autoSuggest
» Data Delivery - Lazy versus Immediate
» Performance Considerations for DVT Components
» Creating View Objects View Objects Tuning
» Configuring View Object Data Fetching
» Additional View Object Configurations
» Batch Processing ADF Server Performance
» General AM Pool Configurations
» AM Pool Sizing Configurations
» AM Pool Resource Cleanup Configurations
» ADFc: Region Usage ADF Server Performance
» Reusing Static Data ADF Server Performance
» Conditional Validations ADF Server Performance
» About Oracle TopLink and EclipseLink
» Entity Relationships Query Parameter Tuning
» Cache Refreshing Scenarios Cache Configuration Tuning
» Locking Modes Cache Configuration Tuning
» Coherence Integration Oracle Fusion Middleware Online Documentation Library
» Mapping and Descriptor Configurations
» Analyzing EclipseLink JPA Entity Performance
» Hardware Resources Optimizing Hardware Resources
» Configuring WebCache Memory Memory Configuration
» Network Bandwidth Optimizing Network Connections
» Network Connections Optimizing Network Connections
» Network-Related Parameters Optimizing Network Connections
» Optimizing Response Time Oracle Fusion Middleware Online Documentation Library
» Optimizing Performance with Oracle ADF
» About SOA Suite Configuration Properties
» Configuring Data Sources for SOA Weblogic Server Performance Tuning
» Modifying SOA Configuration Parameters JVM Tuning Parameters About Oracle Business Rules
» Use Java Beans Basic Tuning Considerations
» Assert Child Facts instead of Multiple Dereferences
» Avoid Side Affects in Rule Conditions
» Avoid Expensive Operations in Rule Conditions
» Consider Pattern Ordering Basic Tuning Considerations
» Consider the Ordering of Tests in Rule Conditions
» Use Functions Instead of AssertXPath and Supports XPath
» Dispatcher Invoke Threads BPEL Threading Model
» Dispatcher Engine Threads BPEL Threading Model
» Dispatcher System Threads BPEL Threading Model
» Dispatcher Maximum Request Depth
» Audit Level Basic Tuning Considerations
» AuditDetailThreshold Basic Tuning Considerations
» LargeDocumentThreshold Basic Tuning Considerations
» Validate XML Basic Tuning Considerations
» SyncMaxWaitTime Basic Tuning Considerations
» InstanceKeyBlockSize Basic Tuning Considerations
» Tables Impacted By Instance Data Growth
» About Oracle Mediator Oracle Fusion Middleware Online Documentation Library
» metricsLevel Basic Tuning Considerations
» Domain-Value Maps Basic Tuning Considerations
» Deferred Routing Rules Basic Tuning Considerations
» Resequencer Basic Tuning Considerations
» Audit Level LargeDocumentThreshold Basic Tuning Considerations
» Dispatcher Engine Threads Basic Tuning Considerations
» Dispatcher Invoke Threads Basic Tuning Considerations
» Process Measurement Tuning Process Analytics
» Tuning Process Cubes Tuning Process Analytics
» Minimize Client Response Time
» Choose the Right Workflow Service Client
» Narrow Qualifying Tasks Using Precise Filters
» Retrieve Subset of Qualifying Tasks Paging
» Fetch Only the Information That Is Needed for a Qualifying Task
» Reduce the Number of Return Query Columns Use the Aggregate API for Charting Task Statistics
» Use the Count API Methods for Counting the Number of Tasks
» Create Indexes On Demand for Flexfields
» Use the doesTaskExist Method
» Archive Completed Instances Periodically
» Select the Appropriate Workflow Callback Functionality
» Minimize Performance Impacts from Notification
» Deploy Clustered Nodes Improving Server Performance
» Use Workflow Reports to Monitor Progress
» Specify Escalation Rules Completing Workflows Faster
» Specify User and Group Rules for Automated Assignment
» Use Task Views to Prioritize Work
» Tuning Identity Provider Oracle Fusion Middleware Online Documentation Library
» Tuning the Database Oracle Fusion Middleware Online Documentation Library
» About Oracle Adapters Oracle Fusion Middleware Online Documentation Library
» Inbound Throttling Best Practices
» Outbound Throttling Best Practices
» Outbound Performance Best Practices
» JCA Adapter Basic Tuning Considerations
» Existence Checking Oracle JCA Adapter for Database Tuning
» adapter.jms.receive.threads Property
» Oracle Socket Adapter Tuning Oracle MQ Adapter Tuning
» Tune the Active Data Retrieval Interval
» Message Batching Enterprise Message Source Tuning
» About Oracle Business Activity Monitoring About Oracle User Messaging Services
» SMPP Driver Performance Tuning
» Email Driver Polling Frequency
» Database Tuning for Optimal Throughput
» MDS Cache Size Oracle Fusion Middleware Online Documentation Library
» Number of Threads Oracle Fusion Middleware Online Documentation Library
» JMS Multiple Out Queues Setting
» Design Time Considerations for Proxy Applications
» Design Considerations for XQuery Tuning
» About Oracle Internet Directory
» Introduction to Tuning Oracle Internet Directory
» Database Parameters Basic Tuning Considerations
» LDAP Server Attributes Basic Tuning Considerations
» Database Statistics Basic Tuning Considerations
» Replication or Oracle Directory Integration Platform Replication Server Configuration
» Garbage Collection Configuration Advanced Configurations
» Oracle Internet Directory with Oracle RAC Database
» Password Policies and Verifier Profiles
» Values for Configuring the Entry Cache
» Tuning Security Event Tracking
» Number of Entries to be Returned by a Search
» Timeout for Write Operations
» Bulk Load Operation Specific Use Cases
» Bulk Delete Operation Specific Use Cases
» High LDAP Write Operations Load
» Entry Cache Enabled Configuration
» Entry Cache Disabled Configuration.
» Optimizing Searches for Skewed Attributes
» Optimizing Performance of Complex Search Filters
» Updating Database Statistics by Using oidstats.sql
» Setting Performance-Related Replication Configuration Attributes
» Modifying Instance-Specific Attributes by Using Fusion Middleware Control
» Modifying Shared Attributes by Using Fusion Middleware Control
» Modifying Performance-Related Instance-Specific Configuration Entry Attributes
» About Oracle Virtual Directory Basic Tuning Considerations
» Database Adapters Advanced Tuning Configurations
» Join Adapters Advanced Tuning Configurations
» General Filter Tuning Advanced Tuning Configurations
» Load Balancer Local Store Adapter Tuning
» Cache Hit Logic Cache Plug-In Tuning
» Cache Plug-in Memory Management
» LDAP Listener Tuning Advanced Tuning Configurations
» Server Tuning Advanced Tuning Configurations
» Connection Pool Settings Connection Settings Federation Data Store Settings
» RDBMS Compression Database Tuning
» About Oracle Identity Federation Oracle HTTP Server Tuning
» SOAP Connections SAML Protocol Tuning
» XML Digital Signatures POST and Artifact Single Sign-On Profiles
» About Security Services Oracle Fusion Middleware Online Documentation Library
» OPSS PDP Service Tuning Parameters
» Policy Manager Oracle Web Services Security Tuning
» Configuring the Log Assertion to Record SOAP Messages
» Monitoring the Performance of Web Services
» Setting System Limit Setting JDBC Data Source
» Setting JRockit Virtual Machine JVM Arguments Using Content Compression to Reduce Downloads
» Setting HTTP Session Timeout Setting JSP Page Timeout
» Setting ADF Client State Token
» Setting ADF View State Compression
» Setting MDS Cache Size and Purge Rate Configuring Concurrency Management
» Tuning Performance of the Announcements Service
» Tuning Performance of the Discussions Service
» Tuning Performance of the Portlet Service
» Enabling Java Object Cache for WSRP Producers
» Suppressing Optimistic Rendering for WSRP Portlets
» Tuning Performance of Oracle PDK-Java Producers
» Setting ExcludedActionScopeRequestAttributes for Portlets
» Setting DefaultServedResourceRequiresWsrpRewrite for WSRP Portlets
» Setting DefaultProxiedResourceRequiresWsrpRewrite for WSRP Portlets
» Importing Consumer CSS Files in IFrame Portlets
» Configuring Portlet Timeout Tuning Portlet Configuration
» Tuning Performance of OmniPortlet
» Segregation of Network Traffic Segregation of Processes and Hardware Interrupt Handlers
» CPU Requirements Memory Requirements
Show more