This is Chapter-9 of Oracle SOA interview questions and answers series.
Question: What is difference between Transient and Durable processes?
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>
</component>
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 11.1.1.3, 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
11.1.1.4, 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>
</component>
0 comments :
Post a Comment