Friday, November 02, 2012

OSB kernel:398034 while creating proxy service with dual operations in a wsdl file

Problem:
We had a requirement where i want to have a OSB which has 2 operations, but with same payload.
So started creating a webservice with 2 operation. Just copy pasted operation tag and renamed operation name, then copy pasted wsdl:operation tag with in wsdl:binding tag and renamed. but kept the soapaction tag with same URL.

Then tried to create a proxy service using the custom wsdl service. As soon as i use browse button to locate the wsdl file, iam getting osb kernel:398034 error.

Solution: Inorder to fix that error, you have to change the soap:operation soapAction URL. Change it and then try to browse your port or binding, navigate to Operation tab in eclipse and change the "Selection Algorithm" to SOAPAction Header.

Thanks,
Vijay

Wednesday, September 19, 2012

SCAC-50012 / MDS-01335

Exception: SCAC-50012 / MDS-01335


MDS-01335: namespace "/apps" mapped to metadata-store-usage "mstore-usage_1" but its definition was not found in MDS configuration.

oracle.mds.config.MDSConfigurationException: MDS-01335: namespace "/apps" mapped to metadata-store-usage "mstore-usage_1" but its definition was not found in MDS configuration.

Solution: Include the aia.jar file to the project library, then you can deploy the project.

Wednesday, August 15, 2012

Wednesday, August 08, 2012

How to set ANT_HOME

1. Install ant and JDK to your system.

2. Set ANT_HOME like below.

       Right click on my computer and properties
       Click on Advanced System Properties, you will get System Properties popup window.
       Click on the Environment Variable.
3. Create a new Variable under System Variables.
       Set Name as "ANT_HOME", provide the value. Ex: ANT_HOME=C:\java\ant
4. Create another to set JAVA_HOME under System Variables.
       Set Name as "JAVA_HOME", provide the value. Ex: JAVA_HOME=C:\Program     Files\Java\jdk1.6.0_20
5. Open a new comand prompt and check whether its set or not by checking thir version
       a. To check java -version
       C:\Users\eibm155>java -version
       java version "1.6.0_33"
       Java(TM) SE Runtime Environment (build 1.6.0_33-b03)
       Java HotSpot(TM) Client VM (build 20.8-b03, mixed mode, sharing)
     b. To check ant -version
       C:\Users\eibm155>ant -version
       Apache Ant version 1.8.0RC1 compiled on January 5 2010

Exception: "Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar"

The above exception will surface if the path for jdk is not accessible by the path variable you had set to environment variables.

Tuesday, July 17, 2012

SOA 11g DVM with Qualifier Example

DVM with Qualifier is little different.
Code.dvm

?xml version="1.0" encoding="UTF-8" ?
dvm name="Foods" xmlns=http://xmlns.oracle.com/dvm
description /description
columns
column name="KEY" qualifier="true"/
column name="NAME"/
column name="VALUE"/
/columns
rows
row
cellASIA/cell
cellINDIA/cell
cell91/cell
/row
row
cellASIA/cell
cellSRILANKA/cell
cell044/cell
/row
/rows
/dvm

Function to use in Transformation or in Assign activity is as below
xsl:value-of select='dvm:lookupValue("Foods.dvm","NAME",/client:process/client:input,"VALUE","DEFAULTVALUE","KEY","ASIA")'/

You can find more information in the below URL.
Example:
http://docs.oracle.com/cd/E21764_01/integration.1111/e10224/med_dvm.htm#autoId3

Wednesday, July 04, 2012

Printing output value in EM Console while using Java Embedded in BPEL

When you work with Java Embedded, you wont be able to see the output in console.
To see the output value in the console,  use the below function

addAuditTrailEntry("Status is: " + status);

You can see the output message as below.

Status is: TRUE

Wednesday, June 13, 2012

Root exception is org.omg.CORBA.COMM_FAILURE

When you write weblogic client you may encounter with below exception message.

"Root exception is org.omg.CORBA.COMM_FAILURE"

The above exception will surface when you use wlclient.jar to connect to the server box with t3 protocol.
Workaround is to use the weblogic.jar file to connect to t3 protocol with. This will resolve the issue.

IIOP protocol is used to send bulk data and slow, to connect to IIOP protocol use wlclient.jar , t3 protocol will be light and fast, use weblogic.jar file to connect.

Wednesday, May 23, 2012

MDS-01335

Exception: MDS-01335: namespace "/apps" mapped to metadata-store-usage "mstore-usage_1" but its definition was not found in MDS configuration

Problem : While creating you would have created your composite using aia service constructor or it may be using the classes inside the aia.jar.

Solution: Add the aia.jar file to your project libraries.

MDS-00054 - ADF Config file

MDS-00054: If you are getting this mds exception then your ADF config file which is having the MDS connection details is not proper. So take a look at your adf-config.xml file.

There will be 2 copies of the files available, first at the root level (application) and another one at the project level.

Its idel to fix it at the application level, because for every compilation the project level file will be refreshed you may lose the changes that you apply on project level.

The main syntax that you need to keep in the adf-config.xml file is as follows.

