Wednesday, June 25, 2014

This is Chapter-9 of Oracle SOA interview questions and answers series.

Question: What is difference between Transient and Durable processes?

Answer:  Below is difference between Transient and Durable process
Transient Process: Transient processes do not incur dehydration during their process execution. If an executing process experiences an unhandled fault or the server crashes, instances of a transient process do not leave a trace in the system.
Durable Process: Durable processes incur one or more dehydration points in the database during execution. Dehydration is triggered by one of the following activities:
·         Receive activity
·         OnMessage branch in a pick activity
·         OnAlarm branch in a pick activity
·         Wait activity Reply activity
·         checkPoint() within a <bpelx:exec> activity

Question: Can we set audit level at BPEL level?

Answer: Yes, we can use bpel.config.auditLevel property inside composite.xml file for BPEL process service component to set audit level for BPEL. This property takes precedence over audit level settings at the SOA Infrastructure, service engine, and SOA composite application levels.
<component name="BPELProcess">
<implementation.bpel src="BPELProcess.bpel" />
<property name="bpel.config.auditLevel">Off</property>

Question: What are disadvantages of Asynchronous process?

Answer:  It adds dehydration overhead. This can become a problem if there are large numbers of asynchronous processes waiting for a response since for every callback, a new thread/transaction is needed and a callback needs to be matched to a correlation table which takes longer if there are a lot of open processes. Design processes to be synchronous as much as possible, avoid nesting of asynchronous processes also avoid synchronous processes calling asynchronous processes.

Question: Does Oracle recommend batch processing?

Answer: No, we should avoid batch processing in BPEL as much as we can.  Batch processing takes lot of memory and causes a lot overhead for storing audit information. We should put the work to be done in a separate BPEL process and optimize this process. Design for worst case scenarios. Implement retry mechanisms in fault-policies. Implement your own scheduling mechanism to spread the load, if no message level processing is needed, ODI might be an option.

Question: What is idempotent activity?

Answer: An idempotent activity is an activity that can be retried.
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 EJB/WSIF invocations that share the instance's transaction.

Question: What is nonBlockingInvoke property?

Answer: This property is used when we use Flow or Flow N in BPEL. By default, Oracle BPEL Process Manager executes in a single thread by 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 branch's invoke activity in parallel. This property is applicable to both durable and transient processes.

Question: What is streamResultToTempFile property in Mediator?

Answer: Until 11g Release 1, for XSLT operations in Oracle Mediator, the result was cached into memory as a whole document in binary XML format. For large document processing, this caused out-of-memory errors. Starting with 11g Release 1, the streamResultToTempFile property is available. This property enables XSLT results to be streamed to a temporary file and then loaded from the temporary file. Set streamResultToTempFile to yes when processing large payload using XSLT. The default value is no.
<component name="Mediator1">
   <implementation.mediator src="Mediator1.mplan"/>
   <property name="streamResultToTempFile">yes</property>

This property is recommended only for processing large payloads. Enabling this property could reduce performance for normal payloads.

Click here go to Chapter-8                                                       Click here to go to Chapter-10


Post a Comment