Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

SOA Interview Questions

Download as pdf or txt
Download as pdf or txt
You are on page 1of 49

Page 1 of 49

Question : What is Web Service ?


Answer: Web service is a piece of code which is available on web (internet). That code of piece can be
developed in any language (java, .net etc). A client invokes the web service by sending xml message and it
wait for xml response (synchronously or asynchronously).

Question: What is WSDL ?


Answer : WSDL stands for Web Services Description Language

WSDL is a document written in XML. The document describes a Web service. It specifies the location of the
service and the operations (or methods) the service exposes.

Question: Explain elements/tags of WSDL ?


Answer :

Element Name Description


types A container for abstract type definitions defined using XML Schema

message A definition of an abstract message that may consist of multiple parts, each part may be of a
different type

portType An abstract set of operations supported by one or more endpoints (commonly known as an
interface); operations are defined by an exchange of messages

binding A concrete protocol and data format specification for a particular portType

service A collection of related endpoints, where an endpoint is defined as a combination of a binding


and an address (URI)

Question: Difference between Abstract and Concrete WSDL ?


Answer : Abstract WSDL contains only messages and operations. Abstract WSDL is
used by SOAP Server.

Where as concrete WSDL contains messages, operations and transport


specific information (JMS or Http). This is used by SOAP client.

Question : What is SOAP ?


Answer : SOAP is a simple XML-based protocol to let applications exchange information over HTTP.
Or more simply: SOAP is a protocol for accessing a Web Service.
Page 2 of 49

Question : What is XML Schema ?


Answer : An XML Schema describes the structure of an XML document.

Question : Difference between Include and Import in context to XML schema ?


Answer : The fundamental difference between include and import is that you must use import to refer to
declarations or definitions that are in a different target namespace and you must use include to refer to
declarations or definitions that are (or will be) in the same target namespace.

Question : What is targetNamespace's function?


Answer :
<schema
xmlns="http://www.w3.org/2001/SchemaXML targetNamespace="http://www.example.com/name"
xmlns:target="http://www.example.com/name">

The targetNamespace declares a namespace for other xml and xsd documents to refer to this schema. The
target prefix in this case refers to the same namespace and you would use it within this schema definition to
reference other elements, attributes, types, etc. also defined in this same schema definition.

Question : How to refer another XSL from main XSL file ?


Answer : The <xsl:import> element is a top-level element that is used to import the contents of one
style sheet into another.

Note: This element must appear as the first child node of <xsl:stylesheet> or <xsl:transform>.

Syntax: <xsl:import href="URI"/>

Question: Why we use Call-template inside XSL ?


Answer : Call-template works similar to the apply-template element in XSLT. Both attach a template to
specific XML data. This provides formatting instructions for the XML. The main difference between the
two processes is the call function only works with a named template. You must establish a 'name'
attribute for the template in order to call it up to format a document.

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
< xsl:call-template name="myTemplate">
< !-- Content: xsl -->
Page 3 of 49

< /xsl:call-template>
< stylesheet>

Question: Difference between XA & Non-XA transaction ?


Answer:
Non-XA (Local Transaction): It involves only one resource. When you use Non-XA transaction then you
can’t involve multiple resources (different databases, Queues, application servers etc), you can rollback
or commit transaction for only one resource. There is not transaction manager for this transaction as we
are dealing with only one resource at a time.

XA (Global Transaction): It involves more than one resource (different databases, queues, application
servers) all participate in one transaction. It uses two-phase commit to ensure that all resources either
all commit or rollback any particular transaction. When you have scenario like you need to connect to
two different databases, JMS Queue and application server, in this case you will use XA transaction that
means all resource participate in one transaction only.

Question: What is inline schema ?


Answer: Inline schemas are XML schema definitions included inside XML instance documents. Like
external schema documents, inline schemas can be used to validate that the instance matches the
schema constraints.

Question: what is the use of Pick Activity?


Answer: This activity waits for the occurrence of one event in a set of events and performs the activity
associated with that event. The occurrence of the events is often mutually exclusive (the process either
receives an acceptance or rejection message, but not both). If multiple events occur, the selection of the
activity to perform depends on which event occurred first. If the events occur nearly simultaneously,
there is a race and the choice of activity to be performed is dependent on both timing and
implementation.

Question: Design patterns in SOA ?

Question: Difference between Synchronous Process and Asynchronous Process ?

Question: Use of Config Plans ? –


Page 4 of 49

Question: What is role of Mediator?


Answer: Oracle Mediator provides a lightweight framework to mediate between various components
within a composite application. Oracle Mediator converts data to facilitate communication between
different interfaces exposed by different components that are wired to build a SOA composite
application.

Question:Difference between Mediator & OSB?


Answer: OSB is all together different tool which is used for integration like SOA but the main purpose of
OSB is to route the information and same we can do with mediator. The main difference two is, we go
for Mediator when we want to route information between different components inside composite and
go for OSB when we want to route the information between composites. Mediator is used light weight
mediation and OSB is used for heavy weight mediation.

Question: What is echo in Oracle Mediator?


Answer: The purpose of the echo option is to expose all the Oracle Mediator functionality as a callable
service without having to route it to any other service. For example, you can call an Oracle Mediator to
perform a transformation, a validation, or an assignment, and then echo the Oracle Mediator back to
your application without routing it anywhere else.

For synchronous operations with a conditional filter, the echo option does not return a response to the
caller when the filter condition is set to false. Instead, it returns a null response.

The echo option is available for asynchronous operations only if the Oracle Mediator interface has a
callback operation. In this case, the echo is run on a separate thread.

Question: What is resequencing in Mediator ?


Answer: The resequencing feature of the Oracle Mediator reorders sets of messages that might arrive to
the Oracle Mediator in the wrong sequence. You can define resequencing for all operations in an Oracle
Mediator or for a specific operation.

Question: Resequencing options available in mediator?


Answer:

 Standard (based on input Id)

 FIFO(based on time)

 Best Efforts
Page 5 of 49

Question: What is Schematron Validation?


Answer: Schematron is an XML schema language, and it can be used to validate XML contents in an XML
payload.

Question: Types of routing exist in Mediator?


Answer: Static & Dynamic Routing.

Question: What is Dynamic Routing in Mediator ?


Answer: A dynamic routing rule lets you externalize the routing logic to an Oracle Rules Dictionary,
which in turn enables dynamic modification of the routing logic in a routing rule.

When you choose to create dynamic routing rule then it creates a new business rule service component
that is wired to the Oracle Mediator service component within the SOA composite of the Oracle
Mediator service component. The business rule service component includes a rule dictionary. The rule
dictionary is a metadata container for the rule engine artifacts, such as fact types, rulesets, rules,
decision tables and so on.

Inside routing rules, you need to set endpoint URI.

Question: Types of Static Routing rules?


Answer: Sequential & Parallel.

Question: Difference between Sequential & Parallel static routing rules ?


Answer:

Sequential parallel

