Friday, May 30, 2014

Oracle BPEL Vs. Oracle BPM

For the recent project i was comparing the Oracle BPEL and Oracle BPM and thought of sharing the same.
This document is based on my understanding and views not of oracle views.




Download Oracle_BPEL_Vs._Oracle_BPM.pdf


Friday, May 23, 2014

Component Metrics are Unavailable for the SOA Composite in EM console - Oracle SOA Suite 11g

I was facing a strange issue with Oracle SOA Suite EM console. Whenever opening the SOA Composite the component metrics are not getting displayed and it is shown as Unavailable.


The issue is only happening in Development environment but it is working fine in all the other environments.
I could not able to find any exception related to this issue in any of the log files.

Unfortunately the Component metrics are getting displayed after refreshing the SOA Composite(from right corner of EM page as shown in the above diagram) from EM console




Deployment plan file to replace the Binding Adapter Properties/Atrributes – Oracle SOA Suite11g

The deployment plan file will help us to dynamically replace the Oracle SOA  Suite  Composite properties.

This post explain the steps to replace the Properties/Attributes of the Direct Binding Adapter in Composite.xml. The same steps can be used to replace the Properties/Attributes of all the Binding Adapters.

Generate the Plan file:
The plan file can be generated through JDeveloper or through ANT script.

Generating Plan file through JDeveloper:
Right Click on Composite.xml and click on generate config Plan.


Change the generated plan file contents accordingly to replace the properties and attributes of the composites. 

Add the required attributes to the corresponding Binding and change the values accordingly(by default the attributes will not be added to the corresponding binding in the plan file) and also change the value of required properties accordingly.



Thursday, May 22, 2014

The selected WSDL contain a direct binding but seems to be of the wrong type - Oracle SOA Suite

You will be receiving the message "The selected WSDL contain a direct binding but seems to be of the wrong type. Looking for Oracle Service Bus type.Please check your WSDL selection" while trying to create the direct binding to invoke the OSB service.


This message says the OSB proxy service is not configured with SB transport.
Configure the OSB Proxy service with the SB transport to invoke the same from SOA composite through Direct Binding.

When looking up the OSB service from JDeveloper SOA Resource Browser, the Proxy will be shown as direct for SB transport services.



Wednesday, May 21, 2014

Re-Deploying the DBAdapter application - Oracle SOA Suite 11g

Accidentally we have deleted the DBAdapter application from the weblogic server console in Oracle SOA Suite 11g and all the database connection factories created was failing.

This post will explain how to Re-Deploy the Resource Adapter - DBAdapter application and recover the connection factories.

The same steps can be followed to recover any Resource Adapter applications
  • Login to weblogic console
  • Go to deployments
  • Click on Install 
  • Select $Oracle_HOME/soa/connectors as the path and select Dbadapter.rar
  • Click on Next
  • Click on Finish
          Now the Dbadapter application will be deployed as Resource Adapter.



Wednesday, May 14, 2014

Configuring the Oracle Enterprise Repository plugins for Jdeveloper

This post explain the steps to configure the Oracle Enterprise Repository Plugins in JDeveloper(JDeveloper version used is 11.1.1.5.0)

In JDeveloper click on Help-->Check For Updates

Select the Oracle Enterprise Repository plugins  as shown below.
The Oracle Enterprise Repository Adapter plugin will help us to access the assets and artifacts available in the Oracle Enterprise Repository .
The Oracle Enterprise Repository Harvester will help us to  harvest a Oracle SOA Suite project to the Oracle Enterprise Repository.


Click on Next and click on Finish


Restart the JDeveloper while prompted
After successful installation of the plugins you can able to to see the "Oracle Enterprise Repository Connection" as new connection type  and also right clicking the SOA project we can see "Submit Project To Enterprise Repository" and right clicking the files(XSD, WSDL) we can see "Submit File To Enterprise Repository"


Tuesday, May 13, 2014

Enabling/Disabling the Debug flags through WLST script - Weblogic

Enabling/Disabling the Debug flags through WLST script in Weblogic Server

The Debugging flags will help us to enable/disable the debugging for different modules in weblogic.
This can done in different ways.

JVM start arguments:
Add the flags with -D to the server start up script
-DDebugEjbCaching=true

Through Admin Console:
Environment-->Servers--><<Server>>-->Debug
Select the required flags and click on Enable/Disable.


WLST Script:
EnableORDisableDFlags.py

adminURL='t3://localhost:8000'
adminUserName='weblogic'
adminPassword='welcome1'
connect(adminUserName, adminPassword, adminURL)

edit()
startEdit()
serverNames=cmo.getServers()
for name in serverNames:
cd('/Servers/'+name.getName()+'/ServerDebug/'+name.getName())
set('DebugSSL','true')
print 'Modified the DFlag for '+name.getName()
save()
activate()
disconnect()

Execute the script.
cd %WLS_HOME%\common\bin
wlst.sh EnableORDisableDFlags.py



Sunday, May 4, 2014

SOA-INFRA Application is in unknown Type - Oracle SOA Suite 11g

SOA-INFRA Application is in unknown Type - Oracle SOA Suite 11g:

I was facing a strange issue,the Type of the soa-infra application was unknown but the state and the health of the application is looking fine(Active and OK) in admin console.
Because of this the SOA node is not displayed in the em console.




Tried restarting the server without any luck and also updated(redeployed) the soa-infra application but still the type of the application is unknown.

