Wednesday, November 13, 2013

Oracle Service Bus Performance and Best Practise

1. wsdl choice - XML Schema choice element allows only one of the elements contained in the <choice> declaration to be present within the containing element.
Either DN number or MAC number is mandatory, here we can use choice keyword instead of min/max attribute

2. Canonical object need to be presented in the Meta data source such that it can be reused apporiately . Due to this we can avoid frequent transformation and translation of data, This improve the performace of the syste,

 3.  When service is expected to hit number of concerent request (may be in 1000s) which cannot be handled by the business service then we can make apply Throttling in OSB such that number of concurrent request send to the business service can be reduced which yield in better performance than burdening the business service which cant able to handle larger set of request.

why we need OSB throttling ?
Every system has its own capacity means it can process only certain number of message at one time, if we try to send messages beyond its capacity then that system's performance can degrade or in worst case it can crash. So to avoid all this we can use OSB throttling feature to send limited messages to target system.

http://soawork.blogspot.in/2013/01/throttling-in-osb.html

4. In developement we can enable the Trace option in SBConsole such that we can find the rootcause of the exception and to find which stage encounter the issue
You can enable execution tracing from View a Proxy Service page of the Oracle Service Bus Administration Console.

Execution Tracing

Oracle Service Bus enables you to trace messages without having to shut down the server. This feature is useful in both a development and production environments. Execution tracing allows administrators, support engineers, and systems engineers to troubleshoot and diagnose a message flow in one or more proxy services.
For example, if one of your proxy services is failing and you want to find out at which stage the problem exists, you can enable execution tracing for that proxy service. After tracing is enabled, the system logs various details extracted from the message flow such as stage name, name of the pipeline, and route node name.
The entire message context is also printed, including headers and message body. When a fault occurs in the message flow, additional details such as error code and reason are logged. Execution tracing occurs at the beginning and end of each component in the message flow, which includes stages, pipelines, and nodes. Actions are not traced individually.

5. Load Balancing
https://blogs.oracle.com/christomkins/entry/load_balancing_in_oracle_servi

6. Exception Handling
http://www.oracle.com/technetwork/articles/soa/luttikhuizen-fault-handling-2-1940722.html

7. How to use Adaptor in OSB
http://guidoschmutz.wordpress.com/2010/08/14/oracle-service-bus-11g-and-db-adapter-part-ii-the-video-2/



Monday, November 11, 2013

Oracle OSB -- WSDL Import - Invalid resource selected while importing

Oracle OSB -- WSDL Import - Invalid resource selected while importing  

 

* Check whether there is compilation error in the wsdl. If there is compilation error then above error will be thrown.

* Check whether service element is added and it pointing to the deployed server location.

* When to use Routing and when to use Service Callout

http://jaredsoablogaz.blogspot.co.uk/2013/01/choosing-between-route-service-callout.html

 

Thursday, November 7, 2013

OSB Quick reference for message process and OSB calling Asynch BPEL process

Good example for OSB calling Asynch BPEL process
http://soawork.blogspot.co.uk/2012/12/call-asynchronous-webservice-from-osb-over-http.html


Quick reference for OSB  message process.

Action Use to... Available in
Assign
Assign the result of an XQuery expression to a context variable.
  • Pipeline stage
  • Error handler stage
Delete
Delete a context variable or a set of nodes specified by an XPath expression.
  • Pipeline stage
  • Error handler stage
Insert
Insert the result of an XQuery expression at an identified place relative to nodes selected by an XPath expression.
  • Pipeline stage
  • Error handler stage
Java callout
Invoke a Java method, or EJB business service, from within the message flow.
  • Pipeline stage
  • Error handler stage
MFL transform
Convert message content from XML to non-XML, or vice versa, in the message pipeline. An MFL is a specialized XML document used to describe the layout of binary data. It is an Oracle proprietary language used to define rules to transform formatted binary data into XML data, or vice versa.
  • Pipeline stage
  • Error handler stage
Rename
Rename elements selected by an XPath expression without modifying the contents of the element.
  • Pipeline stage
  • Error handler stage
Replace
Replace a node or the contents of a node specified by an XPath expression. The node or its contents are replaced with the value returned by an XQuery expression.
A replace action can be used to replace simple values, elements and even attributes. An XQuery expression that returns nothing is equivalent to deleting the identified nodes or making them empty, depending upon whether the action is replacing entire nodes or just node contents.
The replace action is one of a set of Update actions.
  • Pipeline stage
  • Error handler stage
Validate
Validate elements selected by an XPath expression against an XML schema element or a WSDL resource. You can validate global elements only; Oracle Service Bus does not support validation against local elements.
  • Pipeline stage
  • Error handler stage


Request-Response messaging with JMS

We need two queues, the RequestQueue where the request is sent to and consumed by the
replier, and the ResponseQueue where the answer/reply is sent to by the replier and then
consumed by the initial requester.