Showing posts with label Info. Show all posts
Showing posts with label Info. Show all posts

Tuesday, January 25, 2011

BPEL States in CUBE_INSTANCE

Very recently, I had a requirement as part of Performance Testing to look up all instances of all BPEL Process which are in a particular state. I was reading the Admin Guide and found the below information. Thought it is worthwhile documenting this information for quick reference:

0 --> initiated
1 --> open and running
2 --> open and suspended
3 --> open and faulted
4 --> closed and pending
5 --> closed and completed
6 --> closed and faulted
7 --> closed and canceled
8 --> closed and aborted
9 --> closed and stale 


Cheers,
-AR

Wednesday, December 29, 2010

FOTY0001: Type Error

I have encountered the below error during runtime many a time:

ORABPEL-09500
XPath expression failed to execute.
Error while processing xpath expression, the expression is "ora:processXSLT('Transformation_5.xsl',bpws:getVariableData('inputVariable','payload'))", the reason is FOTY0001: type error. Please verify the xpath query.

This error, though mentions the reason for failure was due to a xpath expression, when one executes the xslt using xalan or test option of Jdeveloper, the xslt works fine. I later found that the part name was missing in the transformation node where the xsl was used. This could be because, the bpel file was edited prematurely even before the details of the node were loaded or could be an actual issue with the schema (in case of first timers)!

Always check if the part name in the transformation node are present and are correct before debugging further on this error. I found the this link useful when I was debugging.

Please note this is only one such FOTY0001 error (most common) and one such solution which worked for me. There could be many other reasons for the error in different scenarios and hence different resolutions.

Cheers,
-AR

Saturday, December 18, 2010

Oracle Business Rules as a Composite Service

The general practice of using Oracle Business Rules is to create a set of rules in a dictionary and this dictionary in turn will be invoke by a bpel, which would have been exposed as a web service or composite service. But there are cases where a bpel is not needed and one needs the service of just rules.

In those particular cases, the dictionary themselves can be exposed as a composite service. So a web service would be created which would directly interface with the dictionary. A couple of points has to be noted when doing this and apart from that, its just a normal rules configuration, soa composite deploy and test:

Create an empty composite, just add a dictionary and make sure to mark the dictionary for the below:





































When testing the service, it would require the name of the decision function to be passed. Earlier this was taken care by the bpel when we used to drag drop the business rules component and choose the dictionary and decision function:











Cheers,
-AR

Sunday, October 10, 2010

ora:parseEscapedXml function fails during conversion

The ora:parseEscapedXml functions fails to convert string which have & 'Ampersand' in them. It errors during conversion and the error in the BPEL Console is nowhere close to the issue. There has already a bug filed for this issue, bug# 5598150 and it appears to have been fixed in 11.1.1.0.0. I am running on 11.1.1.2.0 and I still face this issue !

On metalink, there is a workarouund provided for this issue. One needs to replace & with & amp; amp; (mentioned with spaces so that its not converted to & by html). This can be done using a XSLT replace all template or a java embedding node.

Refer to How to solve the Ora:Parseescapedxml error when you are using ampersand character [ID 418488.1] in metalink for the workaround using java.


Bug 5598150 - AMPERSAND ENTITY IS NOT HANDLED CORRECT




Peace!


Cheers,
-AR

Thursday, September 30, 2010

Re-generation of facts fail when Java facts originating from same Schema exits

Re-generation of facts in a dictionary in Oracle Business Rules 11g is a simple step. One needs to just update the schema and reload the facts from the options available in the Fact tab of the dictionary. Unfortunately, I had been struggling for more than two weeks on this simple step and any change in schema, be it addition/deletion of an element or change in an element's type, the facts in the dictionary were so glued to the dictionary that, they refused to update !

I pondered over a lot of options and tried a lot of workarounds/suggestions:

  • Re-created the schema and imported the schema again into Jdeveloper
  • Cleaned the temporary files in windows which Jdeveloper creates, stores and uses, available under an user's profile
  • Reloaded the facts in the dictionary in a different package (not the default). This updated the facts but all the existing reference in the dictionary had errors in them
  • I even re-designed the schema based on one of my earlier posts
 All my efforts were futile and we had in the meanwhile a SR open with Oracle and we were getting some directions from them. Finally, Oracle found that we had been using a java fact created from the same schema  and imported via a jar, which was the issue!

Since the jaxb objects were the same, they was issue in refreshing the xml facts when a java fact belonging to same schema existed in the same dictionary. Below are the steps to be followed when a xml fact has to be refreshed (as in the case mentioned above):

  1. Exit Jdeveloper
  2. Remove the jar referenced to import the java fact (from hard disk)
  3. Start Jdeveloper, remove the jar from project reference
  4. Update the schema (preferably, open the schema and update contents instead of a replace of .xsd file)
  5. Save all artifacts and run a clean up (not necessary, just a feel good factor) from Build>CleanAll
  6. Reload facts from updated Schema and check for the same (in case not refreshed, close Jdeveloper and try cleaning workspace)
  7. Update the jar with the update schema and reference it in the project properties
Good to move on now !!

Peace!

Cheers,
-AR

Monday, June 28, 2010

SOA Transactions - A very good reference and read

I was reading some random blog posts on OWSM 11g when, in one of the posts, I found this link to Oracle blogs. The blog has two parts and has covered the SOA transactions very nicely. The blog has been explicated in a simple, easy to understand manner. The transactions has been explained keeping in mind SOA11g. I guess there would not be a huge difference when this is applied to 10g. The links are below:

Part One and Part Two


Peace !

Cheers,
-AR

Tuesday, June 22, 2010

Fusion Middleware on Oracletube

I knew that Oracle blogs and Oracle wiki existed. I happened to looking into one of the posts in Oracle blogs and I was surprised to know about the existence of Oracletube. Oracletube, I presume, serves the purpose of a youtube for Oracle products/updates/support. It hosts a number of screencasts which are actually useful and good.

Here is the link to Oracletube and Fusion Middleware section in Oracletube


Peace !

Cheers,
-AR
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License