Audit Level : The Audit Level property enables you to select the level of
information to be collected by the message tracking infrastructure. This information
is collected in the instance data store (database) associated with the SOA nfrastructure. Of ! "o composite instance tracking and payload tracking information is collected. "o logging is performed. Production! #omposite instance tracking is collected$ but the Oracle %ediator service engine does not collect payload details and the process service engine does not collect payload details for assign activities (payload details for other activities are collected). Development! &nables both composite instance tracking and payload detail tracking. 'owever$ this setting may impact performance. This level is useful largely for testing and debugging purposes. Composite Instance State: This option enables separate tracking of the running instances. however$ that enabling this option may impact performance during instance processing. Logging Level : The default logging level is ("OT)#ATO"(. )or stress testing and production environments$ consider using the lowest acceptable logging level$ such as (&**O*( or (+A*"",( SOA Settings: The dspInvokeThreads property speci-es the total number of threads allocated to process invocation dispatcher messages. nvocation dispatcher messages are generated for each payload received and are meant to instantiate a new instance. f the ma.ority of re/uests processed by the engine are instance invocations (as opposed to instance callbacks)$ greater performance may be achieved by increasing the number of invocation threads. 'igher thread counts may cause greater #01 utili2ation due to higher conte3t switching costs. The default value is 45 threads. Any value less than 6 thread is changed to the default. The dspEngineThreads property speci-es the total number of threads allocated to process engine dispatcher messages. &ngine dispatcher messages are generated whenever an activity must be processed asynchronously. f the ma.ority of processes deployed are durable with a large number of dehydration points (mid7process receive$ on%essage$ onAlarm$ and wait activities)$ greater performance may be achieved by increasing the number of engine threads. "ote that higher thread counts can cause greater #01 utili2ation due to higher conte3t switching costs. The default value is 85 threads. Any value less than 6 thread is changed to the default. The dspSystemThreads property speci-es the total number of threads allocated to process system dispatcher messages. System dispatcher messages are general clean7up tasks that are typically processed /uickly by the server (for e3ample$ releasing stateful message beans back to the pool). Typically$ only a small number of threads are re/uired to handle the number of system dispatch messages generated during run time. The default value is 2. The dspMaxRequestDepth property sets the ma3imum number of in7memory activities to process within the same re/uest. After processing an activity re/uest$ Oracle 90&L 0rocess %anager attempts to process as many subse/uent activities as possible without .eopardi2ing the validity of the re/uest. Once the activity processing chain has reached this depth$ the instance is dehydrated and the ne3t activity is performed in a separate transaction. f the re/uest depth is too large$ the total re/uest time can e3ceed the application server transaction time out limit.This process is applicable to durable processes. The default value is :55 activities. #omposite Level AuditLevel! Inherit nherits the audit level from infrastructure level. Of "o audit events (activity e3ecution information) are persisted and no logging is performed; this can result in a slight performance boost for processing instances. Minimal All events are logged; however$ no audit details (variable content) are logged. Error Logs only serious problems that re/uire immediate attention from the administrator and are not caused by a bug in the product. 1sing this level can help performance. Production All events are logged. The audit details for assign activities are not logged; the details for all other activities are logged. Development All events are logged; all audit details for all activities are logged. The oneWaDeliverPolic property controls database persistence of messages entering Oracle 90&L Server. 9y default$ incoming re/uests are saved in the delivery service database table dlv_message. These re/uests are later ac/uired by Oracle 90&L Server worker threads and delivered to the targeted 90&L process. This property persists delivery messages and is applicable to durable processes. f you set the oneWayDeliveryPolicy property to async.cache and your system fails$ you may lose messages. n addition$ the system can become overloaded (messages become backlogged in the scheduled /ueue) and you may receiveout7of7 memory errors. One7way invocation messages are stored in the delivery cache until delivered. I! the rate at "hich one#"a messages arrive is much higher than the rate at "hich Oracle $PEL Server delivers them% or i! the server !ails% messages ma &e lost' (alues: asnc'persist )De!ault* <elivery messages are persisted in the database. +ith this setting$ reliability is obtained with some performance impact on the database. n some cases$ overall system performance can be impacted. asnc'cache ncoming delivery messages are kept only in the in7memory cache. f performance is preferred over reliability$ this setting should be considered. snc <irects Oracle 90&L Server to bypass the scheduling of messages in the invoke /ueue$ and invokes the 90&L instance synchronously. n some cases this setting can improve database performance. The SncMa+Wait,ime property sets the ma3imum time the process result receiver waits for a result before returning. *esults from asynchronous 90&L processes are retrieved synchronously by a receiver that waits for a result from Oracle 90&L Server. This property is applicable to transient processes. The default value is => seconds. The validate-ML property validates incoming and outgoing ?%L documents. f set to True$ the Oracle 90&L 0rocess %anager applies schema validation for incoming and outgoing ?%L documents. The default value is )alse. LargeDocument,hreshold property sets the large ?%L document persistence threshold. This is the ma3imum si2e (in kilobytes) of a 90&L variable before it is stored in a separate location from the rest of the instance scope data. The default value is 65555 (655 kilobytes). $PEL Properties Set Inside a Composite inMemorOptimi.ation: This property indicates to Oracle 90&L Server that this process is a transient process and dehydration of the instance is not re/uired. +hen set to True$ the completion0ersist0olicy is used to determine persistence behavior. This property can only be set to True for transient processes or processes that do not contain any dehydration points such as receive$ wait$ on%essage and onAlarm activities. The in%emoryOptimi2ation property is set at the 90&L component level. (alues: )alse (default)! instances are persisted completely and recorded in the dehydration store database. True! The completion0ersist policy is used to determine persistence behavior completionPersistPolic : This property con-gures how the instance data is saved. t can only be set at the 90&L component level. The completion0ersist0olicy property can only be used when in%emoryOptimi2ation is set to be True (transient processes). "ote that this parameter may a@ect database growth and throughput (due to reduced AO). (alue Description On )de!ault* The completed instance is saved normally De!erred The completed instance is saved$ but with a di@erent thread and in another transaction. /aulted Only the faulted instances are saved. Of "o instances of this process are saved. Idempotent : An idempotent activity is an activity that can be retried (for e3ample$ an assign activity or an invoke activity). Oracle 90&L Server saves the instance after a nonidempotent activity. This property is applicable to both durable and transient processes. (alues: )alse! Activity is dehydrated immediately after e3ecution and recorded in the dehydration store. +hen idempotent is set to )alse$ it provides better failover protection$ but may impact performance if the 90&L process accesses the dehydration store fre/uently. True (default)! f Oracle 90&L Server fails$ it performs the activity again after restarting. This is because the server does not dehydrate immediately after the invoke and no record e3ists that the activity e3ecuted. Some e3amples of where this property can be set to True are! read7only services (for e3ample$ #redit*atingService) or local &B9A+S) invocations that share the instanceCs transaction. non$loc0ingInvo0e :9y default$ Oracle 90&L 0rocess %anager e3ecutes in a single thread$ e3ecuting the branches se/uentially instead of in parallel. +hen this property is set to True$ the process manager creates a new thread to perform each branchCs invoke activity in parallel. This property is applicable to both durable and transient processes. #onsider setting this property to True if you have invoke activities in multiple Dow or Dow n branches. This is especially e@ective if the parallel invoke activities are two7way$ but some bene-ts can be reali2ed for parallel one7way invokes as well. (alues: True! Oracle 90&L Server spawns a new thread to e3ecute the invocation. )alse (default)! Oracle 90&L Server e3ecutes the invoke activity in the single process thread. validate-ML : &nables message boundary validation. "ote that additional validation can impact performance by consuming e3tra #01 and memory resources. (alues: True! +hen set to True the engine validates the ?%L message against the ?%L schema during EreceiveF and EinvokeF for this partner link. f the ?%L message is invalid then bpelx:invalidVariables run time 90&L )ault is thrown. This overrides the domain level validateXML property. )alse (default)! <isables ?%L validation. ,a&les Impacted $ Instance Data 1ro"th nstance data occupies space in Oracle 90&L 0rocess %anager schema tables. <ata growth from auditing and dehydration can have a signi-cant impact on database performance and throughput.
Oracle BPEL Process Manager Tables Impacted by Instance Data Growth audit_trail Stores the audit trail for instances. The audit trail viewed in Oracle 90&L #ontrol is created from an ?%L document. As an instance is processed$ each activity writes events to the audit trail as ?%L. audit2details Stores audit details that can be logged through the A0. Activities such as an assign activity log the variables as audit details by default. Audit details are separated from the auditGtrail table due to their large si2e. f the si2e of a detail is larger than the value speci-ed for this property$ it is placed in this table. Otherwise$ it is placed in the auditGtrail table. cu&e2instance Stores process instance metadata (for e3ample$ the instance creation date$ current state$ title$ and process identi-er) cu&e2scope Stores the scope data for an instance (for e3ample$ all variables declared in the 90&L Dow and some internal ob.ects that help route logic throughout the Dow). dlv2message Stores incoming (invocation) and callback messages upon receipt. This table only stores the metadata for a message (for e3ample$ current state$ process identi-er$ and receive date). dlv2su&scription Stores delivery subscriptions for an instance. +henever an instance e3pects a message from a partner (for e3ample$ the receive or on%essage activity) a subscription is written out for that speci-c receive activity. document2ci2re! Stores cube instance references to data stored in the 3mlG document table. document2dlv2msg2re! Stores references to dlvGmessage documents stored in the 3mlGdocument table. "!tas0 Stores tasks created for an instance. The Task%anager process keeps its current state in this table. "or02item Stores activities created by an instance. All activities in a 90&L Dow have a workGitem table. This table includes the metadata for the activity (current state$ label$ and e3piration date (used by wait activities)). +ml2document Stores all large ob.ects in the system (for e3ample$ dlvGmessage documents). This table stores the data as binary large ob.ects (9LO9s). Separating the document storage from the metadata enables the metadata to change fre/uently without being impacted by the si2e of the documents. 3eaders2properties Stores headers and properties information. nbound Throttling 9est 0ractices The Oracle )ile and )T0 Adapters provide parameters that can be used to throttle the inbound operations. The table below describes the inbound throttling practices! Parameter ,p e (alues Description MaxRaiseSize B#A <property name="MaxRaiseSi ze" value="100"/> This parameter de-nes the ma3imum number of -les that the inbound adapter would submit for processing on each polling Parameter ,p e (alues Description <efault! 65555 (ten thousand) cycle. )or e3ample$ if your inbound directory has 6555 -les and the MaxRaiseSize is set to 100$ the adapter can increase to 655 -les on each polling cycle. <e-ned in the nbound B#A )ile. SingleThreadModel B#A <property name="SingleThre adModel" value="true"/> <efault! )alse (n this case$ the global in7 memory /ueue is used). f the value is true$ the poller lists$ translates$ or publishes -les in the same thread. n other words$ it does not use the global in7 memory /ueue for publishing. <e-ned in the nbound B#A )ile. ThreadCount B#A <property name="ThreadCoun t" value="10"/> <efault! 76 (n this case$ the adapter uses the global thread pool and in7 memory /ueue) This parameter enables the Oracle )ile and )T0 Adapters to create their own processor threads rather than depending on the global pool of processor worker threads for processing the en/ueued -les. This parameter partitions the in7memory /ueue and each composite application receives its own in7memory /ueue. f the ThreadCount is set to 0$ then the threading behavior is the same as that of the SingleThread%odel. f the ThreadCount is set to !1$ Parameter ,p e (alues Description then the global thread pool is activated$ which is the same as the <efault Threading %odel. The ma3imum value that can be set for ThreadCount is "0. <e-ned in the nbound B#A )ile. Out&ound ,hrottling $est Practices The Oracle )ile and )T0 Adapters provide parameters that can be used to throttle the outbound operations. The table below describes the outbound throttling practices! Parameter ,pe (alue Description Con#urrentThresho ld B#A <property name="Con#urrent Threshold" value="100"/> <efault! 45 (n this case$ not more than 45 translations occur for a particular outbound scenario.) This parameter speci-es the ma3imum number of translation activities that are allowed to start in parallel for a particular outbound scenario. The translation step during the outbound operation is #01 intensive and must be monitored as it might cause other applications or threads to starve. The ma3imum value is 655. <e-ned in the Outbound B#A )ile.