Oracle ACE Award Invitation
May 4, 2010 6 Comments
Yesterday great news from the Oracle grounds, i received an invitation for the Oracle ACE Award!
I’m honored they give me this chance and i will continue my contribution to the Oracle Community.
Just another WordPress.com weblog
May 4, 2010 6 Comments
Yesterday great news from the Oracle grounds, i received an invitation for the Oracle ACE Award!
I’m honored they give me this chance and i will continue my contribution to the Oracle Community.
October 28, 2009 24 Comments
Inspired by the article of Edwin about JMS Request Reply Interaction Pattern in Soa Suite 11g, i will show a little example of what functionality Oracle Service Bus supplies to implement the jms request/response (reply) pattern.
The solution is quiet simple.
Create the wls resources
Create the osb resource


For the Endpoint URi, insert the url to In-queue

Check the ‘Is Response Required’ option.
We will use JMSCorrelationID for the Response Correlation Pattern.
For the Response URI, insert the url to the Out-queue
Testing
Now test the flow by insert a little xml message in the MyQueueIn queue, wait a few seconds and check the MyQueueOut queue.
Only thing what’s left is to fill in the message flow of the proxy service and add some logica.
July 15, 2009 6 Comments
Last i finished the last day of the 3day Oracle Fusion 11g workshop.
And i must say…i’m pretty impressed by the new stack Oracle presented.
For development during the workshop i used my own vmware of fusion 11g on Centos.
And it’s a real killer when all components of the suite are up and running, my laptop had a tuff time.
During the workshop we used the famous ‘Order processing’ tutorial to get in touch with the components of the fusion 11g.
A short overview of what we have been discussing and developing
SCA modelings looks good, composite application development in JDeveloper works like a charm.
Business rules development got new gui, way better then the old one.
BAM dashboards look really good, customers will love those.
EDN framework, event based architectures, nice!
ADF BPEL Worklist, finally an easy way to design your own worklist gui.
Mediator is the old OESB, now it’s used for the wire in the composite applications and subscription on events
New console looks good, all integrated and good support for End 2 End tracking
Fault Policy framework from 10.1.3.4 now works for both BPEL and Mediator
To find out about all the other new functionality, install it and go play with it!
July 4, 2009 19 Comments
The new Oracle Fusion Middleware 11g just got released a few days back, so time to play with it!
Oracle did a great job on the installation guide and quickstart again, so installation wasn’t a real hard job.
A short overview of the steps we need to follow
On the download page i downloaded the next components
This part will show us the included components but also the list of required additional software and optional software
Quiet some software to install before we can get started.
I assume you already have the db running so lets get on to the next step.
Unzip ofm_rcu_linux_11.1.1.1.0_disk1_1of1.zip and run ./rcu
I needed to change the next parameters in the db
And the next parameters in the linux kernel (/etc/security/limits.conf)
# tbv oracle soa suite 11g oracle hard nofile 4096 oracle soft nofile 4096
And a list of missing/wrong version of system packages
Root Checking operating system certification Expected result: One of enterprise-4,enterprise-5,redhat-4,redhat-5,SuSE-10 Actual Result: redhat-5 Check complete. The overall result of this check is: Passed Checking recommended operating system packages Checking for gcc-4.1.0-28.4; Not found. Failed <<<< Checking for gcc-c++-4.1.0-28.4; Not found. Failed <<<< Checking for setarch-1.6-1; found setarch-2.0-1.1-i386. Passed Checking for sysstat-5.0.5-1; Not found. Failed <<<< Checking for libstdc++-4.1.0-28.4; found libstdc++-4.1.2-44.el5-i386. Passed Checking for libstdc++-devel-4.1.0-28.4; Not found. Failed <<<< Checking for compat-libstdc++-296-2.96-132.7.2; Not found. Failed <<<< Checking for compat-db-4.1.25-9; Not found. Failed <<<< Checking for control-center-2.8.0-12; found control-center-1:2.16.0-16.el5-i386. Passed Checking for glibc-common-2.3.4-2.9; found glibc-common-2.5-34-i386. Passed Checking for binutils-2.16.91.0.5-23.4; found binutils-2.17.50.0.6-9.el5-i386. Passed Checking for make-3.80-202.2; found make-1:3.81-3.el5-i386. Passed Check complete. The overall result of this check is: Failed <<<< Checking kernel parameters Checking for VERSION=2.6.18; found VERSION=2.6.18-128.1.16.el5. Passed Checking for hardnofiles=4096; hardnofiles=1024. Failed <<<< Checking for softnofiles=4096; softnofiles=1024. Failed <<<< Check complete. The overall result of this check is: Failed <<<< Checking Recommended glibc version Expected result: ATLEAST=2.5-12 Actual Result: 2.5-34 Check complete. The overall result of this check is: Passed Checking physical memory Expected result: 1024MB Actual Result: 1196MB Check complete. The overall result of this check is: Passed
Install all the correct packages (yum available/yum install), and ignore the other warnings during install.


