Dispatcher Engine Threads BPEL Threading Model

Oracle BPEL Process Manager Performance Tuning 13-7

13.3.2.1 idempotent

An idempotent activity is an activity that can be retried for example, an assign activity or an invoke activity. Oracle BPEL Server saves the instance after a nonidempotent activity. This property is applicable to both durable and transient processes. Values: This property has the following values: ■ False: Activity is dehydrated immediately after execution and recorded in the dehydration store. When idempotent is set to False, it provides better failover protection, but may impact performance if the BPEL process accesses the dehydration store frequently. ■ True default: If Oracle BPEL Server fails, it performs the activity again after restarting. This is because the server does not dehydrate immediately after the invoke and no record exists that the activity executed. Some examples of where this property can be set to True are: read-only services for example, CreditRatingService or local EJBWSIF invocations that share the instances transaction.

13.3.2.2 nonBlockingInvoke

By default, Oracle BPEL Process Manager executes in a single thread, executing the branches sequentially instead of in parallel. When this property is set to True, the process manager creates a new thread to perform each branchs invoke activity in parallel. This property is applicable to both durable and transient processes. Consider setting this property to True if you have invoke activities in multiple flow or flow n branches. This is especially effective if the parallel invoke activities are two-way, but some benefits can be realized for parallel one-way invokes as well. Values: This property has the following values: ■ True: Oracle BPEL Server spawns a new thread to execute the invocation. ■ False default: Oracle BPEL Server executes the invoke activity in the single process thread.

13.3.2.3 validateXML

Enables message boundary validation. Note that additional validation can impact performance by consuming extra CPU and memory resources. Values: ■ True: When set to True the engine validates the XML message against the XML schema during receive and invoke for this partner link. If the XML message is invalid then bpelx:invalidVariables run time BPEL Fault is thrown. This overrides the domain level validateXML property. ■ False default: Disables XML validation.

13.4 Tables Impacted By Instance Data Growth

Instance data occupies space in Oracle BPEL Process Manager schema tables. Data growth from auditing and dehydration can have a significant impact on database performance and throughput. See Section 13.2.2, Audit Level for audit configuration and Section 13.3.1.1, inMemoryOptimization for dehydration configuration. The