Sunday, July 27, 2014

SOA Interview Questions - Part 2

1. How to suppress ws-addressing header in SOA 11g?
By Default in SOA 11g, ws-addressing will be passed as part of the soap header in the Web service call for both Async and Sync process.To disable this feature the following properties needs to be used inside binding in composite.xml

Request:

<property name="oracle.soa.ws.outbound.omitWSA">true</property>

Response:

<property name="oracle.soa.addressing.response.enabled">false</property>


2. Why there is need to concrete and abstract wsdl?

Concrete wsdl is the client side rather run time wsdl which has the information like binding,endpoint where as abstract wsdl is the design wsdl. client wsdl is sufficient to proceed with the build since it removes the dependency that the service should be deployed and ready before starting the build. Also same abstract can be used for multiply binding with different concrete wsdl this removes the code redundancy.

Also in SOA perspective, abstract wsdl should be used rather than the concrete since when the process loads there will dependency across the calling services if the callee service didn't load  before the caller service then the service state will be unknown in SOA. To avoid this if we use abstract wsdl all the process loads normally and the concrete binding will be used only when it starts receiving the request.


3. What is local service invocation in SOA 11g?

By default SOA 11g tries to call the services through local service invocation by avoiding SOAP/HTTP instead it used java direct to call the services provided the service exist in the same soa infrastructure this will be checked based on the certain parameters like

    Server URL

    Front end URL

To disable this following properties can be used in the composite.xml


<property name="oracle.soa.local.optimization.force">false</property>

<property name="oracle.webservices.local.optimization">false</property>


4. Correlation vs WS-addressing?

WS-addressing- By default SOA engine uses this .The main advantage of this is developer don’t have to write the coding to correlate the message for the callback where as it has its dis-advantage that it adds the header to the SOAP header.

Correlation-This is used when the calling service don't support ws-addressing .Also this does not overhead the message since it used content from the message rather than adding some headers to the request.


5. What is Oracle SOA governance?

All the organization wants to get the greater or better benefit when they implement integration through SOA. Oracle SOA governance drives this by providing products like OER, OSR and EM Management pack for SOA

By using all these better SOA governance can be achieved to reach the SOA Maturity level by providing policies which needs to be followed and the re-usability of the existing service across the organization rather that duplicating the same.

6. What is the difference between call-template and apply-template?

Call template is almost like calling a function in a traditional programming language.

Apply Template is a little different one but it is the real power of XSLT: It takes any number of XML nodes (whatever you define in the select attribute), iterates them ( apply-templates works like a loop!) and finds matching templates for them.

7. How to change the archive file name in SOA 11g?

By default filename will be written in the format filename_digest_timetamp in archive location.

Setting the below property in jca file will change the format to filename_timetamp.

<property name="UseDigest" value="false"/>

8) What is SOAP and what are the binding protocols available?

Simple object access protocol and it is a protocol specification for the communication happens between the web services over the network and binding protocol is HTTP.

9) What is the difference between Async and Sync activity on wsdl level?

Async wsdl-It has only input messages for the operation and it has 2 operations one for sending the request and other for call back.

Sync wsdl-It has 2 messages input and output messages for the wsdl operation.

10) What is the WSDL structure?

Following are the wsdl structure

definitions

Types

Messages

Operation

Port type

Bindings

Services

Ports

11) What is the significance of target Namespace in a wsdl?

It is the one which uniquely identifies the WSDL and when the WSDL is used it should be identified using its Target Namespace.

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

13) 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 perform by operations and types this is the main need of Messages.

14) What is a inline schema?

Schemas can be included inside of XML file is called Inline Schemas.

15) What is the difference between xsd:import and xsd:include?

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.

16) What is BAM?

Business Activity Monitoring is a tool that is useful in monitoring business services and processes. It actively collects data, applies rules and reports information to users. When something goes wrong in business processes, BAM can be configured to take corrective measures such as emailing administrators/support team.

17) How to send the data to BAM from SOA?

The Oracle BAM Adapter is a Java Connector Architecture (JCA)-compliant adapter which can be used from a Java EE client to send data and events to the Oracle BAM Server. Oracle BAM Adapter is configured in Oracle Weblogic Server Administration Console to provide any of these connection pools. Oracle BAM Adapter provides three mechanisms by which you can send data to Oracle BAM Active Data Cache from an SOA composite application.

18) What are the ways to publish the data to BAM?

There are two ways to publish the data to BAM

BAM Adapter.

BAM Sensor activity level.

19) What are the roles in BAM?

Architect

Administrator

Active Viewer

Active Studio

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

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

22) What is timetodeliver in JMS Queue?

When Messages enqueue 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 timetodeliver needs to set. The JMS message will not be subscribed until timetodelivery exhausts.

23) Difference between JMS Queues and Topics?

Queue-Message will be subscribed by one subscriber.

Topic-Message will be subscribed by more than one subscriber.