mds-config xmlns="http://xmlns.oracle.com/mds/config"
      persistence-config
        metadata-namespaces
         namespace metadata-store-usage="mstore-usage_1" path="/apps"/
     namespace metadata-store-usage="mstore-usage_1" path="/deployed-composites"/
          namespace metadata-store-usage="mstore-usage_1" path="/soa/shared"/
        /metadata-namespaces
        metadata-store-usages
          metadata-store-usage id="mstore-usage_1"
            metadata-store class-name="oracle.mds.persistence.stores.db.DBMetadataStore"
              property value="DEV_MDS" name="jdbc-userid"/
              property value="welcome1" name="jdbc-password"/
              property value="jdbc:oracle:thin:@host:port:servicename"
                        name="jdbc-url"/
              property value="soa-infra" name="partition-name"/
            /metadata-store
          /metadata-store-usage
        /metadata-store-usages
      /persistence-config
   


Partition name should be soa-infra, prior to provide the connection information here you can try to connect with JDeveloper SOA-MDS connection to make sure you are able to connect to MDS.

Friday, March 09, 2012

One liner facts about Fusion Middleware

1. In SOA 11g cluster, if you want to know which node served your request, we can track it down by looking at the table (cube_instance) and column (create_cluster_node_id) in SOA INFRA schema.

2. Partitioning concept was introduced from SOA Suite 11.1.1.3.0 (PS2).

3. Validate incoming paylod in BPEL and Mediator
a. BPEL - Edit the partnerlink, go to properties tab, from the drop down select the validateXML and set it to true, this will set the validation only for this particular composite. To set it globally you need to go BPEL properties by doing right click on SOA Infra from EM Console, then check box for Payload Validation then apply.

b. Mediator - You can achieve payload validation by using XSD or using Schematron.
To use schematron make use the below link.
http://docs.oracle.com/cd/E15523_01/integration.1111/e10224/med_createrr.htm#BGBIHHEG
c. OSB - You can use Validator component to validate the incoming request against the XSD mentioned in validator component.
4. Where to keep the third party .jar files in SOA 10g and SOA 11g to make use inside SOA
In SOA 10g - $OC4J_HOME/j2ee/home/applib directory
In SOA 11g - FUSION_HOME/Oracle_SOA1/soa/modules/oracle.soa.ext_11.1.1/
5. "No Data Found" or "Too Many rows retured" are all valid cases of DBAdapter SOA11g) so the DBAdapter will not thrown any exception, so you have to handle it at Oracle level or at bpel level.
6. One of the best place to look out for XQuery functions with examples and informations is http://www.xqueryfunctions.com/
7. normalize-space() - To remove leading and trailing spaces from the specified string and replaces all number of white spaces with single white space and returns the result.
From Xpath use - fn:normalize-space(string)
Example: normalize-space(' The XML ') Result:'The XML'
functx:trim() - Removes only the leading and trailing spaces from the specified string.
From XQuery use - functx:trim
Example: functx:trim(' The XML ') Result:'The XML'

8. In cluster SOA, you may need to find which node have processed your composite with instance. You can find out by a select query to the cube_instance and the column name is create_cluster_node_id.
select create_cluster_node_id from cube_instance;
9.

Wednesday, February 01, 2012

Release Notes for SOA and AIA

Looking at the release notes, will save you lots of time and energy :)

http://docs.oracle.com/cd/E21764_01/relnotes.htm

Another link, which will help you to save the same with SOA and AIA FP versions.

http://www.oracle.com/technetwork/middleware/docs/soa-aiafp-knownissuesindex-364630.html

Wednesday, January 18, 2012

How to view the deployed SOA 11g Interface files using browser

If you want to view the deployed file content to see whether the file deployed has the changes that you made.

You can view the file using any internet browser, by logging into Enterprise Manager Console.

After logging in to EM Console, click on the interface that you want to check and click on the test button available in the console.

Then copy the url and paste it in the internet browser then hit enter to see the endpoint of that paricular interface, then remove the last part of the url which has ?wsdl and using the project structure in the url and hit enter you can view source code of all the files.

Another way is after loggin into EM Console, select the composite on your left side, then on your right side you will be able to see the dashborad for the composite, on the right side you can see a globe icon, like shown below. Click on it, you will get the URL of the composite wsdl file. Using that you can navigate according to your file structure.
Composite Dashboard


Example:

http://hostname:port/soa-infra/services/partition_name/Interface_Name/xsl/FileName.xsl

xsd/FileName.xsd
composite.xml
Interface_Name_apps.jca
Interface_Name.componentType
Interface_Name.sql

Thanks,
Vijay

Tuesday, January 03, 2012

SOA Composer

SOA Composer is a web app,that will let you to edit the DVMs and Rules at run time.

DVMs will be either act as composite artifacts or shared artifacts. If you want to update the DVM that is within composites then you have to redeploy the composites. But when you have the DVM as part of shared artifacs like MDS, then you can use the SOA Composer page to edit / add new DVM values, without redeploying the composites to server.

1. You can access the SOA Composer at below url
http://:/soa/composer
2. You must have the SOADesigner application role to access SOA Composer metadata.
3. After you login you can see all the composites that uses DVMs in tabular format.
4. There is a search option available to find the DVM.
5. You can perform create, edit and delete DVM by using soa composer.
6. Like SVN you can leave description behind after every use.
7. You can either save the changes that you made to DVMs or commit the changes.
Save will keep a copy of your changes and commit will submit the changes to server.
8. SOA Composer will display error message, if there is any parallel edit happens to the DVMs.

Note: Some time you won't get the SOA Composer url working, just we need to target the application(b2bui) to admin server. That will resolve the issue and then you can see the web console of the SOA Composer.