Setup your own db instance


I selected just all the components







chmod the bin file and run ./oepe11_wls1031_linux32.bin
I had some ‘wrong class version exceptions’, so installed java6 update14.
Unzip ofm_soa_generic_11.1.1.1.0_disk1_1of1.zip and run ./runInstaller in Disk1
Now we need to configure the soa suite installation with the Oracle Fusion Middleware Configuration Wizard.
Go to
<ORACLE_HOME>/common/bin
and run ./config.sh



Since i used 1 db for all the components, select al the components and config the same db settings














Most of the steps are just next, next and a few more next.
Start both the AdminServer and the ManagedServers.
AdminServer
<SOASUITE_HOME>/user_projects/domains/domain_name/startWebLogic.sh
ManagedServers
<SOASUITE_HOME>/user_projects/domains/domain_name/bin/startManagedWebLogic.sh soa_server1 (default name) <SOASUITE_HOME>/user_projects/domains/domain_name/bin/startManagedWebLogic.sh bam_server1 (default name)
On startup it will prompt you for the username/password we used on during installation
For development we will download Oracle JDeveloper 11g R1 (Build 5407).
To be able to create soa projects in it we need to update it with the Oracle SOA Suite Extension.
Go to Help > Check for Updates. Select ‘Oracle Fusion Middleware Products’ in the ‘Search Update Centers’, next and select ‘Oracle SOA Suite Composite Editor 11.1.1.0′.
weblogic server 10.3.1 console

enterprise manager