Oracle Mediator evaluates routings and performs Oracle Mediator queues and evaluates routings in
the resulting actions sequentially. Sequential parallel in different threads.
routings are evaluated in the same thread and
transaction as the caller The messages of each Oracle Mediator service
component are retrieved in a weighted, round-
robin fashion to ensure that all Oracle Mediator
service
Page 6 of 49

components receive parallel processing cycles.


This is true even if one or more Oracle Mediator
service components produce a higher number of
messages

compared to other components. The weight used


is the message priority set when designing an
Oracle Mediator service component. Higher
numbers of parallel

processing cycles are allocated to the components


that have higher message priority.

You can set the Priority field in the Mediator


Editor to indicate the priority of an

Oracle Mediator service component. Priorities can


range from zero to nine, with

nine being the highest priority. The default priority


is four.

Oracle Mediator always enlists itself into the Oracle Mediator initiates a new transaction for
global transaction propagated through the thread processing each parallel rule. The initiated
that is processing the incoming message. For transaction ends with an enqueue to the Oracle
example, if an Mediator parallel

inbound JCA adapter invokes an Oracle Mediator, message dehydration store.


the Oracle Mediator enlists itself with the
For example, if an Oracle Mediator service
transaction that the JCA adapter has initiated.
component has one parallel routing rule, one
message is enqueued on the Oracle Mediator
parallel message dehydration store. The parallel
message dispatcher to the store then initiates a
transaction, reads the message from the database
store, and invokes the target component or service
of this routing rule. The transaction initiated by the
listener thread is a completely new transaction
and is propagated to the target components.

Oracle Mediator propagates the transaction


through the same thread as the target
components while executing the sequential
routing rules.
Page 7 of 49

Oracle Mediator never commits or rolls back Oracle Mediator commits or rolls back transactions
transactions propagated by external because it is the initiator of these transactions.

entities. If an operation or event has both sequential and


parallel routing rules, first sequential routing
rules are evaluated and actions are performed,
and then parallel routings are queued for parallel
execution.

Oracle Mediator manages the transaction only if


the thread-invoking Oracle

Mediator does not already have an active


transaction. For example, if Oracle

Mediator is invoked from inbound SOAP services,


Oracle Mediator starts a

transaction and commits or rolls back the


transaction depending on success and

failure.

Question: Which static routing rule support fault policy ?


Answer: Parallel rules only.

Question: How many faults can Oracle Mediator service engine throw ?
Answer: Only One

