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.

Tuesday, June 16, 2009

Sending Email using Telnet / How to check email server

While working with Oracle SOA, for every project we may need to configure the SMTP set up with the oracle SOA Server.
You have the SMTP server information with you, how to make sure the mail server is working fine.

So we can run a simple test to make sure the mail server is working fine. Please try the below steps.

1. Open a command prompt and enter as below to connect to mail server using telnet.
telnet mailserverdomain 25 ( 25 is the default port number)

You may receive a response from the mail server as below

220 mailserverdomain Microsoft Exchange Internet Mail Connector

2. Say hello to the server.

HELO mailserverdomain [You may get the response as below ]
250 mailserverdomain Hello mailserverdomain, pleased to meet you

3. MAIL FROM:yourmail@domain.com
250 2.1.0 Sender OK

The from address should be informed to the mail server.
4. RCPT TO: yourmail@domain.com

250 2.1.5 Recipient ok
The Recipient address should be informed to the mail server.
5. DATA
This command tells the server that we are going to send data from now on.
DATA
354 Enter mail, end with "." on a line by itself
6. SUBJECT: THIS MAIL IS SENT USING TELNET [This line is used to set the subject line for the mail]
SUBJECT: THIS MAIL IS SENT USING TELNET
Hit the enter key 2 times.
7. Then start your body part message for the mail. Once you entered the message for the body part terminate with a period.
THIS IS THE BODY MESSAGE
.
250 2.6.0 Message accepted for delivery
8. To come out of the telnet connection enter the "QUIT" keyword.
221 2.0.0 acsmt358.oracle.com Closing connection

This will terminate the telnet session. Watch your mail box for the mail that you just sent from telnet.

I hope the above post is useful. Please leave your comments to improve the post and for my learning if there is any mistake.

Tuesday, May 26, 2009

How to add an external XSD file to a BPEL project

Create a BPEL Project, then add the external XSD to your bpel project, inside the bpel folder. Open the bpel file in jdeveloper,
Then in the structure window travel to the messages folder.
By default you can see 2 messages one for request and another for response. If you want to use the custom xsd to the request message type.
Edit the request type to map to the external XSD node. Then refresh the strucure window.
Sometimes the structure window won't get refreshed, in that case you can relaunch the bpel process. This will load the current messages to the structure window.

Messages can be mapped to a element or type based on the struture of the XSDs.
If the node that you are mapping to the message type is element map it as element or if it is type ie.., complex type,
map it as message type otherwise there will be type mismatch and compilation error will be thrown. Once you done mapping to the custom xsd, you can check that in the
structure window.

Monday, January 19, 2009

How to use Logical path with File Adapter in BPEL

I used file adapter in one of my projects and i thought will share some useful information that you can use.

Logical Path : BPEL supports the Logical and Physical path. Physical path is nothing but complete path. Logical path will be a relative path.

For defining the logical path you can start with . which denotes the current folder. By default current folder is /somefolder/app/oracle/product/soa/j2ee in oc4j container.

We need to mention this configuration in the bpel.xml file. like below.

{property name="oc4j_soa" type="LogicalDirectory"} ./../../arrowlogs/soa {property}
replace { with < and } with >

Thursday, January 08, 2009

javax.naming.NamingException: Lookup error: javax.naming.AuthenticationException: Not authorized;

Issue:
======
I have kept my AQ Connection in ESB, so the esb will read the queue and a BPEL will do all the orchestration and another ESB, which will have all the
DB Connections for the insert statements.

Once the AQ adapter is created in ESB, we are able to read the message from the queue and we need to pass to the bpel process. we have made the
input variable as the incoming message type. We deployed the esb and bpel processes. when we try to run, we faced with a challenge.

The esb is not able to pass the xml from esb to bpel even though we have the same message type.

Exception:
=========
Authentication failure:javax.naming.NamingException: Lookup error: javax.naming.AuthenticationException: Not authorized;
nested exception is: javax.naming.AuthenticationException: Not authorized


Resolution:
===========
When you install the oracle soa, we need to provide the user credentials. There is a file inside the soa which stores this information.
${soa_home}/bpel/utilities/ant-orabpel.properties. If you have any custom password then we need to replace the password with your custom.
By default the password will be "welcome1". You need to replace the password with your own password, then only you can communicate between the ESB and the BPEL
Projects.