You are on page 1of 29

Part 1: SOA Suite Basics

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
Part 2: Installation

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.

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

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.
Part 3: SOA Suite Architecture

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

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 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.
Part 4: BPEL

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.

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.

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.
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.
Part 5: Mediator

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

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

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.
Part 6: Business Rules

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.

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.

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.
Part 7: Human Task

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.

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.
Part 8: MDS

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 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.
Part 9 : Adapters

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
• 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.

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.
Part 10 : File and FTP Adapter

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.
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

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.

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.
Part 11 : Database Adapter

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. 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

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.
Part 12 : JMS Adapter

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.

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.

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
Part 13 : Error Handling

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 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.

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
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
Part 14 : Security-OWSM

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.

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

You might also like