{http://schemas.oracle.com/mediator/faults}mediatorFault.
- See more at: http://www.soawork.com/2013/05/oracle-soa-interview-questions-
mediator.html#sthash.moSQfA3X.dpuf

Question: Types of Adapters ?


Answer: Transactional & Non- Transactional Adapter

Transactional : Database, JMS, AQ, MQ adapters


Non- Transactional: File & FTP adapter
Page 8 of 49

Question: Difference between Read & Sync-Read operation in File & FTP adapter?
Answer: Read is used when Polling is required to be done while SyncRead is used when you need to
read the file in between the flow i.e you want to have a synchrnous communication.

Question: What is File Debatching ?


Answer: When a file contains multiple messages, you can choose to publish messages in a specific
number of batches. This is referred to as debatching. During debatching, the file reader, on restart,
proceeds from where it left off in the previous run, thereby avoiding duplicate messages. File debatching
is supported for files in XML and native formats.

Question: What is File ChunkedRead ?


Answer: This is a feature of Oracle File and FTP Adapters that uses an invoke activity within a while loop
to process the target file. This feature enables you to process arbitrarily large files.

If an invalid payload is provided, then ChunkedRead scenarios do not throw an exception. When a
translation exception (bad record violating the NXSD specification) is encountered, the return header is
populated with the translation exception message that includes details such as line and column where
the error occurred. All translation errors do not result in a fault. These errors are manifested as a value
in the return header. You must check the jca.file.IsMessageRejected and jca.file.RejectionReason header
values to ascertain whether an exception has occurred. Additionally, you can also check the
jca.file.NoDataFound header value.

Question: Multiple Directories supported in File & FTP adapter ?


Answer: The Oracle File and FTP Adapters support polling multiple directories within a single activation.
You can specify multiple directories in JDeveloper as opposed to a single directory. This is applicable to
both physical and logical directories.

Question: What is the use of Trigger file ?


Answer: By default, polling by inbound Oracle File and FTP Adapters start as soon as the endpoint is
activated. However, if you want more control over polling, then you can use a file-based trigger. Once
the Oracle File or FTP Adapter finds the specified trigger file in a local or remote directory, it starts
polling for the files in the inbound directory.

For example, a BPEL process is writing files to a directory and a second BPEL process is polling the same
directory for files. If you want the second process to start polling the directory only after the first
process has written all the files, then you can use a trigger file. You can configure the first process to
create a trigger file at the end. The second process starts polling the inbound directory once it finds the
trigger file.
Page 9 of 49

Question: Types of Rejection Message Handler ?


Answer:

 Web Service Handler

 Custom Java Handler

 JMS Queue

 File

Question: What is MDS & Why we use MDS in Oracle SOA?

Answer: MDS stands for Oracle MetaData Service. It is central repository inside Oracle Fusion
Middleware. MDS purpose is to provide centralized store where we can keep, manage & access
metadata.

Metadata is often defined as data about data, or in other words, pieces of information that describes
and gives meaning to other information. Typical examples of metadata used by Oracle Fusion
Middleware components are XML files, XSD schema files, XSL transformations, SCA composites, BPEL
processes, WSDLs, business rules, Oracle ADF pages, JaveServer Pages (JSP), and Oracle ADF task flows,
among others.

The same metadata that is used during the design phase of application is used at application runtime
through the metadata service layer. This ensures consistency through the lifecycle of the application.
Metadata such as XML files or XSD schema files is usually shared among different components.
Therefore, it is not only necessary that those resources can be accessed easily and referenced by all the
components, but it is also important that they remain consistent; a change in the metadata should be
reflected in all the components that are referencing it. Having only one copy of each metadata resource
avoids unnecessary redundancy and guarantees that the changes are made in only one place.
Page 10 of 49

Question: Types of MDS Repository?

Answer: File-Based & DB Based.

Question: What is File-Based MDS Repository?

Answer: The idea behind file-based repositories is to allow developers to have a light repository
available in their local environment that can be easily adapted for development and tests; a file-based
repository relieves developers of having to configure and maintain an external database while providing
necessary functionality, such as file referencing and customizations. These kinds of repositories are
easily modified and maintained, since they define a directory structure similar to any other directory
structure inside an operating system. They can be navigated and altered using common shell commands
or any kind of visual file explorer application. The file-based repository is usually located inside the
Oracle JDeveloper home (JDEV_HOME/integration) if the default configuration is used.

Question: What is DB-Based MDS Repository?

Answer: Database-based repositories are used in production environments where robustness is


needed. These repositories are created using the Repository Creation Utility (RCU) application from
Oracle. This utility helps with the creation of a new database schema with its corresponding tables and
objects. Repositories can later be registered or deregistered via the Oracle Enterprise Manager Fusion
Middleware Control console.

Question: Which configuration file store MDS configurations?

Answer: The adf-config.xml file is a configuration file that is used to store MDS Configurations.

Question: What type of WSDL file we usually keep in MDS?

Answer: We usually keep Abstract WSDL’s only in MDS.

Question: By how many ways we can handle error/fault in BPEL?


Page 11 of 49

Answer: By using Catch blocks & Fault handling framework.

Question: Can we use both Catch block & fault handling framework in one BPEL?

Answer: Yes, we can have both Catch Block & Fault policies files in one BPEL.

Question: Standard Faults in BPEL?

Answer: Below is the list of Standard Faults in BPEL.

· bindingFault, conflictingReceive, conflictingRequest, correlationViolation

· forcedTermination, invalidReply, joinFailure, mismatchedAssignmentFailure

· remoteFault, repeatedCompensation, selectionFailure, uninitializedVariable

Question: Standard Faults in Mediator?

Answer: Mediator has only one standard fault.

{http://schemas.oracle.com/mediator/faults}mediatorFault.

Question: How to get Fault Trace in CatchAll block?

Answer: By using getFaultAsString() function.

Question: Can we have custom faults in BPEL?

Answer: Yes we can create custom faults in BPEL, these faults are usually called Business Faults and we
usually handle it by using specific Catch block.

Question: Can we re throw a fault from Catch blocks?


Page 12 of 49

Answer: Yes, we can re-throw fault from Catch block.

Question: Where we keep fault-policies.xml & fault-binding.xml files?

Answer: We can keep these files either local to project or in MDS and in both the cases we have to
specify the path in composite.xml file. - See more at: http://www.soawork.com/2013/10/oracle-soa-
interview-question-error-handling.html#sthash.1MTQJ02i.dpuf

Question: What is OWSM?

Answer: OWSM stands for Oracle Web Service Manager. Oracle Web Services Manager offers a
comprehensive and easy-to-use solution for policy management and security of service infrastructure. It
is a standalone platform for securing and managing access to web services.

Question: How do we call secured web service from SOA?

Answer: By using OWSM policies.

Question: Can we generate custom OWSM policies?

Answer: Yes, we can create custom OWSM policies.

Question: By how many ways we can add OWSM policy to Web Service?

Answer:

· Through policy annotations at design time


Page 13 of 49

· Via the Administration Console at runtime

· Via Fusion Middleware Control or WLST

Question: When we call secured web service from SOA, which policy we will use “Client” or “Service”?

Answer: When we call secured web service from SOA then we add “Client” policy to reference partner
link and when we want to secure our web service then we use “Service” policy.

Question: Can we use OWSM with Oracle Service Bus?

Answer: Yes, we can access OWSM policies from OSB.

Question: Can we attach OWSM policy to multiple composites to secure composites?

Answer: yes, we can apply one policy to all composites in one domain using policy sets.

Question: what is the scope of Policy Sets or where we can apply Policy sets ?

Answer:

· Domain — all policy subjects of the specified type in a domain


Page 14 of 49

· Application or Partition—all policy subjects of the specified type in an application or SOA partition

· Application module or SOA composite—all policy subjects of the specified type in an application
module or SOA composite

· Service or reference—all policy subjects of the specified type in a SOA service or reference

· Port or component—all policy subjects of the specified type in a port or SOA component

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.

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

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.
Page 15 of 49

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 <bpelx:exec> activity


Page 16 of 49

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.
Page 17 of 49

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.
Page 18 of 49

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.
Page 19 of 49

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.
Page 20 of 49

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.
Page 21 of 49

Question: What is SOA ?


Answer: SOA stands for Service Oriented Architecture. SOA is not any tool, rather is a
concept and there are many tools in the market based upon this concept. In this SOA
Concept, we use SOA layer as middle or intermediate layer between services so that
these service can communicate with each other.

Question: Benefits of SOA ?.


Answer: Below are the major benefits that we get from SOA.
1. Loose Coupling : This means that the service requester has no knowledge of the
technical details of the provider’s implementation, such as the programming language,
deployment platform, and so forth. The service requester typically invokes operations by
way of messages — a request message and the response — rather than through the
use of APIs or file formats.
2. Cost Cutting
3. Better reuse: Build new client functionality on top of existing Business Services.
4. Well defined interfaces: Make changes without affecting clients
5. Easier to maintain : Changes/Versions are not all-or-nothing
6. Better flexibility

Question: What is Oracle SOA Suite Tool ?


Answer: SOA Suite tool is a middleware tool from Oracle which is based upon SOA
concept comes under Oracle Fusion Middleware stack. We use this tool for integration
purpose .i.e. This tool is used to integrate two system/applications etc.

Question: Is Oracle SOA Suite tool state full ?


Answer: Yes SOA Suite tool is a state full tool, that means in this tool we store every
state in database i.e. we store all the incoming messages, transformed messages,
outgoing messages to database along with timestamp.

Question: How many components we have in Oracle SOA Suite tool?


Answer: We have total 5 components in Oracle SOA Suite tool as mentioned below.
1. BPEL : Business Process Execution Language
2. Mediator
3. Business Rules
4. Human Task
5. Spring
Page 22 of 49

Question: What all components/Products needs to be installed before we Install Oracle


SOA Suite tool ?.
Answer: Following components needs to be installed before we install Oracle SOA
Suite.
1. JDK
2. Database
3. All Required Schema (Created using RCU)
4. WebLogic Server

Question: Which application server required for Oracle SOA Suite tool ?
Answer: Mostly WebLogic server is used as application server for Oracle SOA Suite
tool.

Question: Which IDE we use for Oracle SOA Suite tool ?.


Answer: We use JDeveloper IDE for Oracle SOA suite tool.

Question: What is domain ?.


Answer: A domain is the basic administration unit for WebLogic Server instances. i.e.
Domains include a special WebLogic Server instance called the Administration Server,
which is the central point from which you configure and manage all resources in the
domain.

Question: What is Administration Server ?


Answer: A domain has one WLS instance configured as an admin server. The admin
server provides a central point for managing a domain.

Question: What is Managed Servers ?


Answer: All other WLS instances in a domain are called Managed Servers. Managed
servers host application components and resources.

Question: What is Cluster ?


Answer: Cluster is a group of server instances that work together as a single runtime
unit from a client perspective. Clustering provides scalability and high availability for
applications.
Page 23 of 49

Question: What is EM ?
Answer: EM stands for Enterprise Manager. It is webpage we deploy, test, monitor,
diagnose and resolve problem for composites. It is hosted on the Admin Server.

Question: What is soa-infra ?


Answer: soa-infra is a J2EE application that is targeted to either a managed server or a
cluster. All the composites gets deployed under soa-infra application.

Question: What all schema we need for Oracle SOA Suite tool ?.
Answer: We require following schema.
1. MDS – This schema is used to store all the artifacts like WSDL, XML, XSD etc.
2. SOA_INFRA – This schema is used to store SOA Component Engine properties,
deployed composites, payloads, runtime metadata etc.
3. ORABAM – This schema is used to store the metadata that is related to BAM and its
components and this is optional schema.
4. ORASDPM – This schema is used to store metadata about the user messaging
systems.

Question: What is partition ?.


Answer: Sections of the SOA Infrastructure where we deploy SOA composite
applications known as partition. When we install SOA suite tool, default partition get
created with name ―default‖ but we can add as many as partitions as required.

Question: What are benefits of partition?


Answer: Below are the major benefits of partition.
1. Logically group SOA composites.
2. Perform bulk lifecycle management tasks on large numbers of composites.

Question: What all bulk operations we can perform on partition ?.


Answer: We can perform below operations.
1. Start all composites
2. Shut down all composites
3. Undeploy all composites
4. Retire all composites
5. Activate all composites
6. List all composites
Page 24 of 49

Question: How we can deploy composite to SOA server ?.


Answer: There are different methods to deploy SOA composite to SOA server.
1. Through EM console
2. Directly from JDeveloper
3. Scripting (Ant, WLST etc.)

Question: What is config plan ?.


Answer: Config plan is used during composite deployment. This is a xml file where we
specify the parameters that we want to replace while doing the deployment to next
environment.

Question: Can we have multiple composites with same name on SOA server ?.
Answer: Yes, we can have multiple composites with same name on SOA server but
this is possible when we have composites with revisions.

Question: If we have multiple composites on SOA server with same name then how
composites run ?.
Answer: If we have multiple composites with same name then only one composite will
act as default composite which will run only. But we can go to EM console and make
other composite default.

Question: What is SCA ?.


Answer: SCA stands for Service Component Architecture. Oracle SOA Suite is based
upon this architecture, this architecture is based upon components, this says that we
compose assembly (also known as composite) using these components. In Oracle SOA
suite we get pre-build components that we use to build composite.

Question: Benefits of SCA ?.


Answer: Below are the major benefits of SCA.
1. Easier Development :No need to write lengthy code as we get all components
prebuilt.
2. Easily compose a assembly (composite) by just linking different these prebuilt
components.
3. Better re-usability
Page 25 of 49

Question: What is SOA Composite ?.


Answer: SOA composite is a assembly comprises of one or more than one pre-build
components. In SOA composite we wires different components together to perform
required business functionality.

Question: What is Service Component ?.


Answer: All prebuilt components BPEL , Mediator, Business Rules, Human Task and
Spring known as service components.

Question: Can we have more than one service component in one composite ?.
Answer: yes, we can have as many as service components in one composite but it is
not recommended, we should not have all the components in one composite itself.

Question: How these Service Components works ?.


Answer: Each service component is hosted in its own service engine container. E.g.
Any logic added in BPEL components will be handled by BPEL service engine only.

Question: What is Binding component ?


Answer: As name suggest, this component is used to bind composite application to
external world. i.e. we use these components to link composite with source and target
system.

Question: What are the types of Binding Components ?.


Answer: Binding components are of two types as mentioned below.
1. Service Binding : With the help of this binding we connect composite to source or
client system or we can say this is entry point of composite.
2. Reference Binding: This binding helps composite to connect to target or reference
systems or we can say it is exist point of the composite.

Question: Can we more than one Service & Reference binding in one composite ?.
Answer: Yes, we can more than one service & reference binding in one composite, that
means we can have more than one entry & exist point for composite.

Question: What can be scenario where we have two service binding in one composite
?.
Answer: When a composite can be initiated either by direct call or by consuming the
Page 26 of 49

same message from JMS queue, in this scenario we have two entry point for same
composite.

Question: What can scenario where we have two reference binding in one composite
?.
Answer: Composite needs to send the message to first target by JMS queue and to
other target by writing the file, in this scenario we have two exist for composite.

Question: What is wire ?.


Answer: Connection between service & binding component and within service &
binding components know as wire. I.e. This enable us to graphically connect the
components in a SOA composite application.

Question: What is BPEL ?.


Answer: BPEL stands for Business Process Execution Language, it is one of the
component of SOA Suite tool. BPEL is a XML based language used to design business
process/flows. We perform service orchestration in BPEL.

Question: What are different parts of BPEL ?.


Answer: Below are different parts of BPEL as mentioned below.
1. Service Interface: A WSDL describing the functionality of the BPEL process. The
service interface provides the end user a way to interact with the BPEL process
component using Service Interface / Service Binding.
2. Activities: units of work. The actual elements that make up the BPEL process flow or
sequence of instructions to be executed.
3. Partner links: also called Reference bindings. A partner link describes the roles
played for the interaction between the BPEL process and the service it invokes.

Question: What all BPEL templates are available in SOA Suite tool ?.
Answer: Primarily we have three types of BPEL template in SOA Suite tool.
1. Synchronous BPEL Template
2. Asynchronous BPEL Template
3. OneWay BPEL Template

Question: What all versions available of BPEL ?.


Answer: We have two versions of BPEL : 1.1 and 2.0.
Page 27 of 49

Question : What is Synchronous BPEL process ?.


Answer: BPEL process is known as synchronous when it accept request and provide
immediate response.

Question: What is default timeout time set for synchronous BPEL process ?.
Answer: Default setting is 30 seconds that means synchronous BPEL process needs to
complete the process within 30 seconds and if it exceeds this limit then it throw time out
error.

Question: Can we have handle Synchronous BPEL timeout error with error handlers ?.
Answer: No, we cannot handle timeout error with error handlers.

Question: What all activities we get when we generate BPEL using synchronous
template ?.
Answer: When we generate synchronous BPEL process then by default we get
―Receive‖ and ―Reply‖ activity. ―Receive‖ activity is used to receive the request message
and ―Reply‖ activity is used to send the response back.

Question: Can we have multiple reply activities in one synchronous BPEL process ?.
Answer: Yes, we can have more than 1 reply activity in synchronous BPEL process.

Question: What is Asynchronous BPEL process ?.


Answer: BPEL process is known as asynchronous when it accept the request and
provide response after some time.

Question: Do we have time limit in asynchronous BPEL process for processing ?.


Answer: No, there is no time limit in asynchronous BPEL process to complete the
processing.

Question: What all activities we get when we generate BPEL using asynchronous
template ?.
Answer: When we generate asynchronous BPEL process then by default we get
―Receive‖ and ―CallBack‖ activity. ―Receive‖ activity is used to receive the request
message and ―CallBack‖ activity is used to send the response back.
Page 28 of 49

Question: What is OneWay BPEL process ?.


Answer: OneWay BPEL process accept the request message but does not give
response.

Question: What all activities we get when we generate BPEL using oneway template ?.
Answer: When we generate oneway BPEL process then by default we get ―Receive‖
activity. ―Receive‖ activity is used to receive the request message.

Question: How many types of variables we can have in BPEL ?.


Answer: In BPEL, we can have three types of variables.
1. Simple Types: E.g. String, Int, double, float etc.
2. Element Type: Based upon schema element
3. Message Type: Based upon WSDL message

Question: All the variables in BPEL are global in nature ?.


Answer: This depends how we define the variable, if we define the variable at BPEL
level then it becomes global, but if we define variable at scope level then it becomes
local. Global variables can be accessed anywhere in the BPEL process but local
variables can only be accessed in that scope only.

Question: Which activity we use in BPEL for parallel processing ?.


Answer: We use Flow & FlowN activities for parallel processing in BPEL.
1. Flow activity: It is used when we want to perform two different operations/logic in
parallel and we know about those steps that at design time.
2. FlowN activity: It is used to process same type of messages in parallel and used
when we don’t know how many messages we can receive at design time.

Question: What is Pick activity ?.


Answer: Pick activity is used when we following scenario.
1. When we invoke asynchronous reference from BPEL and we need response back in
certain time frame and if we got response after that time then we need to throw
exception.
2. When we want to have multiple entry point for any composite. E.g. Our process can
be initiated by JMS queue and it is also initiated by File polling.

Question: How many branches we have in Pick activity ?.


Answer: We have two branches in pick activity.
Page 29 of 49

1. OnMessage: This is similar to ―Receive‖ activity. This is used when we want to


receive the message from source or reference service.
2. OnAlarm: In this branch we set the time i.e. used to set expiry time.

Question: What is Mediator?


Answer: Mediator is one of the components of Oracle SOA Suite tool. This component
is used in below two scenarios.
1. When we need to fetch the information from source and pass to target with or without
transformation.
2. When we use multiple components in one composite then it recommended that these
components should interact through mediator component.

Question: What is Routing rule?


Answer: Routing rules in mediator used to define routings e.g. when we need to
transfer the message from one point to another then we define one routing rule in
mediator.

Question: How many types of routing rules are there?


Answer: There are two types of routing rules in mediator.
1. Dynamic routing rule
2. Static routing rule

Question: What is dynamic routing rule ?


Answer: A Dynamic Routing Rule configures a Business Rules component that uses a
decision table to determine the target endpoint to which a message is routed through a
dynamic external service interface. It can only be created for asynchronous interactions.

Question: What is static routing rule ?.


Answer: These rules are used when target reference is known to us. It can be created
for an event subscription, an incoming operation for an synchronous and asynchronous
service interaction.

Question: How many types of static routing rules we have?.


Answer: Static routing rules is of two types.
1. Sequential
2. Parallel
Page 30 of 49

Question: What is the difference between sequential and parallel routing rule ?.
Answer: Below are the difference between sequential and parallel routing rules.
Sequential:
1. These routing rules evaluated and performed sequentially.
2. These routing rules executes in single thread.
3. Oracle Mediator never commits or rolls back transactions propagated by external
entities.
4. Oracle Mediator always enlists itself into the global transaction propagated through
the thread that is processing the incoming message.

Parallel
1. These routing rules evaluated and performed in parallel order.
2. These routing rules executes in parallel (multiples) threads.
3. Oracle Mediator commits or rolls back transactions because it is the initiator of these
transactions.
4. Oracle Mediator initiates a new transaction for processing each parallel rule.

Question: Can we have both sequential and parallel routing rules in one mediator?.
Answer: yes, we can have both sequential and parallel routing rules in one mediator.

Question: Which rule execute first if we have both sequential and parallel routing rules
in mediator ?.
Answer: If we have both sequential and parallel routing rules, first sequential routing
rules are evaluated and actions are performed, and then parallel routings are queued
for parallel execution.

Question: What is re sequencing in mediator?.


Answer: The resequencing feature of the Oracle Mediator reorders sets of messages
that might arrive to the Oracle Mediator in the wrong sequence. You can define
resequencing for all operations in an Oracle Mediator or for a specific operation.

Question: Types of re sequencing in mediator ?.


Answer: Below types of re sequencing available in mediator.
1. Standard (based on input Id)
2. FIFO(based on time)
3. Best Efforts
Page 31 of 49

Question: What is Echo in mediator ?.


Answer: The purpose of the echo option is to expose all the Oracle Mediator
functionality as a callable service without having to route it to any other service. For
example, you can call an Oracle Mediator to perform a transformation, a validation, or
an assignment, and then echo the Oracle Mediator back to your application without
routing it anywhere else. For synchronous operations with a conditional filter, the echo
option does not return a response to the caller when the filter condition is set to false.
Instead, it returns a null response. The echo option is available for asynchronous
operations only if the Oracle Mediator interface has a callback operation. In this case,
the echo is run on a separate thread.

Question: can we use DVM in Mediator?


Answer: yes, we can use DVM’s in mediator.

Question: can we validate the incoming XML message ?


Answer: Yes, we can validate the incoming XML message in mediator by selecting
―Validate Syntax(xsd)‖ checkbox.

Question: What is Schematron Validation?


Answer: Schematron is an XML schema language, and it can be used to validate XML
contents in an XML payload.

Question: Which static routing rule support fault policy ?


Answer: Parallel rules only.

Question: How many faults can Oracle Mediator service engine throw ?
Answer: Only One

{http://schemas.oracle.com/mediator/faults}mediatorFault.

Question: What is Business Rule ?.


Answer: Business Rule is one of components of SOA Suite tool. We use this
component to define business policies. Oracle Business Rules allows a business
analyst to change policies that are expressed as business rules, with little or no
assistance from a programmer.
Page 32 of 49

Question: What are benefits of Business Rule component ?.


Answer: Below are the benefits of Business Rule component in SOA Suite.
1. Business Rules are easier to change .i.e. when we need to make the change in
business rule then we need not to make changes in code, we need to go one web
browser and update the business policies there.
2. Very little or no knowledge required for business user to work on these business
rules.
3. Rules are more responsive to business requirements.
4. Rules are easily accessible.

Question: How we can use Business Rules in SOA Composite ?.


Answer: We can use the Business Rules in SOA composite by following ways.
1. Standalone : We expose Business Rules to client.
2. From BPEL: We invoke Business Rules from BPEL process.
3. From Human Task: We Invoke Business Rules from Human Task component.

Question: What is Fact in Business Rule ?.


Answer: Fact in Business Rules represent the data or business objects that rules are
applied to.

Question: What is Rule in Business Rules ?.


Answer: A rule consists of two parts, an IF part which consists of one or more tests to
be applied to fact(s), and a THEN part, which lists the actions to be carried out should
the test to evaluate to true.

Question: What is Rule Set ?


Answer: As the name implies, it is just a set of one or more related rules that are
designed to work together.

Question: What is Dictionary ?.


Answer: A dictionary is the container of all components that make up a business rule, it
holds all the facts, rule sets, and rules for a business rule.

Question: What activity we need to use in BPEL to call Business Rules ?.


Answer: We use Business Rule activity in BPEL to invoke Business Rules.
Page 33 of 49

Question: What we use in Business Rule when we need to define multiple rules ?.
Answer: We use Decision table when we need to define multiple rules with
corresponding actions in Business Rule component.

Question: What is Human Task ?.


Answer: Human Task is one of the components of SOA Suite tool. It is used when we
need Human Intervention in our flow.

Question: What is Service Interface in Human Task?.


Answer: We can invoke Human Task components from different components so this
service Interface handles the interaction with BPEL and other components.

Question: What is Task Definition ?


Answer: Task definition module is in charge of managing the lifecycle of a task. Who
should get the task assigned? What should happen next with the task? When must the
task be completed? Should the task be escalated?, etc.

Question: What is Client Interface Module ?.


Answer: Client Interface handles the presentation of task data through clients like the
Worklist application, portals and notification channels.

Question: What activity we use in BPEL to call Human Task component ?.


Answer: We use Human task activity to call this component.

Question: What all outcomes we can have from Human Task component ?.
Answer: mainly we can have following outcomes from Human Task components but
apart from these there are others outcomes also.
1. Approve
2. Reject

Question: Can we set deadlines in Human Task ?.


Answer: Yes, we can set expiry time, after that time that task no longer valid.

Question: Can we send notifications from Human task ?.


Answer: yes, we can send notifications from Human task like task is complete or error
out.
Page 34 of 49

Question: Do we need any form for this Human task component ?.


Answer: Yes, we need Web form for Human task component, either we can choose
auto generate option to create the form or we can build that from scratch. This is same
web page where user will go and approve or reject the task.

Question: What is MDS ?


Answer: MDS stands for Meta Data Service, it acts as central repository where we
keep all common artifacts. This feature was not there in SOA 10g, it is introduced in 11g
version.

Question: What are benefits of MDS ?.


Answer: Below are benefits of MDS.
1. Re-usability : Earlier we use to keep the files to local projects so in case we use a file
that needs to use across two projects, we end up keeping same file in both the projects.
But with the help of MDS, we can keep that file in central location and both the projects
can point to that file placed in MDS.
2. In case we need to make changes in common file then we need not to do at multiple
places, we need to do that change only in at common location where we kept that file
and that changes reflect in all the projects.
3. Business components do not have to look everywhere for the needed information as
we put all the information to central repository.

Question: What all types of MDS we have ?.


Answer: We have two types of MDS as described below.
1. File Based
2. DB Based

Question: What is File based MDS ?.


Answer: As name suggest, this MDS is based on file system. Here we use file system
to store all the metadata. This MDS is used during development. It allow developers to
have a light repository available in their local environment that can be easily adapted for
development and tests.

Question: What is DB based MDS?.


Answer: As name suggest, this MDS is based on database. Here we use MDS schema
to store all the metadata. This MDS repository is used at run time, that means when we
Page 35 of 49

develop our code using file based MDS then before we deploy our code to server, we
need to move all the files from file based MDS to DB based MDS.

Question: What is syntax of MDS files?.


Answer: Below is the syntax where we use MDS files.
oramds:/apps/folder1/folder2/FileName.xsd

Question: What is the file name where MDS configurations stored?


Answer: The adf-config.xml file is a configuration file that is used to store MDS
Configurations.

Question: How we identify MDS repository type in adf-config.xml file ?


Answer: We identify the MDS repository type in adf-config.xml by following syntax.
File Based MDS: oracle.mds.persistence.stores.file.FileMetadataStore
DB Based MDS : oracle.mds.persistence.stores.db.DBMetadataStore

Question: What type of WSDL file we usually keep in MDS?


Answer: We usually keep Abstract WSDL’s only in MDS.

Question: What is Adapter ?.


Answer: Adapter in SOA Suite is used to connect SOA composite to external
systems/applications. We use these adapters to connect to source/client and
target/reference systems. i.e. These adapter used for both Inbound and outbound
interactions.

Questions: What is the architecture of Adapters used in SOA Suite tool?.


Answer: SOA Suite adapters based on JCA. JCA stands for Java EE Connector
Architecture (JCA), it is a Java-based technology solution for connecting application
servers and enterprise information systems (EIS) as part of enterprise application
integration (EAI) solutions.

Question: What all types of adapters we have in SOA Suite tool?.


Answer: We have following types of adapters in SOA Suite tool.
• Oracle Technology adapters
• Legacy Adapters
Page 36 of 49

• Packaged Application
• Oracle Application

Question: What all types of technologies adapters available in SOA Suite tool ?.
Answer: We have following technologies adapters in SOA Suite tool.
• File Adapter
• FTP Adapter
• JMS Adapter
• DB Adapter
• AQ Adapter
• Oracle Applications Adapter
• Socket Adapter

Question: What all adapters transactional and non-transactional ?.


Answer: Below adapters known as transactional adapters as these adapters support
transactions.
1. Database Adapter
2. JMS Adapter
3. AQ Adapter
4. MQ Adapter

Below adapters known as non-transactional adapters as these adapters does not


participate in transactions.
1. File Adapter
2. FTP Adapter

Question: What all files we get when we use these adapters in SOA Suite composite ?.
Answer: Generally we see following files when we use these technology adapters in
SOA Suite composite.
1. WSDL
2. JCA
3. XSD
4. Mapping File (In case of DB Adapter).
5. Properties File (In case of DB Adapter)

Question: Do we have option to build custom adapters ?.


Answer: Yes, we can also build custom adapters in SOA Suite tool.
Page 37 of 49

Question: Do we need to install these adapters separately or we get these pre-installed


?.
Answer: We need to install these adapters jar file separately, these jar files/adapters
gets deployed when we Install Weblogic and SOA Suite server.

Question: Do we need to perform any configuration while using these adapters ?.


Answer: We need to perform required configuration on Admin console that used by
adapters at run time. We generally create Outbound Connection Pool for each adapter
and configure it in adapter during development.

Question: What is Outbound Connection Pool ?.


Answer: Outbound connection pools in a resource adapter are configured in the ra.xml
and weblogic-ra.xml deployment descriptors. You can also use the Administration
Console to modify the pool’s properties.

Question: What will happen if we specify wrong Outbound Connection Pool in Adapter
?.
Answer: If we specify wrong Outbound Connection Pool in adapter during development
then adapter throw an error during run time.

Question: Why File Adapter is used in SOA Suite tool ?.


Answer: File adapter is used to read and write file from and to local system.

Question: Why FTP Adapter is used in SOA Suite tool ?.


Answer: FTP adapter is similar to File adapter with one difference that this adapter is
used to read/write the file from/to remote system.

Question: What all differences we have between File and FTP adapters.
Answer: Following are the major differences between File and FTP adapter.
File Adapter
1. It is used to deal with local systems only.
2. Do not require any configuration to make this adapter work.

FTP Adapter
1. It is used to deal with remote systems.
Page 38 of 49

2. Outbound Connection Pool needs to be configured with FTP details to make this
adapter work.

Question: File & FTP adapters are known and Transactional or Non-Transactional
adapters?.
Answer: These adapters are known as non-transactional adapters as these adapters
does not support transactions.

Question: Can we read flat files using these adapters?.


Answer: yes, we can read both Flat and XML files using these adapters.

Question: Do we have support for multiple directories in File & FTP adapter ?
Answer: Yes, we can specify more than one directory for these adapters. This is
applicable to both physical and logical directories.

Question: What is difference between Physical and Logical Directory ?.


Answer: Below are the major differences between Physical and Logical paths.

Physical Path
1. As name suggest, we mention actual full path (physical) of directory
2. Not Flexible
3. We need to manual change this when difference environments has different paths

Logical Path
1. Here we can mention any logical name and actual value of that path define in
Composite.xml file.
2. Flexible as we can change it from EM console.
3. We can easily replace this path with the help of Config plan if we have difference
paths in different environments.

Question: What all operations we can perform in these adapters ?.


Answer: We can perform following operations in File and FTP adapters.
1. Read file
2. Write File
3. Sync Read
4. List Files
Page 39 of 49

Question: What is the difference between Read and Sync Read operation ?.
Answer: We go for Read operation when we need to perform polling i.e. our process
start with polling for file and Sync Read operation is used when you need to read the file
in between the flow .

Question: Can we read the file without reading its content?.


Answer: Yes, we can read the file without reading its content by selecting ―Do not read
file content‖ check box.

Question: How we read large files using these adapters?.


Answer: We can use streaming option to read large files using these adapters. We can
also read the files in attachment form.

Question: Can we append to existing file using these adapters?.


Answer: Yes, we can append to existing file using these adapters.

Question: What is minimum file age property ?.


Answer: This property is used to ensure proper hand shaking, by using this property we
can ensure that we read only that file that are completely written by clients, we don’t
read incomplete files. e.g. If we set this property value as 2 minutes, adapter will only
read that files that are 2 minutes older in that folder.

Question: What is Trigger file option?


Answer: By default, polling by inbound Oracle File and FTP Adapters start as soon as
the endpoint is activated. However, if you want more control over polling, then you can
use a file-based trigger. Once the Oracle File or FTP Adapter finds the specified trigger
file in a local or remote directory, it starts polling for the files in the inbound directory.

For example, a BPEL process is writing files to a directory and a second BPEL process
is polling the same directory for files. If you want the second process to start polling the
directory only after the first process has written all the files, then you can use a trigger
file. You can configure the first process to create a trigger file at the end. The second
process starts polling the inbound directory once it finds the trigger file.

Question: What is Native format ?.


Answer: Native format means, we read the file in opaque format, we do not convert it to
XML format from its original format.
Page 40 of 49

Question: Can we change the file name and directory path at runtime ?.
Answer: yes, we can change the file name and directory path at run time, for that open
the Invoke activity used to invoke file/ftp adapter then go to Properties tab and update
the following properties for the same.
jca.file.FileName/jca.ftp.FileName
jca.file.Directory/jca.ftp.Directory

Question: What will be output for file list operation?.


Answer: File List operation shows that what all files are available in the specified folder
and also show file name, file size and time stamp of each file.

Question: Why database adapter used in SOA Suite?.


Answer: Database adapter is one of the technology adapter, we use this adapter to
interact with database.

Question: What all operations we can perform in database adapter ?.


Answer: We can perform following operations in database adapter.
1. Store Procedure or Function call.
2. CRUD operations
• Select
• Update
• delete
• Insert
• Merge
3. Poll new or updated records
4. Pure Sql

Question: Database adapter falls under Transactional or non-transactional adapters ?.


Answer: Database adapter is a transactional adapter.

Question: Difference between XA & Non-XA transaction ?


Answer:
Non-XA (Local Transaction): It involves only one resource. When you use Non-XA
transaction then you can’t involve multiple resources (different databases, Queues,
application servers etc), you can rollback or commit transaction for only one resource.
Page 41 of 49

There is not transaction manager for this transaction as we are dealing with only one
resource at a time.

XA (Global Transaction): It involves more than one resource (different databases,


queues, application servers) all participate in one transaction. It uses two-phase commit
to ensure that all resources either all commit or rollback any particular transaction.
When you have scenario like you need to connect to two different databases, JMS
Queue and application server, in this case you will use XA transaction that means all
resource participate in one transaction only.

Question: What is logical delete ?.


Answer: When we poll for new or changed records using database adapter, we have
multiple options after reading the data. Either we can delete the row from table (physical
delete) which is not recommended or we can update the column in source table with
new value (logical delete).
E.g. Source table has one column with the name flag, we read the data from source
table when flag column has value ―N‖ and after we read the data then we update the
flag value to ―Y‖.

Question: What is Data Source?.


Answer: We specify database details to connect to database, if we hard code these
details in code then we need to change code to reflect new details when we move to
next environment so to solve this problem, data source concept came where we specify
database details so that we need not to make changes in code. We just update the data
source configuration in different environment.
When we use database adapter to connect to database, we need to specify outbound
connection pool. That outbound connection pool further refer to data source.

Question: How we can limit the number of rows fetched using database adapter ?
Answer: We can limit the number of rows fetched using ‖ Database Rows per
Transaction‖ property. For example, assume there are 10,000 rows at the start of a
polling interval and this field is set to 100. In standalone mode, a cursor iteratively reads
and processes 100 rows at a time until all 10,000 rows are processed, dividing the work
into 10,000/100=100 sequential transactional units
Page 42 of 49

Question: How we can limit the number of rows per XML message while sending the
message from database adapter to consumer ?.
Answer: By using ―Database Rows per XML Document‖ property.

Question: What is difference between JMS, AQ and MQ ?.


Answer: JMS is Java Message Queue which is open source, AQ is advanced queue
which is Oracle standard and MQ is message queue which is IBM standard.

Question: Why JMS, AQ and MQ adapters are used?.


Answer: JMS adapter is used to read/write data from/to JMS queue/topic. AQ adapter
is used to deal with AQ and same way MQ adapter is used to interact with MQ.

Question: These adapters comes under transactional or non-transactional category ?.


Answer: These adapters come under transactional adapters category as these
supports transactions.

Question: What is difference between JMS queue and topic ?.


Answer: JMS queue is used when we have one to one interaction, consumer put the
message to JMS queue but only listener can pick the data from that queue as once that
listener pick the data , data get deleted from the queue.

JMS topic is based on publish subscribe model, here multiple listeners/consumer can
consume the same message. JMS topic is used when we need to transfer same data to
multiple places.

Question: What all operations we can perform with JMS adapter?.


Answer: We can perform following operations with JMS adapter.
1. Read
2. Write
3. Sync Read & Write

Question: What is message selector property ?.


Answer: When we read the data from JMS queue/topic based upon some condition
then this property is used. e.g. We use same queue to store different types of message
so in one flow we need to pick only Sales Order information so in sales order composite
we use message selector property to pick only that record.
Page 43 of 49

Question: Can we add custom header properties to JMS header while sending
message to JMS queue/topic?.
Answer: Yes, we can do that.

Question: Can we read custom header properties ?.


Answer: Yes, we can read custom header properties from JMS queue/topic by
specifying the property name that we want to read.

Question: What is Connection Factory ?.


Answer: A connection factory is an object that a JMS client uses to create a connection
with a JMS provider. We use connection factory in SOA suite tool to connect to server
where JMS queue/topic created.

Question: Do we always needs to create connection factory ?.


Answer: No, you need to create only when you need to specify custom properties
otherwise you can use default connection factories.

Question: What is persistent store ?.


Answer: The persistent store provides a built-in, high-performance storage solution for
WebLogic Server subsystems and services that require persistence. For example, it can
store persistent JMS messages or temporarily store messages sent using the Store-
and-Forward feature. The persistent store supports persistence to a file-based store or
to a JDBC-enabled database.

Question: How we can do retry once message roll back to JMS queue ?.
Answer: We have ―Deliver Failure‖ tab in JMS queue where we can set properties to do
retry after certain intervals.

Question: What parameters we need to set in Delivery Failure tab ?.


Answer: We need to set following parameters.
Redelivery Delay Override : Time interval between retries. It is in milliseconds.
Redelivery Limit: number of retries
Expiration Policy:
Redirect : redirect message to different queue.
Log : log the message.
Discard : discard message and it will be lost.
Page 44 of 49

Error Destination: If you choose ―Redirect‖ then choose the queue to which you want to
redirect message.

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 polling frequency for AQ and MQ adapters ?.


Answer: No, we can’t set polling frequencies for AQ and MQ adapters as both the
adapters are event driven.

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.

True

Question: When we need to secure our services?


Answer: Security only require when we expose our services to external world.

Question: How we implement security in SOA Suite tool?


Answer: We use OWSM to implement security in SOA Suite tool.

Question: What is OWSM?


Answer: OWSM stands for Oracle Web Service Manager. Oracle Web Services
Manager offers a comprehensive and easy-to-use solution for policy management and
security of service infrastructure. It is a standalone platform for securing and managing
access to web services.
Page 45 of 49

Question: Do we need to install OWSM?


Answer: Yes, we need to check OWSM option while creating a domain so that we can
use predefine policies.

Question: How we can add OWSM policies to SOA Composite?


Answer: We can add OWSM policies to SOA composites by following ways.
1. Through policy annotations at design time using JDeveloper
2. Via the Administration Console at runtime
3. Via Fusion Middleware Control or WLST

Question: How we categories the policies?


Answer: We categories policies to two types. One Service policy and other Client
policy.

Question: When we call secured web service from SOA, which policy we will use
―Client‖ or ―Service‖?
Answer: When we call secured web service from SOA then we add ―Client‖ policy to
reference partner link and when we want to secure our web service then we use
―Service‖ policy.

Question: Can we attach OWSM policy to multiple composites to secure composites?


Answer: yes, we can apply one policy to all composites in one domain using policy
sets.

Question: what is the scope of Policy Sets or where we can apply Policy sets ?
Answer: Below is the scope of Policy Sets.

Domain: all policy subjects of the specified type in a domain


Application or Partition : all policy subjects of the specified type in an application or SOA
partition
Application module or SOA composite : all policy subjects of the specified type in an
application module or SOA composite
Service or reference: all policy subjects of the specified type in a SOA service or
reference
Port or component: all policy subjects of the specified type in a port or SOA component
Page 46 of 49

Question: What is error or fault?


Answer: We say there is error or Fault means when we didn’t receive expected
response.

Question: How many types of faults we can have in SOA Suite tool ?.
Answer: We categories fault into two categories.
1. Business Faults
2. Technical Faults

Question: What is Business Fault?


Answer: As the name suggest, these faults related to business scenarios. These errors
are thrown explicitly in code by us. E.g. we have written the functionality to do card
validation but do card number check if card number comes blank then we throw
business fault and reply back to user with same response.

Question: What is Technical Fault?


Answer: Faults other than business faults known as technical faults. There may be
many reasons for these technical faults like code break, connectivity error, Invalid
message etc. But mostly we receive connectivity errors under technical faults.

Question: Can we define our own faults?


Answer: Yes, we define our own faults in SOA Suite tool, we generally created fault for
business fault scenario where we explicitly throw error.

Question: What steps we need to follow to create custom error?


Answer: We need to follow below steps to generate custom error.
1. Define XML structure for fault message.
2. Create message based on that XML structure in WSDL.
3. Associate that message in WSDL operation.

Question: Which activity we use to throw business fault in BPEL?


Answer: We use throw activity to throw business fault.

Question: What is difference between Remote and Binding fault?


Answer: We receive remote fault when we have connectivity issue while connecting to
reference systems/applications. We receive binding fault preparation of the invocation
Page 47 of 49

fails. For example, the WSDL of the process fails to load. A binding Fault is not
retryable. This type of fault usually must be fixed by human intervention.

Question: How we can handle faults in SOA Suite tool?


Answer: We can handle faults by two ways in SOA Suite tool.
1. Using Catch & CatchAll blocks
2. Using Fault Handling Framework

Question: How catch & CatchAll blocks work?


Answer: We use these blocks to handle the fault in BPEL component. We can’t use
these blocks in other components to handle the fault. We can apply these blocks to
main BPEL process or we can also apply at scope level as per our requirement.

Question: What is the difference between Catch & CatchAll block?


Answer: Following are the difference between Catch & CatchAll block.

Catch block

1. This is used to handle specific fault


2. Store fault information in fault variable
3. We can add more than one Catch block in one BPELL process.

CatchAll block

1. This is used to handle any type of fault.


2. We need to use functions to get the fault details.
3. We can add only on CatchAll block in one BPEL process.

Question: Which function we use to get Fault Name and Fault description in CatchAlll
block?
Answer: We use ora:getFaultName() to get fault name and ora:getFaultAsString()
function to get fault description in CatchAll block.

Question: What is Fault Handling framework?


Answer: Oracle SOA Suite provides generic fault management framework to handle
the faults. We use this framework to handle the fault that occur during invocation time.
Page 48 of 49

Question: What is the difference between Catch blocks and Fault Handling
Framework?
Answer: Following are the difference between these two.

Catch & CatchAll Blocks


1. We use Catch & CatchAll block to handle all types of error.
2. These can be used only for BPEL component.
3. We can use this for all BPEL templates (Sync, Async, Oneway).

Fault Handling Framework


1. We use this framework only to handle invocation faults; we can’t use this framework
to handle all types of fault.
2. This can be used for BPEL as well as Mediator component.
3. We should use this only for two BPEL templates (Async and OneWay).

Question: How Fault Handling Framework works?


Answer: Fault Handling Framework is based upon two files.
Fault-policy.xml: This file is used to define one or more fault policies with conditions and
actions.
Fault-binding.xml: This file is used to associates a policy with a composite, component
or reference.

Question: Where we keep these two fault-polic.xml and fault-binding.xml files?


Answer: We keep these files either local to our project or in MDS. We need to specify
the path of these files in composite.xml file when we keep these files in MDS.

Question: Can we define more than one policy in fault-policy.xml file?


Answer: We can have more than one policy in fault-policy.xml file and each policy will
have its unique id.

Question: What all actions we have in fault-policy.xml file?


Answer: We have following actions in fault-policy.xml file.
1. Retry
2. Human Intervention
3. Terminate
4. Java call
Page 49 of 49

5. replay
6. rethrow

Question: How we handle errors in mediator component?


Answer: We use fault handling framework to handle fault in mediator as in mediator we
get only one type of fault.

Question: What is file rejection handler?


Answer: File rejection handler is used to handle rejected file while performing polling.

Question: What all types of rejection handlers we have?


Answer: We have following types of rejection handler in SOA Suite tool.
1. Web Service Handler
2. Custom Java handler
3. Queue handler
4. File Handler

You might also like