Posts

How to generate sequence number in XSLT

I got a requirement in SOA 11.1.1.6--- From a webservice call to db insert XSLT,  i have 10 elements at source side and 11 elements at target side. From source to target first 10 mappings are done. Now requirement is, for the 11th element in target- we need pass a sequence number to the targeted database, means---(sequence number has to be generated for every execution of XSLT)  How to do the last point??? Solution:  We can pass the sequence number in the 11th element using oraext:sequence-next-val("Sequence name as a string", "Datasource as a string") function.

Difference between SOA 10g and 11g

I wanted to share some information about difference between SOA 10g and 11g. JDeveloper 10g doesn’t need any manual installation of SOA extension. 10g is designed for SOA by default. When you create an application in 10g, these are created as standalone and independent of SOA tier unlike 11g. Projects are created inside applications which are tier specific like SOA (BPEL/ESB/Empty) or others. Unlike 11g, there are no composites here. There is direct BPEL built. The details that are mentioned in the composite.xml files in 11g, it is bpel.xml in 10g. All the policies and preferences would be going into bpel.xml instead of composite.xml When you create adapters, the details are stored in the wsdl file unlike the .jca file in 11g. While creating the connection to the server, you will need to make the connections for both integration and the application server one by one. The header properties of the adapters are taken from the header wsdl which is formed

weblogic.socket.MaxMessageSizeExceededException in OSB11g

Problem : Whenever we have a long running two-way OSB-DB API call...it takes much time to complete. It will show us the weblogic.socket.MaxMessageSizeExceededException in sbconsole debug console. Cause : weblogic.socket.MaxMessageSizeExceededException: Incoming message of size: '10000080' bytes exceeds the configured maximum of: '10000000' bytes for protocol: 't3' Solution : 1. Go to servers--->protocols--->general--->max message size--->change the value to sufficient memory (Do this for both the admin and the osb/soa) Note: Do it for all the OSB/SOA nodes in the cluster 2. Go to servers--->configuration--->server start--->arguments--->-Dweblogic.MaxMessageSize = 20000000 3. Restart all the servers. Hope this will help you to resolve this issue.

SOAP fault in SOA

A SOAP fault is an error in a SOAP (Simple Object Access Protocol) communication resulting from incorrect message format, header-processing problems, or incompatibility between applications. When a SOAP fault occurs, a special message is generated that contains data indicating where the error originated and what caused it. This data is called a fault element. A message that includes a fault element is known as a fault message. A fault message can be generated by any node , and is transmitted to the first upstream node (the node immediately preceding it in the message path). SOAP allows computer programs to communicate over a network even if they use different operating platforms. It employs the World Wide Web's HTTP (Hypertext Transfer Protocol)and XML (Extensible Markup Language) as the mechanisms for information exchange.

setTitle for instances in SOA11g

Image
Implement the below setTitle feature by following the detailed flow. It is good practice to name composite instance. If you name your composite instance the you can uniquely identify the instance. To give composite instance a name you simple need to add one java embedding activity inside BPEL and add one function inside that java embedding activity. Here are the steps that you can follow to name a composite instance. 1) Create a sample Addition Synch BPEL which will add two numbers. 2) Create a string variable and name it "Title". 3) Add assign activity after receive activity and assign name to Title variable. concat("Inputs: ",bpws:getVariableData('inputVariable','payload','/client:process/client:input1'),", ",bpws:getVariableData('inputVariable','payload','/client:process/client:input2')) 4) Add java embedding activity after assign activity. In that activity add below function