Installation is done!
Just a few urls to check if everything went ok
administration server
http://host:admin_server_port (default installation : http://localhost:7001)
wls console
http://host:admin_server_port/console (default installation : http://localhost:7001/console)
enterprise manager
http://host:admin_server_port/em (default installation : http://localhost:7001/em)
Oracle Fusion Middleware Documentation Library
Oracle Fusion Middleware Products Update Center
Oracle11g on CentOS-5, package requirements
Oracle® Fusion Middleware Quick Installation Guide for Oracle SOA Suite11g Release 1 (11.1.1)
Ready to create some nice new fusion apps!
June 19, 2009 3 Comments
Yesterday we had the ‘feedback’ day/evening from the WAAI project over at IT-eye.
Part of the idea of the WAAI project is to spread the knowledge inside the company so we all know about he nice upcoming things of the Oracle Fusion 11g stack.
One of my colleagues started with the Oracle BPM presentation and workshop. Some nice info and good exercises to get in touch with the new BPM.
After that the playground was mine.
A few hours of hard work and exhausted colleagues trying to complete all the 3 cases from the workshop.
At the end i planned some time for questions and discussions.
Since most of the colleagues already had experience with the Oracle SOA Suite stack, they could do a good compair on the ‘new’ Oracle Service Bus (OSB) and the ‘old’ Oracle Enterprise Service Bus (OESB).
An overall impression would be quiet positive. They liked the new functionality in the bus althought some of the functionality needs a bit more knowlegde and experience. But thats what we will all have when we start to using new products.
A few questions which came up
After all a good day and i hope my colleagues enjoyed it too.
June 5, 2009 Leave a comment
A while back i got asked by Packt to do a review on the book “Processing XML Documents with JDeveloper 11g”.
With me, some other con colleagues, so googling a bit will give you a good impression what others think about it.
The first impression which i have based on the my reading experience from the other Pack books, is that the books are easy too read and you won’t get overwhelmed with massive amounts of information.
But just enough overview about the subject to get you starting and play with the matery.
Personally, i like it when books explain the theory and besides that gives examples (code) to show me the howto things. This book i just like that, although at some points the the amount of code will get quiet big.
Although documentating large pars of code isn’t always that easy, the author tries to explain most of it in a good way.
For my own use i would google to get my hands on the code, and don’t use a book for this.
The books starts right away with samples and diving into the different apis. So a bit of background experience is adviced for the easy reading.
When reading books but also other resources like tutorials or blogs i like it when the example give me step by step instructions on how to get the examples up and running.
I want them to show me what wizzards i need to use, what settings i need to set and it would be great to show the screengrabs with it. The author explained all this real good. Besides that the book is based on the current version of the ide (Jdeveloper), no need to match possible changes in different versions of the ide.
The title is a bit misleading. Since most parts in the book are just about he usage of the different frameworks and techniques, they don’t really (just) apply to JDeveloper. Although it’s really nice have step-by-step overview of how to create the things in this ide. All the aspects a developer needs to know about when dealing with xml are discussed in the book. Aspects like parsing/creating xml (different apis), xml schema, xml schema validation, xpath, xslt, etc, all are getting discussed.
Besides those a few less ordinaire chapters like ‘JSTL XML’,'Converting XML to PDF’, ‘Converting XML to MS Excel’,'Storing XML in Oracle Berkeley DB XML’ and ‘Oracle XML Publisher’ will come by.
Still a subjects (a few) which came by on the average projects we do for customers, so always nice to have some background information on these.
The book fulfilled the expectations i had before i started reading it, based on the other books i read from Packt.
Easy to read, good examples, and a good resource for trying out and get some hands-on experience.
You can order the book at Packt or Amazon
Thanks Packt for letting me do the review, and i’m looking forward for the next one!
February 14, 2009 10 Comments
From the Oracle forum and from the comments on my article about Oracle BPEL Fault Policy Management i get a lot of questions about how to let the framework handle my own custom defined ‘business faults’.
In certain situations the default set of faults defined by Oracle aren’t suited enough and you need to define your own faults.
If we look into the examples which got supplied by Oracle we can see an example over here. In this example they defined their own NegativeCredit-fault.
The Oracle BPEL Fault Policy Framework by default only handles the faults which are getting returned on an invoke-activity.
So we have our own custom fault and the knowledge we can only let this fault getting catched by the framework by use of an invoke.
So we need atleast for this testscenario 2 bpel processes. One mainprocess which calls a subprocess, and this subprocess will throw the custom business fault.
This fault will get propogated back to the mainprocess and in here we will be able to let the framework handle the fault.
BPEL Processes
Mainprocess
Just a simple invoke of the subprocess from the mainprocess. The subprocess with throw a fault, and this fault will be catched in the mainprocess.
The fault to be thrown
From the console start the mainprocess and wait till it comes back with a fault message
Click the activity to see the thrown fault
[2009/02/13 16:24:41]
"{http://nl.iteye/integration/faults/business}BusinessFault" has been thrown.
<BusinessFault xmlns="http://nl.iteye/integration/faults/business">
<part name="payload">
<BusinessFault xmlns="http://nl.iteye/integration/faults/business">
<FaultCode>999</FaultCode>
<FaultMessage>Something went wrong!</FaultMessage>
</BusinessFault>
</part>
</BusinessFault>
Ok nice!
So the custom fault we defined in the subprocess reaches the mainprocess.
Now we need to config the fault policy framework so it will get active on our custom business fault.
From the fault we pasted above we need the faultname (BusinessFault) and the namespace (http://nl.iteye/integration/faults/business).
Edit /bpel/domains/default/config/fault-policies/DefaultPolicy.xml and add the next fault :
<faultName xmlns:flt="http://nl.iteye/integration/faults/business" name="flt:BusinessFault">
<condition>
<action ref="ora-human-intervention"/>
</condition>
</faultName>
For testing we will just let this fault getting handled by human-intervention.
Now restart the components
opmnctl stopall
opmnctl startall
Now start the mainprocess again and wait till it fails.
It looks like the framework got active (activity yellow marked) on our custom business fault.

Go to the activities-tab

And click the activity which faulted.

Now we can edit some of the values and let the subprocess get re-invoked.
So, at this moment we’re able to throw our custom business faults and let them getting catched by the framework. Since the fault is only getting catched on the invoke of a partnerlink, we aren’t able to let our custom business fault getting throwned to the process in which we maybe want do something with the data for which we actually throwed the custom business fault. So maybe we want to stay in the subprocess and somehow get the custome business fault thrown inhere, let the framework catch it and update the values of this subprocess with new values an re-execute the subprocess.
The next solution will get this done.
The mainprocess won’t get changed but in the subprocess we will invoke a new process called AllBusinessFaults.
The AllBusinessFaults will throw the custom business fault we ‘request’ back on the invoke in this subprocess. Now it wil get catched by the framework and we will be able to change the values of the subprocess instead of the mainprocess.
By using the AllBusinessFaults bpel service like a sort of composite service, we can add the custom business faults in it and throw the one we would like to get thrown. This will work if the collection of custom business faults isn’t that big. I’m sure there will be better solutions for this, but for the scenario i wanted to describe inhere it was good enough for me.
Question
In the examples i provided i don’t use the fault-part of a synchronous invoke to propegate the soap-fault back to the caller, i just throw the fault. The bpel engine itself throws the fault back to the first-level. Whats best practice on this one ?
Sources
BPEL Sources (First part of article with mainprocess/subprocess)
BPEL Sources (Second part of article with mainprocess/subprocess/allbusinessfaults)