Oracle SOA Interview Questions and Answers (File Adapter)

Oracle SOA Interview Questions and Answers (File Adapter)

Question: What is “Minimum Age” in File adapter?
Answer: This parameter specifies the minimum age of files to be retrieved. This enables a large file to be completely copied into the input directory before it is retrieved for processing.

Question: What is trigger file in File adapter?
Answer: When we choose “Trigger File” checkbox, file adapter will not poll/read the file/files from specified directory unless it sees trigger file in trigger file directory. Once trigger files is there in the trigger file directory, file adapter will start polling the files.

Question: What is Logical path in File adapter?
Answer: This parameter specifies the logical input directory to be polled. The parameter is of type String. We provide value of logical path in composite.xml file.

Question: How to handle errors when we unable to read/poll a file using file adapter if that file is corrupt?
Answer: We need to use File rejection handler to catch these types of error.

Question: What is Sync-Read in file adapter?
Answer: When we want to read a file in between our BPEL flow then we use this option.

Question: Can we read remote files using file adapter?
Answer: To read file from remote location we need to use FTP adapter.

Question: What is native format?
Answer: when we want to read the file as it, means we don’t want to transform file content to XML format then we use native format option.



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 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"></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>
This property is recommended only for processing large payloads. Enabling this property could reduce performance for normal payloads.


Question: Which property we have to use to process JMS, AQ or MQ messages on one node in cluster environment.
Answer: we use singleton property in composite.xml file.
<property name="singleton" type="xs:boolean" many="false" override="may">true</property>

Question: Which property we need to use to control number of message processed from MQ at one time?
Answer: we need to use InboundThreadCount property to control number of messages which MQ adapter pick from MQ.

Question: Which property we need to use with singleton property to process the message in sequential order for AQ?
Answer: We need to set activtionInstances=1 along with singleton property for AQ adapter in cluster environment to process message in sequential order.

Question: Can we set IncludeFiles property dynamically for file/ftp adapter?
Answer: No, by default we can’t set IncludeFiles property at run time. But Oracle provided one patch (patchId=10380349), if we apply that then we can use set this property at run time.

Question: What is delay property for AQ adapter?
Answer: This property is used when we don’t want to make the message visible to outside world for some time. Message is visible and ready to read once that delay time expire message. This property is set at Invoke for AQ adapter.

Question: What is adapter.jms.receive.threads property for JMS adapter?
Answer: To improve performance, the adapter.jms.receive.threads property can be tuned for an adapter service. The default value is 1, but multiple inbound threads can be used to improve performance. When specified, the value of adapter.jms.receive.threads is used to spawn multiple inbound poller threads.

Question: What is UseStaging property in file and FTP adapter?
Answer: If the parameter is set to true, then the outbound Oracle File or FTP Adapter writes translated data to a staging file and later streams the staging file to the target file. If the parameter is set to false, then the outbound Oracle File or FTP Adapter does not use an intermediate staging file. It is defined in Outbound JCA File.

5 comments: