Wednesday, April 13, 2016

ORABPEL-05250 Error - Few possible solutions

If you see the below error while deploying the SOA composite into the SOA11g server

Deploying on partition "default" of "/Farm_soa_prod/soa_prod/soa_server1" ...
Deploying on "/Farm_soa_prod/soa_prod/soa_server1" failed!
There was an error deploying the composite on soa_server1: Deployment Failed: Error occurred during deployment of component: GTM_CLM_Process_ScreeningResults to service engine: implementation.bpel for composite: GTM_CLM_Process_ScreeningResults: ORABPEL-05250

Error deploying BPEL suitcase.
error while attempting to deploy the BPEL component file "/netapp01/fmwprodbin/Oracle/Middleware/user_projects/domains/soa_prod/servers/soa_server1/dc/soa_dbc0254e-8aa1-4d20-9cef-457b9f5fa15c"; the exception reported is: java.lang.Exception: BPEL 1.1 compilation failed

This error contained an exception thrown by the underlying deployment module.
Verify the exception trace in the log (with logging level set to debug mode).

There might be few reasons, but look at the last changes you made and try to think.

Here are few what we have faced and found the resolutions. It may help you as well.

Resolution1:  This issue is coming while using the cloud service.  Need to find solution.   The reason is, one of the custom field is not available in the targeted (here OSC service for us) web service WSDL, so while compiling with configuration file it used to fail.


Resolution2:  Using Java Embedded Activity is causing the error with java classed used.  For example the Class name using directly as  InetAddress   without using the package name.  So the solution was to use the complete package name as  java.net.InetAddress;

Friday, April 1, 2016

How to get SOA host server DVM file path to refer dynamically from that SOA server MDS

When we develop a BPEL process, most of the time it will connect different external (target) systems.  Some times we need to use the DVMs for getting the values dynamically.  So we create a DVM in the SOA server and load the DVM values file into the MDS database.  Now the BPEL process has to use the SOA host dynamically to identify the DVM file path from the MDS.

So to identify the SOA server host name dynamically we can follow the below steps.


1. Create a DVM  TestDVM.dvm with two columns, OrganizationId, OrganizationIdValue.

TestDVM.dvm
=============
OrganizationId    |    OrganizationIdValue
---------------------------------------------------
host1                              abc123
host2                              def234

2. Create a string variable HostName in BPEL process
3. Inside the BPEL process use a Java Embedding activity and write the below code init.

                   String HostName = null;  
                    try{                                                                        
                          InetAddress addr = InetAddress.getLocalHost();  
                          HostName = addr.getHostName();  
                          addAuditTrailEntry("Host name is " + HostName);  
                          setVariableData("HostName",HostName);  
                    } catch (Exception ex) {                                                                  
                          ex.printStackTrace();  
                        addAuditTrailEntry(ex.getMessage());  
                    }

Now the value is available in the BPEL string variable.

4. If we need to use this value in the XSL files then pass the BPEL variable as input element to the XSL file.

Inside the XSL file use the DVM function to get the value.
dvm:lookupValue("TestDVM.dvm","OrganizationId",$HostName,"OrganizationIdValue",$HostName).