Wednesday, 7 February 2018

Extract Username from service policy in SOA Bpel



Extracting Username from service policy using JAVA Embedding activity in bpel.


1. Create a bpel variable "securityUserVar"
2. drag a java embedding activity in bpel flow and use below block of code for i to extract the username form service policy subject and assign it to the bpel variable.

try{  
System.out.println("***Inside JAVA Embedding****\n");                 
javax.security.auth.Subject currentSubject = oracle.security.jps.util.SubjectUtil.getCurrentSubject();          
String   username = oracle.security.jps.util.SubjectUtil.getUserName(currentSubject);          
setVariableData("securityUserVar",username);  
}  
catch(Exception e)  
  {  
  e.printStackTrace();  
}

3. Now the bpel variable is holding the username and use the variable "securityUserVar" where ever the username is required in the flow.

Sunday, 17 September 2017

Eliminate duplicate nodes/records from a list using xslt

Request Payload:

      <GetDocumentsResponse>
         <tns:DocumentDetails>
            <tns:DocumentId>217</tns:DocumentId>
            <tns:DocumentSource>WCC</tns:DocumentSource>
         </tns:DocumentDetails>
         <tns:DocumentDetails>
            <tns:DocumentId>12312173</tns:DocumentId>
            <tns:DocumentSource>WCC</tns:DocumentSource>
         </tns:DocumentDetails>
         <tns:DocumentDetails>
            <tns:DocumentId>218</tns:DocumentId>
            <tns:DocumentSource>W</tns:DocumentSource>
            <tns:DocumentName>Test document 10</tns:DocumentName>
         </tns:DocumentDetails>
         <tns:DocumentDetails>
            <tns:DocumentId>217</tns:DocumentId>
            <tns:DocumentSource>W</tns:DocumentSource>
            <tns:DocumentName>Test document 13</tns:DocumentName>
         </tns:DocumentDetails>
      </GetDocumentsResponse>

Expected Response:

Eliminated duplicate records using one of the child nodes (DocumentId here). Eliminate duplicated DocumentId="217" record from the response just like below.

      <GetDocumentsResponse>
         <tns:DocumentDetails>
            <tns:DocumentId>217</tns:DocumentId>
            <tns:DocumentSource>WCC</tns:DocumentSource>
         </tns:DocumentDetails>
         <tns:DocumentDetails>
            <tns:DocumentId>12312173</tns:DocumentId>
            <tns:DocumentSource>WCC</tns:DocumentSource>
         </tns:DocumentDetails>
         <tns:DocumentDetails>
            <tns:DocumentId>218</tns:DocumentId>
            <tns:DocumentSource>W</tns:DocumentSource>
            <tns:DocumentName>Test document 10</tns:DocumentName>
         </tns:DocumentDetails>
      </GetDocumentsResponse>



Solution:

XSLT 1.0:

Use the below xslt template with version 1.0.

<xsl:stylesheet version="1.0">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
  <xsl:strip-space elements="*"/>
  <xsl:key name="DocumentDetailsById" match="/ns0:GetDocumentsResponse/ns0:DocumentDetails" use="./ns0:DocumentId"/>
  <xsl:template match="node()|@*">
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
  </xsl:template>
  <xsl:template match="/ns0:GetDocumentsResponse/ns0:DocumentDetails[not(generate-id() = generate-id(key('DocumentDetailsById', ./ns0:DocumentId[1])))]"/>
</xsl:stylesheet>



XSLT 2.0:


<xsl:stylesheet version="2.0">
    <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/*">

     <XML>
       <xsl:for-each-group select="/ns0:GetDocumentsResponse/ns0:DocumentDetails" group-by="./ns0:DocumentId">
         <xsl:sequence select="."/>
       </xsl:for-each-group>
     </XML>
 </xsl:template>

</xsl:stylesheet>











Wednesday, 30 August 2017

Filter List using multiple sub/child elements in XSLT

<xsl:for-each select="//DocumentList/DocumentDetails[./DocumentSource=$DocumentSource or $DocumentSource= ''][./Category = $Category or $Category = '']">


I have Request something like below:

<DocumentList>
  <DocumentDetails>
    <DocumentID>Document1</DocumentID>
    <DocumentSource>DocumentSource1</DocumentSource>
    <Category>Category1</Categoty>
  </DocumentDetails>
<DocumentDetails>
    <DocumentID>Document2</DocumentID>
    <DocumentSource>DocumentSource2</DocumentSource>
    <Category>Category2</Categoty>
  </DocumentDetails>
  <DocumentDetails>
    <DocumentID>Document3</DocumentID>
    <DocumentSource>DocumentSource2</DocumentSource>
    <Category>Category2</Categoty>
  </DocumentDetails>
</DocumentList>


Expected Output:


The DocumentList has to be filtered out using DocumentSource and Category.

For Ex: DocumentSource=DocumentSource2 and Category=Category2
Result:

<DocumentList>
  <DocumentDetails>
    <DocumentID>Document2</DocumentID>
    <DocumentSource>DocumentSource2</DocumentSource>
    <Category>Category2</Categoty>
  </DocumentDetails>
  <DocumentDetails>
    <DocumentID>Document3</DocumentID>
    <DocumentSource>DocumentSource2</DocumentSource>
    <Category>Category2</Categoty>
  </DocumentDetails>
</DocumentList>

Solution:



<xsl:for-each select="/ns0:DocumentList/ns0:DocDetails[./ns0:DocumentSource=$DocumentSource or $DocumentSource=''][./ns0:Category=$Category or $Category=''][./ns0:SubCategory=$SubCategory or $SubCategory='']">

$DocumentSource and $Category are variable holding the data "DocumentSource2" and "Category2" respectively.

Wednesday, 7 October 2015

SOA/OSB Sample Interview Questions and Answers


1. We mostly know OSB is used for Message and Protocol Transformations. How OSB performs Protocol transformations?
Answer:
By making sure service provider and service consumer are loosely coupled. This is done in OSB by segregating the connectivity into two interfaces, one from service consumer to OSB, as a Proxy and
second from OSB to service provider, as a business service. Since proxy and business services can have different transport protocols, OSB can perform protocol transformation between providers and
consumers.


2. When OSB is integrated with a Messaging System, for an asynchronous messaging model, how is it possible for OSB to send a message in a queue and retrieve the response for the same, i,e how to map the request/response in a asynchronous messaging model? (I am not sure how correct the question is with respect to JMS context)
Answer:
Can be done in two ways, using JMS correlation Id and JMS message Id. Both are supported OOTB in Weblogic JMS and in OSB.


3. Is it possible to run OSB without Weblogic Server? Please give supportive reason to your answer
Answer:
No.


4. In which below mentioned situation you will encounter performance issue?

Answer:
 A single Admin Server running all SOA products (OSB, SOA suite components, BAM, B2B etc) or B. Multiple Managed Server running in a cluster where each of them hosting a single product/component?
Scenario A. Since in this case all runtime components (not just the admin ones) are running on same weblogic instance it might overload the server. You might face both CPU and Memory issues.


5. Give a high level implementation scenario WITH and WITHOUT OSB, what all different component you will choose to design a solution where a source system puts a flat file into a location and the data has to be inserted to RDBMS. Basically to design a solution for this requirement with OSB and without OSB (using SOA suite components).
Answer:
With OSB:
1. Proxy service with File transport along with MFL for text->XML conversion OR Proxy service with File Adapter
2. Business service with DB adapter (insert or insert and merge depending on requirement)
3. Transform the flat file XML content in the proxy to the input format of the business service and use a route node to invoke the business service. Add error handling as required.

Without OSB:
1. SOA composite with a file adapter in service lane.
2. Mediator component
3. DB adapter in reference lane
4. Mediator component connecting the adapters with a transformation included.


6. What is the difference between OER and OSR, what they are used for? (I have done googling but still waiting for an expert answer)
Answer:
In very short, OER can be used for all information regarding SOA services and resources (including any design documents, mappings, descriptions, usage information etc.) while OSR is UDDI compliant
registry and will be used to store only the runtime service meta info like service endpoint, WSDL etc. OSR will also provide UDDI compliant methods for looking up the service


7. How MDS is used for provisioning a service? (Previously I was under impression that it used for maintaining run time metadata of SOA service infrastructure)
Answer:
MDS will be used for storing service artifacts like Schemas and WSDLs which will be available to composites at both runtime and design time. The most basic use of MDS is for easy reuse and maintenance of artifacts so one does not have to maintain multiple copies of common artifacts.


8. Give a complete business scenario where you will implement , mediator, OSB , DB adapter, Fileadapter and  Business Rules.
Answer:
You can take any use case and define requirements such that all of these are used.


9. Is it possible to use mediator as a standalone component without interacting to other SOA suite component? Give a business scenario
Answer:
Yes. Check the answer for Q. 5 for instance.


10. Does EM console provides you a feature where you can search a payload based on a consumer data (provided it is not hidden) like invoice number or customer mobile number etc?
Answer:
Yes, depending on how you are logging stuff and audit levels etc. You can set composite title with the relevant data (for ex. customer id from payload) and then search in EM console for that. Or you can use sensors to log the payload and then search.


11. Is possible to deploy a proxy which consuming a message from a queue/topic without any message selector? How about multiple proxys polling from a same queue without a message selector, which one will consume the message?
Answer:
You can have a proxy consuming messages from a queue/topic without a message selector.
You cant have two proxies listening to same Queue (with or without message selector).
You can have two proxies listening to same topic (with or without message selector). Both will receive a copy of the messages, and then will consume the messages depending on the selector.


12. Is it possible to establish a connection to a message system (JMS/MQ) without creating a JMS connection factory?
Answer:
No


13. What is local protocol in OSB and what are advantages of this? Give a real life scenario.
Answer:
In short same thread from the calling proxy will be used for processing a local proxy. Performance wise better. Easier to chain services and create moduler interfaces.


14. How you would configure a proxy service to poll from a multiple queues? Give the details what setting has to be done in proxy configuration?
Answer:
Proxy service can not poll from different queues. It can however poll from a distributed queue or same queue running on multiple servers by providing a comma separated list of listen addresses before JNDI name in the endpoint URL.


15. Assume in a distributed OSB system there are 2 MS running. A file adapter has been configured to read a file from a particular location. What location you prefer to give as an input? any place of MS1 or MS2?
Answer:
Ideally both MS1 and MS2 should be mounted on a shared filesystem and then you can provide either of the them.


16. In a distributed OSB system, if you have been asked to create 2 separate queues residing on 2 MS, how you will implement this?
Answer:
You can either created uniformly distributed queue, or you can also create different queues and target them on different servers but having same JNDI names.


17. What are the other standard ways of doing message transformation apart from XQuery/XSLT?
Answer:
Java Callout, MFL, NXSD, External Xquery Resource, External XSLT resource, XQuery expression within actions, XSLT expression within actions.


18. In Oracle Weblogic Server we all know that, in data-source configuration maxCapacity determines the max number of active connections in the pool. Think of scenario where in a certain DS has maxCapacity of 100 and initial of 30. The application can't use more than 60 connection at a time. Still Weblogic is throwig ConnectionPool is issue (No connection in pool). What is the probable cause of this? What is the debugging strategy?
Answer:
Connections might not be getting released or refreshed correctly. Reduce the shrink frequency and provide an Inactive conneciton timeout.


19. Does OSB provides weight based load balancing like 25% of load to BackEnd1, 50% of load to BackEnd2 and rest 25% of load to BackEnd3?
Answer:
Yes it does.

20:  What is throttling in OSB?
Answer: Throttling means we want to process certain messages in one time, then we need to set some parameters in OSB to do the required task

21. How Throttling is implemented in OSB?
Answer:
In memory queue is used to store messages temporarily. Business service will throttle messages going to the backend and depending on configuration of busienss service, will keep messages over the specified limit in an in memory queue(up to a specified no of max messages) to ensure that backend is not overloaded.


22. How Transactions are configured in OSB? How you would set the transaction time-outs?
Answer:
Too vast a question to answer here. A lot of different possible scenarios and different configurations depending on transport protocol.


23. If a proxy is talking to multiple DB (via multiple business services) what connection factory you will prefer, XA or nonXA? (I know XA CF has to be created if there are transactions involvement, but how to represent that as a business scenario)
From a business perspective, if all the backend databases need to have data in sync then use XA. If backend DBs are independent and if a mismatch in data between backends is not an issue then use non XA(better performance).

24: Can we use more than one route node in message flow?
Answer: No, we can't we use more than one route node in proxy service message flow.


25: When we call asynchronous service from OSB then how to get response back from that asynchronous service to OSB?
Answer: Design the proxy service which in turn calls business service which in turn calls asynchronous service. In the message flow of this proxy change the message header to below.
You need to specify ReplyTo value so that asynchronous service response came to CallSyncCompositeProxy proxy service.

<soap-env:Header xmlns:ns1="http://schemas.xmlsoap.org/ws/2003/03/addressing">
<ns1:MessageID>ws:uniqueAddress</ns1:MessageID>
<ns1:ReplyTo>
<ns1:Address><Callback Proxy Address></ns1:Address>
</ns1:ReplyTo>
</soap-env:Header>

26: to transform from binary to XML or XML to binary format what we will in OSB?
Answer: we use MFL.

27: can we use MDS in OSB?
Answer: No, Oracle Service Bus does not support MDS.

28: Can we use DVM’s in Oracle Service Bus?
Answer: Oracle Service Bus does not support DVM’s by default as SOA. But, we can import the xml file created from .dvm from jdeveloper to OSB and map dvm values.

1) Why SOA?     
·         What are the advantages?
· What are the disadvantages?
2) What are the approaches to categorize the existing services in a company?  ------How do we prepare a service portfolio before implementing SOA?
3) What are the different design patterns in SOA?
·         What are the different types of installation of SOASuite 10g?

xml/xsd/wsdl Related
1.      What is the difference between concrete and abstract wsdl?
2.      What is the structure of a wsdl?
3.      Difference between Synchronus,One-way,Asynchronus BPEL process wsdls.
4.      What is the significance of targetNamespace in a wsdl.
5.      What is a inline schema?
6.      What is the difference between xsd:import and xsd:include?
7.      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.
8.      Difference between URI and URL?         

5) What is SOAP and what are the binding protocols available? ---google it.
6) Why SOAP over http why not WSIF even if the later ensures JTA transaction and is faster than former
BPEL Related (10g/11g)
7) What is choreography? How does it differ from orchestration?
Orchestration == Executable Process
Web Service Orchestration relates to the execution of specific business processes. WS-BPEL is a language for defining processes that can be executed on an orchestration engine.
Choreography == Multi-party Collaboration
Web Service Choreography relates to describing externally observable interactions between web services. WS-CDL is a language for describing multi-party contracts and is somewhat like an extension of WSDL: WSDL describes web services interfaces; WS-CDL describes collaborations between web services.
8) What is a pick activity?Can I have a pick activity with no onMessage branch?
Go to Developers guide. Answer is no.onMessage branch is mandatory.
 9) What are the different message exchange patterns in BPEL?
Go to developers Guide.
10) What is the difference between Async and Sync activity on wsdl level?
Two port vs one port funda. Create the two and see the difference.
11) How does pick activity differ from a receive activity?
Pick activity can act as a multiple recieve activity in some business scenarios.If we have two inbound operations and both can trigger the bpel process then we will go with pick activity as we cant have two recieve activity with createInstance box checked.
12)What is a flow activity? Is it sequential or parallel? What is nonBlockingInvoleAll property?
Go to developer's guide.
What is a flowN activity and how does it leverages the flow activity?
Go to developers guide.
13) What are dspMaxThread and a recieverThread properties?Why are they important?
Go to Best Practice Guide
14) How does a async request run in the backend?
Go to Best Practice Guide
15) Explain error handling in BPEL and what is a error handling framework?
Go to Developer's Guide
16) How do we handle transactions in BPEL? or for more
What is transaction=participate?Where do we set this?

go to Developers Guide.bpel.xml
§  What do you mean by non-idempotent activity?Which all activities are non-idempotent by default?
All retriable activities are idempotent by default.If idempotent is set to be false then it is a start of new transaction and in other words a Dehydration point is created.recieve,pick,wait,checkpoint() are non-idempotent by default.
§  What are transient and durable BPEL processes?
§  Dehydration in Oracle BPEL?
§  What is the default level of transation in a composite<required|requiredNew>?
Default is required.

17)What is a XA datasource?How it differs from a non-XA datasource?
18)How a wsdl of inbound jca adapter differs from a outbound one?--create and check.
19)How will you know if a adapter is XA or Non-XA? ---create them and check. Logically they both will implement different classes.
20)What are MCF properties? --- go to developer's guide
21)What all operations can be performed using a file adapter? --create and check
22)What is a syncFileRead operation?Is is a inbound or a outbound operation?Can my process begin with a syncFileRead operation?---Go to developer's Guide.No since it is a outbound operation so you need to invoke it.
23)What all errors can't be handled by a BPEL process?--Best Practices Guide
24)What is a throw activity?---Go to Developer's guide
25)Why do we use a JMS queue?What is the benefit of using it over a simple AQ queue?--maintain JTA transaction capability and to ensure one and only one message delivery.
26)What is getPreference property?How do we set it and what advantage it provides?Explain with a example?--Go to developer's guide
27)How can we make a partner link dynamic?

28)What are the dehydration tables in orabpel|soainfra schema?
29)How do we resubmit a faulted process?---Developers guide
30)How does the server know that a instance is faulted?--Best practice Guide
31)What is a nonBlockingAll property?What is the use of it?
32)In how many ways can a process be deployed?
33)How can we embed or use a java code in BPEL?How can we make a java service a Web-service?What is xml facade?
Can we use a File Adapter to get a file without reading its content?---yes.go to developers guide 11g
How can we use a file as a trigger file?--go to developers guide 11g
XA vs nonXADatasource?

ESB
33)When do we use ESB over BPEL?
34)Why ESB is faster than its BPEL counterpart?
What is the difference between ESB runtime & Designtime?
35)What is the out of box error handling framework in ESB?
36)How can we get instance ID in ESB?
37)How can we make routing in ESB dynamic?
Most of them are discussed in Best Pratices Guide.
AIA
38)Why AIA? What is the need of it if SOA is already there?
39)When to go for AIA?
40)What is EBO,EBM,EBS,EBF,ABCs?
41)Can a ABCs be a ESB process?If yes in what scenario?
42)How can we extend a EBM?
43)How can we extend a EBS?
44)How can we extend a ABCs?
45)What is a standard AIA flow?
46)What is the error-handling framework in AIA?
Mixed Categories
§  What is SOA, Oracle SOA suite, BPEL, ESB
§   Designer for Business process
§  Difference between BPEL and ESB
§   Role of XML in EAI
§   Activities in BPEL
§   Transactions and fault (exception) management
§  Run time components of SOA
§  Calling external web service
§  Calling asynch BPEL process within empty BPEL process
§  Combination of ESB and BPEL and third party web services
§  Java embedding
§  BPEL and ESB console
§  Adapter - concepts, integration, life-cycle mngmt, translation errors
§  Oracle E-Biz adapter and capturing event from oracle ERP
§  Fine tuning BPEL process
§  Deployment framework
§  Business rules and AIA
§  Email notification and rejection handler
§  Patches and installation - unix based and windows based
§  External resource management (example MQ shared library and third party jar files)
§  OAS administration - 10.1.3.4 / 10.1.3.5
§  JMS and connection pools
§  Transformation and iteration
§  Which are the areas you think Oracle SOA fits perfectly                                                                 Answer - EAI with real-time data transfer, need heavy data communication with rich business logic, Oracle ERP in existing environement]
§  Loose coupling and control at central point (orchestration vs. choreography)



Java related questions with respect to EAI
1) XML and XSD
2) JAXp and JAXb
3) Collections
4) Web container and Application server

Few Others
1. Is Oracle SOA same as Oracle Fusion Middleware
Oracle Fusion Middleware is a collection of standards-based software products that spans a range of tools and services from J2EE and developer tools, to integration services, business intelligence, collaboration, and content management. Oracle Fusion Middleware offers complete support for development, deployment, and management.
Oracle SOA Suite is an essential middleware layer of Oracle Fusion Middleware. It provides a complete set of Service Infrastructure components for designing, deploying, and managing composite applications

2. What is SOA Governance
Service-Oriented Architecture (SOA) governance is a concept used for activities related to exercising control over services in an SOA

3. How to increase performance increase in bpel (Db Adapter/file adapter)
We can increase the performance by writing indexes and sequences.
(Or) Go to application server --- >Configurations ----- > Change Xml file

4. Predefined errors in BPEL?
Custom errors
Timed out errors
BPM errors
Validation Errors

5. Is it possible to use MS SQL Server as dehydration store with SOA Suite ?if yes how?
Yes it is possible.
To automatically maintain long-running asynchronous processes and their current
state information in a database while they wait for asynchronous callbacks, you use a database as a dehydration store.
Storing the process in a database preserves the process and prevents any loss of state or reliability if a system shuts down or a network problem occurs. This feature increases both BPEL process reliability and scalability. You can also use it to support clustering and failover.

6. What are the various elements in WSDL?
Various elements are:
Types, messages, operation, port, bindings and Services.
Types– a container for data type definitions using some type system (such as XSD).
Message– an abstract, typed definition of the data being communicated.
Operation– an abstract description of an action supported by the service.
Port Type–an abstract set of operations supported by one or more endpoints.
Binding– a concrete protocol and data format specification for a particular port type.
Port– a single endpoint defined as a combination of a binding and a network address.
Service– a collection of related endpoints.


7. Why do we need to have messages in WSDL, aren't operations and types enough to describe the parameters for a web service
Messages consist of one or more logical parts. Each part is associated with a type from some type system using a message-typing attribute. The set of message-typing attributes is extensible.
•The element describes the data being exchanged between the Web service providers and consumers.
• Each Web Service has two messages: input and output.
•The input describes the parameters for the Web Service and the output describes the return data from the Web Service.
•Each message contains zero or more parameters, one for each parameter of the Web Service's function.
•Each parameter associates with a concrete type defined in the container element.
So describing the parameters cannot performed by operations and types this is the main need of Messages

8. What is structure of SOAP message?

The structure of a SOAP message: A SOAP message is encoded as an XML document, consisting of an element, which contains an optional element, and a mandatory element. The element, contained within the , is used for reporting errors.
The SOAP envelope
The SOAP is the root element in every SOAP message, and contains two child elements, an optional and a mandatory .
The SOAP header
The SOAP is an optional sub-element of the SOAP envelope, and is used to pass application-related information that is to be processed by SOAP nodes along the message path.
The SOAP body
The SOAP is a mandatory sub-element of the SOAP envelope, which contains information intended for the ultimate recipient of the message.
The SOAP fault
The SOAP is a sub-element of the SOAP body, which is used for reporting errors.
With the exception of the element, which is contained in the of a SOAP message, XML elements within the and the are defined by the applications that make use of them, although the SOAP specification imposes some constraints on their structure. Figure shows the main elements of a SOAP message.

SOA/BPEL basic questions


1.    Explain SOA architecture?
2.    Explain WSDL structure?
3.    What is the use of SOA in IT industry and how it resoves the problem?
4.    Why we use BPEL and ESB in SOA?
5.    What is the main concept behind ESB?
6.    What builds up Oracle Fusion Middleware?
7.    What are various parts of Oracle SOA Suite?
8.    What is the main function of Business Rules?
9.    Why we use Web service Manager?
10.  How can we secure our web services using Oracle SOA Suite?


Project Question

 11.  Explain about your project Architecture?
12.  How you are using SOA in your architecture (Flow of BPEL--> ESB)?


BPEL Technical
 13.  What is the use of PICK activity in BPEL PM?
14.  Why we use Decision service?
15.  How can we improve the performance of an XSL file? –
Answer: - By avoiding use of various if statements and using choose, and by using for-each group in place of for-each.
16.  How to deploy an XSL file without deployment of BPEL Process?
Answer: - we will directly deploy the XSLT, options: -
    Using ANT script by file replacement in TMP folder.
    By creating a folder in BPEL PM installation folder and specifying its location in our BPEL code with http          call and replacing our xslt to that location

Question on Dehydration Database
17.  What is the use of Work_Item table?
18.  How can we clear the instances using dehydration database?

ESB Technical’s
19.  How can you call a web service or BPEL process in an ESB?
Answer: -
    By selecting the service of deployed BPEL process -- It creates problem while deployment as it has dependencies.    By copying the wsdl of deployed process and then creating a SOAP service of that process.
20.  What are DVM's and how are they helpful in SOA?
21.  What is end point virtualization?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

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 the resulting actions sequentially. Sequential routings are evaluated in the same thread and transaction as the caller Oracle Mediator queues and evaluates routings in parallel in different threads.The messages of each Oracle Mediator service component are retrieved in a weighted, round-robin fashion to ensure that all Oracle Mediator service
components receive parallel processing cycles. This is true even if one or more Oracle Mediator service components produce a higher number of messagescompared 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 anOracle 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 global transaction propagated through the thread that is processing the incoming message. For example, if an
inbound JCA adapter invokes an Oracle Mediator, the Oracle Mediator enlists itself with the transaction that the JCA adapter has initiated.Oracle Mediator initiates a new transaction for processing each parallel rule. The initiated transaction ends with an enqueue to the Oracle Mediator parallel message dehydration store.

For example, if an Oracle Mediator service 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.

Oracle Mediator never commits or rolls back transactions propagated by external entities. Oracle Mediator commits or rolls back transactions because it is the initiator of these transactions. 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.
Few More (SOA and OSB Interview questions)
1)    What is the difference between SOA Suite 10g and 11g?
SCA architecture was followed in 11g and not in 10g
In 11g you can put all your project SOA components in composite.xml file and deploy to single server, where in 10g you have to deploy each component to the respective server (i.e ESB to ESB server, BPEL to BPEL Server)
Basically all the SOA components like BPEL, ESB (Called Mediator in 11g), & OWSM are brought into one place in 11g using SCA composite concept.
· The major difference between 10g & 11g would be the app server container. 10g by default runs onOC4J while 11g runs on Web logic Server.
· In 10g every BPEL is a separate project, but in 11g several components can make 1 project as SCA.
· In 10g consoles are separate for BPEL and ESB, but in 11g Enterprise Manager contains all.
· In 10g we have to deploy each project separately, but in 11g we can deploy SCA which contains all.
· In 10g BAM and business rules are outside SOA Suite, but in 11g they are in SOA Suite.

2)      What is SOA?
Service Oriented Architecture (SOA) is used to develop Enterprise applications by using a collection of services which communicates each other. Service-Oriented Architecture (SOA) is a set of principles and methodologies for designing and developing software in the form of interoperable services.


3)      Principles of SOA?
·         loose coupling
·         Re-usability
·         Interoperability
·         Flexible

4)      Is Oracle SOA same as Oracle Fusion Middleware?
No because SOA is one of  the part in Fusion middleware  and
SOA behaves like user interface where as Fusion is big platform
5)      What is SCA?
Service Component Architecture (SCA) provides a programming model for building applications and systems based on a Service Oriented Architecture. SCA is a model that aims to encompass a wide range of technologies for service components and for the access methods which are used to connect them.

6)      What is Web service?
Web services are application components, which are self-contained and self-describing and provide services based on the open protocol communication (i.e SOAP UI, HTTP over the net).
A Web service is a method of communication between two electronic devices over the web. A Web service is a software function provided at a network address over the web or the cloud, it is a service that is “always on” as in the concept of utility computing.
7)  What is Mediator?
The Mediator is in charge of interconnecting, within an SOA composite application, components that expose different interfaces. In addition, the Mediator can perform duties such as filtering and making routing decisions.
The composite editor in JDeveloper gives you the flexibility to define the interface now, to choose an existing interface, or to define the interface later as you wire components to the Mediator.
Transforming data from one representation to another is, along with routing, one of the key functions of the Mediator.
8)  Difference between ESB and Mediator?
In 10g for routing, separate router need to keep along with ESB for routing and filter expressions.
Where as in 11g mediator contains routing rules and filter expressions itself.
9. How can you generate File Based Events using Oracle Service Bus?
Service Bus allows you to create Proxy Services that can poll to ftp and sftp servers . Create a Messaging Type Proxy Service and choose , ftp or sft as the protocol on transport configuration.
10. How can you invoke an EJB method from Oracle Service Bus?
EJBs can be invoked as Web Services by first registering a Business Service with ejb transport and then getting the WSDL from the Business Service.

Basic OSB/SOA Suite 11g Interview Question with Answers:
11. How can you achieve parallel processing in Oracle Service Bus?
Oracle Service bus has the Split Join capability. A request can be broken to multiple childs each of which can be processed parallel and the results can be joined and then sent to requester.

12. What is difference between a WSDL Proxy Service and Any SOAP Proxy service?
Any SOAP proxy service can accept any payload that conforms to SOAP schema.
13. Can you interact directly with Database from Service Bus?
Yes by using the BEA XQuery method execute-sql
14. How can you interact transaction ally with multiple EIS such as JMS EJB and DB in Service Bus?
Invoke the Business Services and xqueries(for DB) representing the different EIS in the request pipeline
15. For a Proxy Service listening to a JMS Queue how can you ensure that the JMS Message is retried if an error occurs during processing?
Use an XA JMS Connection factory in the jms url.
16. What purpose do the Stage components serve in Service Bus?
They are the containers for actions. A stage is the smallest group to have its error handling
17. How can you jump control from one stage to next stage without using if then else logic?
Use the Skip action
18. How can you end a Proxy flow without using if then else logic ?
By using the Reply action
19. Describe the different sections of WSDL document?
WSDL different sections are Type,message,porttype,binding,service.
20. Difference between RPC and Document styles?
In RPC there is predefine standard for soap message but in Doc there is no restriction for the soap message It allows you to include whatever XML data you want and also to include a schema for this XML
21. What’s the main difference from the WSDL perspective between synchronous and asynchronous services?
§  Synchronous WSDL has one portType but asynchronous WSDL has two portType
§  Sync operation  has input,output,fault but asynchronous operation has only input
22. What’s correlation and why is it needed?
§  Corroelation is the property to map the request with the response
§  In async call it is required to map the request with response.
23.  What is SMO?
In mediation Service message object(SMO) is used for processing and manipulating messages exchanged between services. It is the extended version of SDO. SMO represnts the following group of data
§  Header Information:
§  Body Of Message
§  Message Attachments
§  Context Information
24. In BPEL 11g, how the fault handling is taken care of? What are those 2 xml files that will be used in this fault handling?
§  There is new concept to handling the fault in BPEL 11g by using two XML file
§  File names are fault-binding.xml and fault-polises.xml
25.What is a Proxy Service?
You can think of proxy services as the services published by OSB. Instead of your service clients calling the services directory, they call OSB proxy services instead.
26.What are the different types of Pipelines?
Request and Response Pipeline.
27.       What is a Publish Table?
Use a publish table action to publish a message to Zero or more statically specified services.
28.       What is a Publish Node?
Use a publish action to identify a statically specified target service for a message and to configure how the message is packaged and sent to that service.
29.Where does the Service Bus fit in the SOA landscape?
The core of SOA success depends on an Enterprise Service Bus (ESB) that supports dynamic synergy and alignment of business process interactions, continual evolution of existing services and rapid addition of new ones. To realize the benefits of SOA, it is imperative that IT organizations include a robust and intelligent service intermediary that provides a layer of abstraction to mask the complexities of service integration in heterogeneous IT environments,
30.How does OSB support REST?
By defining your proxy service as an Any XML Service so you can accept
and return XML of any flavor.
31.What are some of the major protocols that OSB supports?
http,jms,ftp,sftp,jca,tuxedo(Oracle Service Bus (OSB) use Tuxedo Transport so your applications can utilize Tuxedo services from Java EE applications via OSB proxy and business services.)
32.what is Dynamic Routing?
Dynamic Routing is used to determine the business service at runtime in the message flow.
33.In the context of OSB, what is a Pipeline?
Pipeline pairs are request and response pipelines. The request pipeline definition specifies the actions that Oracle Service Bus performs on request messages, The response pipelinedefinition specifies the actions that Oracle Service Bus performs on response messages
34. What is Message Enrichment?
Adding or deleting some element from the message is called message enrichment.
35.    What is meant by “Location Transparency”?
Through a registration and discovery mechanism, the SOA provides location transparency, which allows clients to not know (or care) about where a component or service is actually located.
36. What is dehydration storage tables?
Dehydration store is the database where BPEL engine stores all BPEL processes meta data and run time instance data. This data store is installed under db schema- ORABPEL
Meta data includes bpel process descriptor (bpel.xml), human task modelling data etc..
Run time instance data includes process instance records, process activities execution data, invoke and call back xml messages etc.
37. How to make partner link Dynamically?
Just go inside the property tab when you double click on the Invoke activity, inside the property of Invoke there are different properties(jca.file.Directory and jca.file.FileName) which you can set. Just click on the Values text space in front of the property it will take you to Adapter Property screen where you can browse the value forthisproperty.
38. What is synchronous file read ?
Sync Read option in BPEL file adapter allows us to read the file from the middle of the process, this is different from the Read option which polls for the new files and is the start of the BPEL process.
39. What is transient and durable BPEL?
Transient process: These are the kind that does not have any break activity or mid receive activity in their design. Dehydration process occurs at the end of the process. If the BPEL process crashes before finishing, then the instance is lost. We will not find the traces of this process in the dehydration store. To java folks, this is very much similar to a transient variable. When explicitly declared as transient the variable will not be persisted with the object state and cannot be serialized.
Durable process: BPEL processes of this kind are dehydrated on the fly when a breakpoint or non-idempotent activity is encountered. In the event of a server crash, the BPEL process restarts from the last dehydration point.
40. What is CAVS?
Composite Application Validation System (CAVS) is part of the Application Integration Architecture Foundation Pack and with CAVS you can test your SOA Composites like SOAPUI or the SOA Test Suite
41. What are MCF properties?
When configuring a Database Adapter or AQ Adapter via the Adapter Configuration Wizard, a Database Connection is required to configure the adapter (this is already defined in your project). The Connection Information listed is actually pulled from your JDeveloper Database Connection information.
Once the adapter is created, a WSDL file is automatically created that includes the adapter definition. This includes the Managed Connection Factory (MCF) properties as well as the Java Naming and Directory Interface (JNDI) name, as shown below:
 42. What is a syncFileRead operation?Is is a inbound or a outbound operation?Can my process begin with a syncFileRead operation?—
No since it is a outbound operation so you need to invoke it.
43.   What is canonical model?
Canonical Model is a design pattern used to communicate between different data formats. A form of Enterprise Application Integration, it is intended to reduce costs and standardize on agreed data definitions associated with integrating business systems. A Canonical Model is any model that is canonical in nature, i.e. a model which is in the simplest form possible based on a standard, common view within a given context
Canonical Model  is a design pattern, applied within the service oriented design paradigm, which aims to reduce the need for performing data model  transformation when services exchange messages that reference the same data model.
44.      Difference between  ESB/Mediator and OSB?
ALSB (Aqua Logic Service Bus) is renamed as OSB. The ‘old’ ESB has been renamed tomediator and is now only used as component in our sca application.
Mediator is an internal component installed as part of the SCA Composite editor within JDeveloper. Mediator has essentially taken place of the role of ESB in 11g and takes care of the communication brokering within an application. Mediator is geared at being used to broker messages between components that compliment each other and form a composite. Thus adhering to SCA (Service Component Architecture).
Mediator also offers functionality such as
§  Cross Referencing (XREF) – Referencing of keys and fields from separate systems, by means of storing a mapping table.
§  Domain Value Maps (DVM) – Essential DVM is used to map information from one domain to another, this helps significantly when utilizing Canonical Data Models.
§  Schema Validation – The ability to make assertions of data types in a XML Tree.
OSB is a fully fledged standalone stateless ESB, and works as an intermediary between service consumers. It does this by primarily working as a proxy or a differentiated layer between the two.
What does the Mediator do?
§  It mediates components/services within an SOA Composite Application.
§  Routes the requests to the Services
§  Data Transformation between formats and protocols
§  It DOES NOT do service localisation and it cannot act as a Gateway to the Services.
How is it different from Oracle Service Bus?
§  The main difference is in the scope. Mediator performs intra-composite mediation while Oracle Service Bus performs inter-composite mediation which means that it mediates different composites together.
Mediator is an internal component in a composite application and can be used to mediate between the components or the component and the outside world. OSB is a standalone full function powerful stateless ESB that is an intermediary between hetrogenous clients and services and is a part of neither of them.
45.  Comparison of  Oracle Mediator with Oracle Service Bus ?
Oracle Mediator is an intra-composite mediation component that is deployed within a composite, keeping the composite on a canonical model. Its primary function is to provide the transformation of legacy formats to a common format. It is responsible for brokering communications between components that make up a composite, enabling transformation, routing, event delivery, and payload validation inside the composite
46. Difference Between Service Coreography and Service Orchestration?
Web services choreography pertains to the public protocol of a Web service, describing the nature and order of messages exchanged between a Web service and its consumers or peers. Choreography has been proposed as a layer to fill the gap among existing orchestration technologies. WSCI (Web Services Choreography Interface), was proposed by BEA and Sun as a specification aimed at describing the flow of messages among interacting Web services.
Web services orchestration, on the other hand, pertains to the private implementation of a Web service, i.e. describing and executing the interactions and flow among Web services to form collaborative processes or (long-running) business transactions. The most recent orchestration specification, BPEL4WS, was brought forward jointly by IBM and Microsoft, consolidating earlier efforts by the respective vendors.
47.What are the fault handling mechanism in SOA?
Fault Handling in a BPEL Process:
There are two categories of BPEL faults:
§  Business faults
§  Runtime faults
Business Faults:
Business faults are application-specific faults that are generated when there is a problem with the information being processed (for example, when a social security number is not found in the database). A business fault occurs when an application executes a throwactivity or when an invoke activity receives a fault as a response. The fault name of a business fault is specified by the BPEL process service component. The messageType, if applicable, is defined in the WSDL. A business fault can be caught with a faultHandler using the faultName and a faultVariable.
<catch faultName=”ns1:faultName” faultVariable=”varName”>
 Runtime Faults:
Runtime faults are the result of problems within the running of the BPEL process service component or web service (for example, data cannot be copied properly because the variable name is incorrect). These faults are not user-defined, and are thrown by the system. They are generated if the process tries to use a value incorrectly, a logic error occurs (such as an endless loop), a Simple Object Access Protocol (SOAP) fault occurs in a SOAP call, an exception is thrown by the server, and so on. These faults are included in thehttp://schemas.oracle.com/bpel/extension namespace. These faults are associated with the messageType RuntimeFaultMessage.
 Some Runtime Faults:
Binding Fault: A binding Fault is thrown inside an activity if the 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.
RemoteFault: A remoteFault is also thrown inside an activity. It is thrown because the invocation fails. For example, a SOAP fault is returned by the remote service.
ReplayFault: A replayFault replays the activity inside a scope. At any point inside a scope, this fault is migrated up to the scope. The server then re-executes the scope from the beginning.

48. What is WSDL and Basic structure of WSDL?
WSDL is an XML-based language for describing Web services and how to access them. 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.

§  WSDL stands for Web Services Description Language
§  WSDL is an XML based protocol for information exchange in decentralized and distributed environments.
§  WSDL is the standard format for describing a web service.
§  WSDL definition describes how to access a web service and what operations it will perform.
§  WSDL is a language for describing how to interface with XML-based services.
§  WSDL is an integral part of UDDI, an XML-based worldwide business registry.
§  WSDL is the language that UDDI uses.
§  WSDL was developed jointly by Microsoft and IBM.
§  WSDL is pronounced as ‘wiz-dull’ and spelled out as ‘W-S-D-L’
Following are the elements of WSDL document:
§  Definition: element must be the root element of all WSDL documents. It defines the name of the web service, declares multiple namespaces used throughout the remainder of the document, and contains all the service elements described here.
§  Data types: the data types – in the form of XML schemas or possibly some other mechanism – to be used in the messages
§  Message: an abstract definition of the data, in the form of a message presented either as an entire document or as arguments to be mapped to a method invocation.
§  Operation: the abstract definition of the operation for a message, such as naming a method, message queue, or business process, that will accept and process the message
§  Port type : an abstract set of operations mapped to one or more end points, defining the collection of operations for a binding; the collection of operations, because it is abstract, can be mapped to multiple transports through various bindings.
§  Binding: the concrete protocol and data formats for the operations and messages defined for a particular port type.
§  Port: a combination of a binding and a network address, providing the target address of the service communication.
§  Service: a collection of related end points encompassing the service definitions in the file the services map the binding to the port and include any extensibility definitions.
49.What is Split Join and Types of Split Join?
Oracle Service Bus’s Split-Join feature lets you split a service payload, such as an order, into individual messages for concurrent processing. Concurrent processing, as opposed to sequential processing, greatly improves service performance. Split-Join achieves this task by splitting an input message payload into sub messages (split), routing them concurrently to their destinations, and aggregating the responses into one overall return message (join). This process of payload splitting and response aggregation is called a Split-Join pattern.
Types:
a.) Static Split-Join
The static Split-Join branches from the main execution thread of an Oracle Service Bus message flow by splitting a payload into a fixed number of new branches according to the configuration of the Split-Join. At design time you determine the number and variety of services to be invoked.
b.) Dynamic Split-Join
The dynamic Split-Join branches from the main execution thread of an Oracle Service Bus message flow by dynamically creating new branches according to the contents of the incoming payload. The dynamic Split-Join uses conditional logic to determine the number of branches to create. All requests are handled simultaneously, and the responses are aggregated into a single reply.
50. Types of Transactions in SOA?
§  Inbound transaction: A transaction initiated by an inbound adapter. For example, a transaction entering the SOA system from a JMS system.
§  Outbound transaction: A transaction outbound from the SOA system (and hence from an adapter). For example, a transaction that is made against a database outside the SOA system.
§  JTA transaction: Every step of a process is executed within the context of a JTA transaction. A JTA transaction ensures that one or more operations execute as an atomic unit of work. See the section on XA above.
§  Asynchronous transaction: A composite transaction composed of sub-transactions. However, these sub-transactions are consecutive and serialized, that is, some sub-transactions may have been committed while others may be still executing or have not yet executed. Asynchronous transactions are guaranteed to be propagated once and only once. When an update at the source is committed, the transaction commits and expects that the update is propagated to the target appropriately.
§  Synchronous transaction: These are transactions that execute in one thread from one endpoint to another, without intermediate processes, and which are not serialized.
51. What is Compensate Activity?
 The compensate activity invokes compensation on an inner scope activity that has already successfully completed. This activity can be invoked only from within a fault handler or another compensation handler. Compensation occurs when a process cannot complete several operations after already completing others. The process must return and undo the previously completed operations. For example, assume a process is designed to book a rental car, a hotel, and a flight. The process books the car and the hotel, but is unable to book a flight for the correct day. In this case, the process performs compensation by unbooking the car and the hotel.The compensation handler is invoked with the compensate activity, which names the scope on which the compensation handler is to be invoked.
 52. What is TargetNamespace?
The targetNamespace is a convention of XML Schema that enables the WSDL document to refer to itself.
53. What is  attributeFormDefault?
The form for attributes declared in the target namespace of this schema. The value must be “qualified” or “unqualified”. Default is “unqualified”. “unqualified” indicates that attributes from the target namespace are not required to be qualified with the namespace prefix. “qualified” indicates that attributes from the target namespace must be qualified with the namespace prefix.
 54. What is elementFormDefault?
The form for elements declared in the target namespace of this schema. The value must be “qualified” or “unqualified”. Default is “unqualified”. “unqualified” indicates that elements from the target namespace are not required to be qualified with the namespace prefix. “qualified” indicates that elements from the target namespace must be qualified with the namespace prefix.
55.what is difference between Abstract wsdl & concrete wsdl?
Abstract wsdl:-Used on server side,contains request,response and type of operation performed.
concrete wsdl:-used on client side,contains abstract wsdl and transport used.
Abstract WSDL contains only messages and operations. Abstract WSDL is used by web Server where as concrete WSDL contains messages, operations and binding/transport specific information i.e. SOAP over Http/HTTPS/JMS having wsdl style i.e. RPC/DOC literal.
Abstract WSDL consists of the structure of the message that is like what operation, what is the input and what is the ouput . Whereas in concrete WSDL has all the things that the abstract wsdl has in addition it has transport(http,jms) details.
Abstract wsdl:- Used on server side,contains request,response and type of operation performed.
concrete wsdl:- Used on client side,contains abstract wsdl and transport used.
● An abstract WSDL document describes what the web service does, but not how it does it or how to contact it. An abstract WSDL document defines:
the operations provided by the web service.
the input, output and fault messages used by each operation to communicate with the web service, and their format.
● A concrete WSDL document adds the information about how the web service communicates and where you can reach it. A concrete WSDL document contains the abstract WSDL definitions, and also defines:
the communication protocols and data encodings used by the web service.
the port address that must be used to contact the web service.
56.Basic Principles of Sequential Routing Rules?
Oracle Mediator processes sequential routing rules:-
§  ·         Oracle Mediator evaluates routings and performs the resulting actions sequentially. Sequential routings are evaluated in the same thread and transaction as the caller.
§  ·         Oracle Mediator always enlists itself into the global transaction propagated through the thread that is processing the incoming message. For example, if an inbound JCA adapter invokes an Oracle Mediator, the Oracle Mediator enlists itself with the transaction that the JCA adapter has initiated.
§  ·         Oracle Mediator propagates the transaction through the same thread as the target components while executing the sequential routing rules.
§  ·         Oracle Mediator never commits or rolls back transactions propagated by external entities.
§  ·         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.
Basic Principles of Parallel Routing Rules
§  ·         Oracle Mediator processes routing rules in parallel based on the following principles:
§  ·         Oracle Mediator queues and evaluates routings in parallel in different threads.
§  ·         The messages of each Oracle Mediator service component are retrieved in a weighted, round-robin fashion to ensure that all Oracle Mediator service 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.
57.   Difference between Include and Import?
The difference between the include element and the import element is that
import element allows references to schema components from schema documents with different target namespaces and
the include element adds the schema components from other schema documents that have the same target namespace (or no specified target namespace) to the containing schema.
In short, the import element allows you to use schema components from any schema; the include element allows you to add all the components of an included schema to the containing schema.

12) How to increase the transaction timeouts in SOA?

For the transaction timeout needs to be increased, all the below settings timeout value needs to be changed to the expected Timeout value.
·         JTA
·         Engine Bean
·         Delivery Bean

13) Is it possible to use MS SQL Server as dehydration store with SOA Suite ?if yes how?

Yes it is possible.
To automatically maintain long-running asynchronous processes and their current state information in a database while they wait for asynchronous callbacks, you use a database as a dehydration store.Storing the process in a database preserves the process and prevents any loss of state or reliability if a system shuts down or a network problem occurs. This feature increases both BPEL process reliability and scalability. You can also use it to support clustering and failover.

14)  What is SOA governance? What are its functions?

Service-Oriented Architecture (SOA) governance is a concept used for activities related to exercising control over services in an SOA Some key activities that are often mentioned as being part of SOA governance are:
Managing the portfolio of services: This includes planning development of new services and updating current services.Managing the service lifecycle: This is meant to ensure that updates of services do not disturb current services to the consumers. Using policies to restrict behavior: Consistency of services can be ensured by having the rules applied to all the created services. Monitoring performance of services: The consequences of service downtime or underperformance can be severe because of service composition. Therefore action can be taken instantly when a problem occurs by monitoring service performance and availability.

15) What is end point virtualization?

Generally a service bus is used for endpoint virtualization and in 11g stack; Oracle Service Bus (OSB) is the primary service bus. In exposed proxy's message flow, it can route the request to any of your environment's actual (physical) service on the basis of whatever logic.

Mediator can also be used to expose the service and in mediator routing rule, it can be routed to actual service.

16) What are DVM's and how are they helpful in SOA?

DVM-Domain Value Map are static mappings between a source and target system which can be used in transformations. The value can be changed  via  SOA composer.

17) What is the difference between XREF and DVM?

XREF- It is dynamic since the values to the XREF can be populated dynamically and it is stored in XREF_DATA table in SOA Dehydration store.

DVM- Domain Value Map is static mappings between a source and target system which can be used in transformations.

18) What is Dehydration store?

Dehydration store is the database where the instances get stored when it gets dehydrated by the process on the occurrence of non-idempotent activities and also stores the information on the long running processes.

19) What is Decision service?

Oracle SOA Suite provides support for Decision components that support Oracle Business Rules. A Decision component is a mechanism for publishing rules and rulesets as a reusable service that can be invoked from multiple business processes.These rules can be changed without redeploying the code.

20) Why we use BPEL and OSB?

OSB is the light-weight service bus wherever there is not much business logic involves and there is need to just get the message routed between the systems OSB is used where as when there is more business logic involves in the process,then BPEL will be used.

21) What is MDS?
MDS –Metadata Store
Wsdl and Schemas to be used in the process can be published to the MDS and get it used in the code by referring the artifacts from the MDS
Advantages:

·          JAR (Deployment unit) size will be reduced.
·          Duplication of the artifacts can be avoided between the services.

22) What is a XA datasource? How it differs from a non-XA datasource?

An XA transaction involves a coordinating transaction manager, with one or more databases (or other resources, like JMS) all involved in a single global transaction. Non-XA transactions have no transaction coordinator, and a single resource is doing all its transaction work itself (this is sometimes called local transactions).

23)  How can we secure our web services using Oracle SOA Suite?

When accessing the services should be restricted to the group,then service should be secured via WSM (Web service Manager).

24) How to deploy an XSL file without deployment of BPEL Process?

We will directly deploy the XSLT, options: -
·           Using ANT script by file replacement in TMP folder.
·           By creating a folder in BPEL PM installation folder and specifying its location in our BPEL code with http call and replacing our xslt to that location.

25) What is HA File and FTP Adapters?

In the clustered environment,File and FTP adapters should be used as HA(High-Availability)
Inbound:It  is controlled by Control Files and avoids the race between the manages servers in reading the files where the reference of the files read by the managed servers will be maintained in  the control directory.
Outbound:It is controlled by DB Mutex table exist  in the SOA dehydration store and this avoids duplicated been written to the same file when all the managed servers in the clusters process the same messages

SOA Interview Questions

What are the main benefits of SOA ?
§ SOA helps create greater alignment between IT and line of business while generating more flexibility - IT flexibility to support greater business flexibility. Your business processes are changing faster and faster and global competition requires the flexibility that SOA can provide.
§ SOA can help you get better reuse out of your existing IT investments as well as the new services you’re developing today. SOA makes integration of your IT investments easier by making use of well-defined interfaces between services. SOA also provides an architectural model for integrating business partners’, customers’ and suppliers’ services into an enterprise’s business processes. This reduces cost and improves customer satisfaction
What is a reusable Service?
§ It is an autonomous, reusable, discoverable, stateless functionality that has the necessary granularity, and can be part of a composite application or a composite service.
§ A reusable service should be identified with a business activity described by the service specifications (design-time contract).
§ A service’s constraints, including security, QoS, SLA, usage policies, may be defined by multiple run-time contracts, multiple interfaces (the WSDL for a SOAP Web Service), and multiple implementations (the code).
§ A reusable service should be governed at the enterprise level throughout its entire lifecycle, from design-time through run-time. Its reuse should be promoted through a prescriptive process, and that reuse should be measured.
Talking about Service identification, which approach between top-down and bottom-up methodologies encourages re-use and mantainance ?
Since the top-down approach is business-driven it can be practical to separate the different concerns of business and IT on different plans, providing a common ground in between. So in most situations it the most appropriate if you want to improve reuse and ROI in the medium/long term. Anyway
How can you achieve loose coupling in a soa ?
One strategy for achieving loose coupling is to use the service interface (the WSDL for a SOAP Web Service) to limit this dependency, hiding the service implementation from the consumer. Loose coupling can be addressed by encapsulating the service functionalities in a manner that limits the impact of changes to the implementation on the service interface. However, at some point you will need to change the interface and manage versioning without impacting service consumers, in addition to managing multiple security constraints, multiple transports, and other considerations
Do you recall any pattern which could be used to leverage loose coupling ?

The Mediation pattern, using an enterprise service bus (ESB), will help in achieving this.
Mediation will take loose coupling to the highest level. It will establish independence between consumers and providers on all levels, including message formats, message types (including SOAP, REST, XML, binary) and transport protocols (including HTTP, HTTPS, JMS).
Architecturally speaking this means the separation of concerns between consumers and providers on the transport, message type, and message format levels.
The Service of a SOA should be engineered as stateless or stateful ?
Service should be stateless. It may have a context within its stateless execution, but it will not have an intermediary state waiting for an event or a call-back. The retention of state-related data must not extend beyond a request/response on a service. This is because state management consumes a lot of resources, and this can affect the scalability and availability that are required for a reusable service.
What is composition of a Service ?
Composition is the process by which services are combined to produce composite applications or composite services. A composite application consists of the aggregation of services to produce an enterprise portal or enterprise process. A composite service consists of an aggregation of services that produces another reusable service. It’s just like combining electronic components to create a computer motherboard, and then using that motherboard in a computer. Think of the motherboard as a reusable composite service that is a component of the computer, and of the computer as the composite application.

How do I integrate my Legacy applications with SOA ?
What are the common pitfalls of SOA ?
What’s the difference between services and components?
Is SOA really needed on your opinion?

Question : What is Web service?
Answer :Web services are application components, which are self-contained and self-describing and provide services based on the open protocol communication (i.e SOAP UI, HTTP over the net).
Question: What is SCA?
Answer :Service Component Architecture (SCA) provides a programming model for building applications and systems based on a Service Oriented Architecture. SCA is a model that aims to encompass a wide range of technologies for service components and for the access methods which are used to connect them.

Question : What is SOA?
Answer :Service Oriented Architecture (SOA) is used to develop Enterprise applications by using a collection of services which communicates each other. Service-Oriented Architecture (SOA) is a set of principles and methodologies for designing and developing software in the form of interoperable services.

Question : What are principles of SOA?
Answer :• loose coupling
• Re-usability
• Interoperability
• Flexible
 Question : What is Mediator?
Answer :The Mediator is in charge of interconnecting, within an SOA composite application, components that expose different interfaces. In addition, the Mediator can perform duties such as filtering and making routing decisions.
The composite editor in JDeveloper gives you the flexibility to define the interface now, to choose an existing interface, or to define the interface later as you wire ....
Question : What is the difference between Oracle SOA 10g and 11g?
Answer :SCA architecture was followed in 11g and not in 10g

In 11g you can put all your project SOA components in composite.xml file and deploy to single server, where in 10g you have to deploy each component to the respective server (i.e ESB to ESB server, BPEL to BPEL Server)

• Basically all the SOA components like BPEL, ESB (Called Mediator in 11g), & OWSM are brought into one place in 11g using SCA composite concept.
• The major difference between 10g & 11g would be the app server container. 10g by default runs onOC4J while 11g runs on Web logic Server.
• In 10g every BPEL is a separate project, but in 11g several components can make 1 project as SCA.
• In 10g consoles are separate for BPEL and ESB, but in 11g Enterprise Manager contains all.
• In 10g we have to deploy each project separately, but in 11g we can deploy SCA which contains all.
• In 10g BAM and business rules are outside SOA Suite, but in 11g they are in SOA Suite.




Question : What is BPEL?
Answer :Within the enterprise, BPEL is used to standardize enterprise application integration as well as to extend the integration to previously isolated systems. Between enterprises, BPEL enables easier and more effective integration with business partners. BPEL stimulates enterprises to further define their business processes, which in turn leads to business process optimization, reengineering, and the selection of the most appropriate processes, thus further optimizing the organization. Definitions of business processes described in BPEL do not affect existing systems, thereby stimulating upgrades. BPEL is the key technology in environments where functionalities are already or will be exposed via Web services. With increases in the use of Web services, the importance of BPEL will increase as well.

<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
Question : What is BPEL Process in SOA ?
Answer :(Business Process Execution Language) BPEL Process is a language used for the composition, orchestration and coordination of webservics.

Enterprise Information system can improve the efficiency of businesses through the automation of business processes. The objective of almost every company is that the application it uses should provide comprehensive support for business processes. It means that applications should align with business processes closely.

BPEL improves and extends the flexibility of earlier integration methods and distributed architectures, and focuses on the reusability of existing applications and system, efficient interoperability’s and application integrations and the composition of business processes out of services provided by applications. Another important objective of SOA is also the ability to apply changes in the future in a relatively easy and straightforward way.

BPEL is the one of the most popular, commonly accepted specialized language for business process, BPEL is a special language, designed to execute business processes using a special server. BPEL process provide good environment where business processes can be developed in an easy and efficient manner, directly executed, monitored and quickly adapted to the changing needs of enterprises without too much effort.

Question : What is/was the motivation behind BPEL? How does it differ from other/past attempts/technologies aimed at the integration/business process problem? Can you talk briefly about the evolution of BPEL?
Answer :Orchestrating a set of services into an end-to-end process flow entails a new set of technical requirements (binding to heterogeneous system, synchronous and asynchronous message exchange patterns, data manipulation, flow coordination, exception management, undeterministic events, compensating transactions, side-by-side versioning, in-flight instance management and auditing). The goal of BPEL is provide a richer and yet simpler abstraction/standard for addressing those requirements. Although it is a fairly new standard, it leverages from 10+ years of research and development Microsoft and IBM invested in XLANG and WSFL.
Question : What is orchestration? What does it mean to build composite applications? Why would anyone want to?
Answer :Existing systems are not going away. Yet enterprises need to build new applications that can leverage the functionality encapsulated in those existing systems. The notion of a composite application is based around the idea of building new applications by wiring together existing building blocks. Orchestration plays an important role in this picture because it is the glue that coordinates the execution of each discrete service. A good orchestration server needs to be reliable, scalable and render the BPEL process logic with very high fidelity.

Question : Explain Orchestration and Choreography.
Answer :In orchestration, which is usually used in private business processes, a central process (which can be another Web service) takes control of the involved Web services and coordinates the execution of different operations on the Web services involved in the operation. The involved Web services do not "know" (and do not need to know) that they are involved in a composition process and that they are taking part in a higher-level business process. Only the central coordinator of the orchestration is aware of this goal, so the orchestration is centralized with explicit definitions of operations and the order of invocation of Web services.

Choreography, in contrast, does not rely on a central coordinator. Rather, each Web service involved in the choreography knows exactly when to execute its operations and with whom to interact. Choreography is a collaborative effort focusing on the exchange of messages in public business processes. All participants in the choreography need to be aware of the business process, operations to execute, messages to exchange, and the timing of message exchanges.
Question : What are two configuration settings for auditing?
Answer :
auditLevel:

• off - absolutely no logging performed whatsoever; may result in a slight performance boost for processing instances.
• minimal - all events are logged; however, no audit details are logged.
• production - all events are logged. The audit details for assign activities are not logged; the details for all other nodes are logged.
• development - all events are logged; all audit details for all activities are logged.

auditDetailThreshold:

The maximum size (in bytes) an audit trail details string can be before it is stored separately from the audit trail. If a details string is larger than the threshold it will not be immediately loaded when the audit trail is initially retrieved; a link will be displayed with the size of the details string. Typically, the details string will contain the contents of a BPEL variable. In cases where the variable is very large performance may be severely impacted by logging it to the audit trail. The default value is 50 kilobytes

Question : How many tables are used for mediator instance tracking?
Answer :There are in total 5 tables which are used by mediator instance tracking:

• Mediator_instance - One row for each mediator message flow.
• Mediator_case_instance - One row for each mediator case (~ routing rule).
If a mediator component has two routing rules then this should have 2 records for that mediator instance.

• Mediator_case_detail - Captures mediator audit trail for each mediator routing rule. Number of records may vary based on the nature of mediator component.

Eg: if mediator component is having a async req-resp routing rule then this would contain 2 rows for the corresponding mediator routing rule.

• Mediator_document - Stores the payload for routing rules which are configured as deferred (~ parallel in jdev). So if all the routing rules are "sequential" then this will not contain any records.

• Mediator_audit_document - Stores the payload for audit trail and only when "instanceTrackingLevel" for mediator is "Complete".

Question : How can we handle faults in BPEL?
Answer :When a fault occurs within a business process, the process may not complete successfully. (But it can complete successfully if the fault is handled within a scope, which enables you to divide a complex process into several parts; more on scopes later.) The business process can handle the fault through one or more fault handlers. Within a fault handler, the business process defines custom activities that should recover from the fault and possibly reverse the partial (unsuccessful) work of the activity where the fault has occurred.

Question : What is Scopes in BPEL? How can it be useful in handling faults?
Answer :Scopes are hierarchically organized parts into which a complex business process can be divided. They provide behavioral contexts for activities. In other words, scopes enable you to define different fault handlers for different activities (or sets of activities gathered under a common structured activity such as or ). In addition to defining fault handlers, you can declare variables that are visible only within a scope. Scopes also let you define local correlation sets, compensation handlers, and event handlers.
Question : What are two types of Events supported by BPEL?
Answer :Although fault handlers and scopes improve the robustness of BPEL processes considerably, you can also manage events. BPEL supports two types of events:

1. Message events are triggered by incoming messages through operation invocation on port types.
2. Alarm events are time-related and are triggered either after certain duration or at a specific time.
Question : Explain the use of Message Event and Alarm Events?
Answer :Managing message events is particularly important when the business process is waiting for callbacks from partner Web services. activity, lets you wait for only a single (exactly specified) message on a port type. Often, however, it is more useful to wait for more than one message, of which only one will occur.

Alarm events are useful when you want the process to wait for a callback for a certain period of time, such as 15 minutes. If no callback is received, the process flow continues as designed. This approach is particularly useful in loosely coupled service-oriented architectures, where you cannot rely on Web services being available all the time. This way, the process flow can proceed even if one of the bookstores does not return an offer.

Question : Explain “Pick” activity of BPEL.
Answer :BPEL provides the activity, through which you can specify that the business process should await the occurrence of one event in a set of events. Events can be message events handled with the activity or alarm events handled with the activity. For each event, you specify an activity or a set of activities that should be performed.
Question : How can we use Pick as Initial activity?
Answer :You can use the activity instead of the initial activity. You can specify several operations, and receiving one of these messages will result in the creation of a business process instance. Then you have to use a special form of the activity. You specify the createInstance attribute for the activity, but you can specify only events; events are not permitted in this specific form.

Question : What is Use of assign activity in BPEL?
Answer :You use the assign activity to copy data from one XML variable to another, or to calculate the value of an expression and store it in a variable. A copy element within the activity specifies the source and target of the assignment (what to copy from and to), which must be of compatible types.
Question : How can you increase performance in BPEL ?
Answer :We can increase the performance by writing indexes and sequences.

(Or) Go to application server - Configurations - Change Xml file
Question : What is orchestration? What does it mean to build composite applications? Why would anyone want to?
Answer :Existing systems are not going away. Yet enterprises need to build new applications that can leverage the functionality encapsulated in those existing systems. The notion of a composite application is based around the idea of building new applications by wiring together existing building blocks. Orchestration plays an important role in this picture because it is the glue that coordinates the execution of each discrete service. A good orchestration server needs to be reliable, scalable and render the BPEL process logic with very high fidelity.
Question : What differentiates BPEL Process Manager from other process integration offerings?
Answer :Four things:
• Native and comprehensive BPEL support
• Extensible binding framework (which means that you can orchestrate not only Web services but also JCA, JMS, etc)
• Ease-of-use (you can get up and running in less than 15 minutes)
• Cross-platform support (Oracle Application Server but also WebLogic, WebSphere, etc.)

Question :  What are dspMaxThread and a recieverThread properties? Why are they important?
ReceiverThreads property specifies the maximum number of MDBs that process aysc across all domains. Whereas the dspMaxThreads are the maximum number of MDBs that process asy and threads that operate across a domain.
So, we need to ensure that the dspMaxThreads value is  !> ReceiverThreads.

Question  : Is it possible to use MS SQL Server as dehydration store with SOA Suite ?if yes how?
Yes it is possible.
To automatically maintain long-running asynchronous processes and their current state information in a database while they wait for asynchronous callbacks, you use a database as a dehydration store.Storing the process in a database preserves the process and prevents any loss of state or reliability if a system shuts down or a network problem occurs. This feature increases both BPEL process reliability and scalability. You can also use it to support clustering and failover.
Question  :  What are DVM's and how are they helpful in SOA?
DVM-Domain Value Map are static mappings between a source and target system which can be used in transformations. The value can be changed  via  SOA composer.
Question  :  What is the difference between XREF and DVM?
XREF- It is dynamic since the values to the XREF can be populated dynamically and it is stored in XREF_DATA table in SOA Dehydration store.

DVM- Domain Value Map is static mappings between a source and target system which can be used in transformations.

Question  :  What is Dehydration store?

Dehydration store is the database where the instances get stored when it gets dehydrated by the process on the occurrence of non-idempotent activities and also stores the information on the long running processes.
Question  :   What is MDS?
MDS –Metadata Store, Wsdl and Schemas to be used in the process can be published to the MDS and get it used in the code by referring the artifacts from the MDS
Advantages:  JAR (Deployment unit) size will be reduced.
 Duplication of the artifacts can be avoided between the services.

Question  :   What is a XA datasource? How it differs from a non-XA datasource?
An XA transaction involves a coordinating transaction manager, with one or more databases (or other resources, like JMS) all involved in a single global transaction. Non-XA transactions have no transaction coordinator, and a single resource is doing all its transaction work itself (this is sometimes called local transactions).
Question  :   How can we secure our web services using Oracle SOA Suite?
When accessing the services should be restricted to the group, then service should be secured via WSM (Web service Manager).

Question  :   How to deploy an XSL file without deployment of BPEL Process?
We will directly deploy the XSLT, options: -
  Using ANT script by file replacement in TMP folder.
  By creating a folder in BPEL PM installation folder and specifying its location in our BPEL code with http call and replacing our xslt to that location.

Question:   What is HA File and FTP Adapters?
In the clustered environment,File and FTP adapters should be used as HA(High-Availability)
Inbound:It  is controlled by Control Files and avoids the race between the manages servers in reading the files where the reference of the files read by the managed servers will be maintained in  the control directory.
Outbound:It is controlled by DB Mutex table exist  in the SOA dehydration store and this avoids duplicated been written to the same file when all the managed servers in the clusters process the same messages.

Question  :   What is singleton Property in SOA?

In the clustered environment when the processing of the message should happen via only one SOA managed server, then the property singleton needs to be defined at the adapter level.

Question  :    What is a flow activity? What is a flowN activity and how does it leverages the flow activity?

Flow activity is used, when parallel execution of the flow is needed and to use this property “non-blocking invoke should be set as true “at the partner link level and no. of execution of parallel flow is defined and static. Where as in Flown the no. of execution of parallel flow is not static and it is determined during run time.

Question:   What do you mean by non-idempotent activity? Which all activities are non-idempotent by default?

Activities like Pick, Wait, receive, reply and checkpoint () are called non-Idempotent activity and during the execution of the process whenever these activities are encountered then it gets dehydrated to the dehydration store.

Question:    What is forward delay in JMS Queue?

In the clustered environment where JMS queues are used, when for the queues in any one of the Managed server doesn’t have the consumer, once messages reaches  the forward delay time it gets moved  to the other managed server where consumer is present.

Question:   What is redelivery limit in JMS Queue?

When the message gets failed to get processed ,then it will be re-tried will the redelivery limit exhausts and once after the redelivery limit the message can b e either moved to the error Queue are it can be discarded.

Question:   What is timetodeliver in JMS Queue?

When Messages enqueued to the JMS queue, it will be immediately consumed by the JMS Subscribers, if any delay needs to be induced for the message consuming by the Subscribers then timetodelivery needs to set. The JMS message will not be subscribed until timetodelivery exhausts.

Question  :   Difference between JMS Queues and Topics?
Queue-Message will be subscribed by one subscriber.
Topic-Message will be subscribed by more than one subscriber.
Question:   What is a inline schema?
Schemas can be included inside of XML file is called Inline Schemas.



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

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 the resulting actions sequentially. Sequential routings are evaluated in the same thread and transaction as the caller
Oracle Mediator queues and evaluates routings in parallel in different threads.
The messages of each Oracle Mediator service component are retrieved in a weighted, round-robin fashion to ensure that all Oracle Mediator service
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 global transaction propagated through the thread that is processing the incoming message. For example, if an
inbound JCA adapter invokes an Oracle Mediator, the Oracle Mediator enlists itself with the transaction that the JCA adapter has initiated.
Oracle Mediator initiates a new transaction for processing each parallel rule. The initiated transaction ends with an enqueue to the Oracle Mediator parallel
message dehydration store.

For example, if an Oracle Mediator service 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.

Oracle Mediator never commits or rolls back transactions propagated by external
entities.
Oracle Mediator commits or rolls back transactions because it is the initiator of these transactions.
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.