I could not able to find any exception related to this issue in the log files and also there is no issue related to the database schema's.

Followed the below steps to resolve this issue.

Delete the soa-infra application from the admin console deployments.
Install the soa-infra application(soa-infra-wls.ear) from the location SOA_HOME\soa\applications as Enterprise Application.


Saturday, May 3, 2014

Enabling the weblogic server to Backup/Archive the configurations(config directory) through WLST script

By enabling the backup/archiving in Weblogic, the administration Server can automatically backups the domain configuration (the entire domain-name/config directory) during the server boot to DOMAIN_HOME\config-original.jar and config-booted.jar. Also multiple versions of the domain config will be archived by the Administration Server, each time the domain configuration is modified into the DOMAIN_CONFIG\configArchive folder.The configuration archives can be used for system restoration in cases where accidental configuration changes need to be reversed.

The below WLST script will help us to enable the backup/archiving.

EnableArchiving.py

adminURL='t3://localhost:8000'
adminUserName='weblogic'
adminPassword='welcome1'
connect(adminUserName, adminPassword, adminURL)
domainRuntime()
edit()
startEdit()
cmo.setConfigBackupEnabled(true)
cmo.setArchiveConfigurationCount(5)
save()
activate()

Execute the script.
cd %WLS_HOME%\common\bin
wlst.sh EnableArchiving.py

To verify the configuration- Login to admin console-->Click on Domain in the left panel-->Expand the Advanced in General Configuration section


When the Admin Server starts up it automatically makes a backup of  DOMAIN_HOME/config directory and stores it in DOMAIN_HOME/config-original.jar(original configuration file while restarting the server) and once the start up  completed(booted) successfully it makes a backup of DOMAIN_HOME/config directory and stores it in DOMAIN_HOME/config-booted.jar(the config file on which the server is booted successfully) .



Friday, May 2, 2014

Transforming the REST XML message to SOAP message - OSB

This post will explain how to Transform the REST XML message to SOAP message in OSB

While receiving the response from REST interface  with the content type as application\xml, the input XML will be plain without the target namespace specified.
But if you are invoking the BPEL with this message the BPEL cant perform any xpath operations on this message without target namespace.The target namespace should be added to the message.

The XSLT can be used to add the name space to the XML message but before performing this operation the SOAP envelope of the body variable should be removed
After removing the namespace the XML should be assigned to the body variable to send to target system.

Follow the below steps to achieve the same:

Remove SOAP Envelope:
The below XSLT will help as to remove the namespace from the XML.

Create a XSLT resource from SB console.
Add a Assign activity with the XSLT resource
Assign the output to a temp variable - var1.

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="@* | node()">
        <xsl:copy>
          <xsl:apply-templates select="@* | node()" />
        </xsl:copy>
      </xsl:template>

      <xsl:template match="soapenv:*">
        <xsl:apply-templates select="@* | node()" />
  </xsl:template>
</xsl:stylesheet>




Transforming the SOAP message to REST XML message- OSB

While invoking the REST interface from OSB with the content type defined as application\xml, the target system will expect the simple XML message without the target namespace specified.

The XSLT can be used to remove the name space from SOAP message but before performing this operation the SOAP envelope of the body variable should be removed
After removing the namespace the XML should be assigned to the body variable to send to target system.

Follow the below steps to achieve the same:

Remove SOAP Envelope:
The below XSLT will help as to remove the namespace from the XML.

Create a XSLT resource from SB console.
Add a Assign activity with the XSLT resource
Assign the output to a temp variable - var1.

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="@* | node()">
        <xsl:copy>
          <xsl:apply-templates select="@* | node()" />
        </xsl:copy>
      </xsl:template>

      <xsl:template match="soapenv:*">
        <xsl:apply-templates select="@* | node()" />
  </xsl:template>
</xsl:stylesheet>


Removing Namespace:

The below XSLT will help as to add the target namespace to the XML.

Create a XSLT resource from SB console.
Add a Assign activity with the XSLT resouce  to remove the namespace from the variable var1
Assign the ouput to a temp variable - var2

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="*">
        <xsl:element name="{local-name()}">
            <xsl:apply-templates select="@* | node()" />
        </xsl:element>
    </xsl:template>
    <xsl:template match="@*">
        <xsl:attribute name="{local-name()}">
            <xsl:value-of select="." />
        </xsl:attribute>
    </xsl:template>
    <xsl:template match="text() | comment() | processing-instruction()">
        <xsl:copy />
    </xsl:template>
</xsl:stylesheet>

Assign the content of var2 to body:
Add replace activity to replace the node contents of body with var2




Unable to post the message to MQ through MQ adapter - Oracle SOA Suite

Sometimes we will be getting the below exception while posting the message to MQ  through MQ adapter in Oracle SOA Suite.

"Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'Enqueue' failed due to: A webSphere MQ Error occurrred[while putting the message]. A webSphere MQ Error occurrred[while putting the message]. A webSphere MQ Error occurrred while putting the message in Queue: "EAI_ORD_RPLY_Q ". Please make sure that the Queue is Put enabled, not full, message do not exceeds maximum message length and QueueManger is up and running. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution."


Mainly this exception can occur if there is any issue with the MQ Adapter configuration or issue with the MQ server components.

The following steps can be followed to identify the issue.

MQ Adapter perspective:

Verify the MQSeriesAdapter health and state is fine


Verify the connection factory used in the Adapter is configured in weblogic server