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.

Tuesday, November 15, 2011

How to set title for BPEL and Mediator in 11g

setTitle() was bpel functionaliy in 10g, now in 11g it has been moved a level up, on composite level. In 10g you an set the title only for bpel, this feature is not available for ESB. In 11g we are setting the title on composite names, so that you can see the title under Name column in EM Console.
The function you need to use is as below. You can populate the Title string with as per your requirement.
setCompositeInstanceTitle((String)getVariableData("Title"));

Monday, November 14, 2011

MDS-01329, MDS-01370, MDS-00918, MDS-01330 MDS issues

When i try to compile the bpel code from jdeveloper 11.1.1.3 version after checking out from SVN, i was getting exception with these exception code (MDS-01329, MDS-01370, MDS-00918, MDS-01330 MDS issues) tried for an hour to fix the adf-config.xml and then i understand that there are 2 adf-config.xml fiel one on the application level and another on the project level.If you try to fix the project level, whatever the configuration exists in application level will override. Fix it on application level, that will fix the above issue.
Always fix the application level adf-config.xml file. This is one time fix.

Tuesday, July 13, 2010

OSB overview



OSB oracle service bus, I have recently started with OSB for my current project. I would like to share my learning. The below experience is from Oracle Service Bus version 10.1.3

* Aqua logic service bus is now Oracle Service Bus.

* While installing OSB, we can choose from Jrocket or JDK as JVM.

* While installing OSB we get these things if you choose default installation 1. Web logic Server, 2. Oracle Service Bus, 3. Web logic workshop.

* Web logic workshop is the development tool that we will use to develop OSB services, the development tool is nothing but eclipse tool.




* You can develop OSB services, from OSB web console or using Development tool like., web logic workshop tool.

* Oracle Service Bus is built to meet exacting standards for reliability, availability, scalability, and performance.

* OSB will have proxy service and business service. Proxy service is just like the name denotes a proxy between the client and the business service (May be provider application or may not be).






Monday, May 17, 2010

How to change the eis connection during runtime

It is possible to change the eis connection name during runtime using the following approach.

1. Use assign activity and declare the eis connection details as xml fragment and point it to target partnerlink on the right side in assign activity window.


EndpointReference xmlns="http://schemas.xmlsoap.org/ws/2005/04/addressing"
Address eis/DB/XXX_SQLDB /Address
EndpointReference



This will update the partner link with new value. There after the db operations performed will be on new database.

Friday, May 14, 2010

How to have default input value to bpel processes

As far as i know there are many ways you can do that.

1. Save the test data before initiate the bpel process.
but when u redeploy the same bpel process you will lose all the data that you have saved.

2. Create a Deployment property named "defaultInput" and paste your xml payload here and check "Store as CDATA section" option in the same window.

3. Using assign activity in the bpel process you can have xml content as xml fragment.

Then once u click on the initiate bpel process you will have this payload by default loaded.

Monday, April 05, 2010

ORABPEL-12517 - JCA Adapter Issue

ORABPEL-12517 - JCA Adapter Issue : If the eis connection name mentioned in the jca adapter is not available in the server then we will get this exception.

In my current project we have 2 environments for development.
For network issue we cannot use the clients network to develop the interfaces. We cloned the setting from client locally for the faster development , once we done with the development we will move the code to the client environment.

While doing i was hit with an issue. All the partner link URL will be listed in the bpel project bpel.xml file. So i modified all those URL for the client environment and tried deploying to the client environment. I was hit with this issue "ORABPEL-12517 - JCA Adapter Issue".

While compiling to the client network it says compilation fails. I took a close look at the bpel and figured out that the EIS connection used by FTP adapter is different from local environment to the client environment.

Modified it and deployed successfully to the client network.

Tuesday, January 19, 2010

How to identify the ant version

1. Open a command prompt and set the path for ant.



2. After setting the path for ant, run the below command.
> ant -version



Click on the image to get clear picture.

Saturday, January 09, 2010

ORABPEL-01012 : file not found in suitcase description: File \"{0}\" cannot be found in the current suitcase.

When i was working on cloning bpel for various division, i was hit with an issue, i have to the name of the bpel file. Changing bpel name is a big task.

The root cause of the above exception is basically the bpel name is associated with lot of message names, variable names and wsdl names etc.,

So you should take care of them in your ant script.

If you get the above error, check the above names.

BPEL Functions

1. ora:getFaultAsString() is used to get the exception in string format, used in catchAll block.
2. orcl:lookup-table() is used to get a column value, this acts like key value pair type of information.

Example:
orcl:lookup-table("XXX_INT_LOOKUP_TBL","LOOKUP_KEY","FTPACESSFAILEMAILID","LOOKUP_VALUE","jdbc/BPELServerDataSource")

Table Name : XXX_INT_LOOKUP_TBL
ColumnName : LOOKUP_KEY
ColumnValue : FTPACESSFAILEMAILID
ColumnKey : LOOKUP_VALUE
DataSourceName: jdbc/BPELServerDataSource

I have created a table "XXX_INT_LOOKUP_TBL" under the orabpel schema, the table is holding the value so this function will allow you to get the value of a column without using any db adapter, but uses datasource which is described using enterprise manager.
3. contains() - This function will check for a specified value present in the payload or not.
4. count() - This will get you the counts of a particular node.
5. I was working on a automated email bpel, for every success and failure scenario i have to send email, that will have the time and date. I have used the following to get the required format.

<%ora:formatDate(ora:getCurrentDateTime(), 'MM/dd/yyyy hh:mm:ss zzzz')%>
For more pattern you can refer java.text.SimpleDateFormat. The patterns in SimpleDateFormat are supported by above functions.

Tuesday, December 01, 2009

How to create file with some required size

In my current project i want to move files from one FTP server to another. For this i have to create a file with size of 2 gb or more.

I found this FSUTIL utility from windows XP

To create a file with some size. Run the below command.

c:\> fsutil file createnew Sample.txt 2147483648

The above command will get you a file named Sample.txt of size 2GB.

FSUTIL has lot of other features aswell. Check it out.


http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/fsutil.mspx?mfr=true

Wednesday, November 25, 2009

The exception reported is: "oracle.tip.esb.console.exception.ConsoleTransactionException:File repository not initialized.May be ESB bootstrap failed

When i try to delete a ESB component from ESB Console, it was throwing the below error message "An unhandled exception has been thrown in the ESB system. The exception reported is: "oracle.tip.esb.console.exception.ConsoleTransactionException: File repository not initialized.May be ESB bootstrap failed Please review ESB prameters for their correctness. at oracle.tip.esb.console.XMLConsoleManagerImpl.commit(XMLConsoleManagerImpl.java:2317) at oracle.tip.esb.console.XMLConsoleManagerImpl.deleteSystem(XMLConsoleManagerImpl.java:637) at oracle.tip.esb.configuration.servlet.command.DeleteSystemCommand.execute(DeleteSystemCommand.java:34) at oracle.tip.esb.configuration.servlet.CommandServlet.doJob(CommandServlet.java:109) at oracle.tip.esb.configuration.servlet.CommandServlet.doPost(CommandServlet.java:76) at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64) at oracle.security.jazn.oc4j.JAZNFilter$1.run(JAZNFilter.java:400) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAsPrivileged(Subject.java:517) at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:414) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:623) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370) at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453) at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313) at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199) at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303) at java.lang.Thread.run(Thread.java:595) ".
"

Solution: Some time the ESB Components are not loaded properly during that time you will get to see these kind of error messages surface.
Restart the oc4j_soa component using the below command.

> opmnctl restartproc process-type=oc4j_soa

The above command is used to restart only the required component without restarting all the components in the server .

Server Version : SOA Suite 10.1.3.4V

Monday, November 23, 2009

Exception message is: javax.resource.ResourceException: RollbackException: Transaction has been marked for rollback: Timed out

Problem:

When i try to deploy a bpel which is of 30kb size using JDeveloper it was throwing "Exception message is: javax.resource.ResourceException: RollbackException: Transaction has been marked for rollback: Timed out" Exception.

"ORABPEL-04077
Cannot fetch a datasource connection.
The process domain was unable to establish a connection with the datasource with the connection URL "jdbc/BPELServerDataSource". The exception report
ed is: javax.resource.ResourceException: RollbackException: Transaction has been marked for rollback: Timed out"

The JDeveloper/Ant script will take too much time and finally it will say failed to deploy.
SOA Suite Version: 10.1.3.4 and JDeveloper Version : 10.1.3.4.0.4270

Fix: To fix this issue i have to revisit some of the configuration files on the server.

1. Open the transaction-manager.xml file using some editor.

Path for the file : \j2ee\oc4j_soa\config\transaction-manager.xml

Modify the transaction-timeout attribute value to some higher value, i have set the value as transaction-timeout="7200".

2. Open the orion-ejb-jar.xml file using editor

Path for the file : \j2ee\oc4j_soa\application-deployments\orabpel\ejb_ob_engine\orion-ejb-jar.xml

Modify the transaction-timeout attribute, with some higher value.

I have set the value as transaction-timeout="3600".

Note: There will be 6 entries of transaction-timeout attributes. Make sure you change in all the 6 attributes.

3. Reboot the system or only the particular component.

> opmnctl restartproc process-type=oc4j_soa

4. You can deploy now using JDeveloper or ant script.

XPath expression failed to execute. Error while processing xpath expression

If you get this exception while deploying your bpel process, there could be some issue with the xsl file that you have in your bpel process.

To fix this issue, open your bpel process in IDE and double click on the transform activity and click on source part payload and target part payload. Then you deploy.


Before loading the source part and target part if you close the transform box, these kind of issues will stop you from deploying.

Wednesday, June 17, 2009

Enterprise Manager/Application Server control is not coming up/ reachable after installing Oracle SOA Suite 10131

After installing the Oracle SOA Server 10131, When you click on the Application Control url you will hit with 404 page cannot be found exception.

Application Server Control has no routing relationship with the Oracle HTTP Server by default. We have to make that relationship.
To do the modification you have to edit the "default-web-site.xml" file with the below change.

The file is located in the below location with in the server.
\j2ee\home\config\default-web-site.xml

make the ohs-routing="true", by default this will be set to "false".



Bounce the server and try to launch the enterprise manager then try to login.

If the above solution is not working then try to change an entry in the server.xml file which is located in the same location.

The file is located in the below location with in the server.
\j2ee\home\config\server.xml


In the file change the below property to true and bounce the server.

application name="ascontrol" path="../../home/applications/ascontrol.ear" parent="system" start="true" /




Now try launching the enterprise manager and login to the server. You should be able to see the AS control page now.