Friday, 13 July 2018

It has been a while...


After more than 4 years this blog still exists. Clearly indicating that the internet never forgets.
I have decided to pick up writing blog entries again. Probably not only Oracle oriented anymore but bringing together a broad spectrum of my interests.

Over the last couple of years a lot of innovations have come and gone but my passion for technology, science, motorsports and off course curling hasn't disappeared. Although I must admit my family life has taken a more central position seeing I'm the proud father of two amazing children.

I have some small articles lined up and am looking forward on sharing some of my point of view with the world.
Stay tuned.

Wednesday, 12 February 2014

Event Delivery for everyone ?

Maybe it’s time for your application to think event-driven instead of request-driven. Well Oracle has it all figured out.
The current release of Oracle Fusion Middleware contains an Event Delivery Network. This network, that has been part of the product for almost 3 years, allows composite to communicate on events instead of requests.
Basically another level of loose coupling can be attained. By using these events it is very easy to incorporate multiple listeners.

Often though developers see this is a handy feature to handle simple jobs like synchronous email communication or custom notifications etc.
One drawback is how the transaction (rollback) is handled between the publisher and subscriber but more importantly between the all the subscribers.
Let me show you what happens based on the documentation of Oracle Fusion Middleware concerning the consistency…
  •   one and only one

Events are delivered to the subscriber in its own global (that is, JTA) transaction. Any changes made by the subscriber within that transaction are committed after the event processing is complete. If the subscriber fails, the transaction is rolled back. Failed events are retried a configured number of times.
  •  Guaranteed

Events are delivered to the subscriber asynchronously without a global transaction. The subscriber can choose to create its own local transaction for processing, but it is committed independently of the rest of the event processing. The event is guaranteed to be handed to the subscriber, but because there is no global transaction, there is a possibility that a system failure can cause an event to be delivered more than once. If the subscriber throws an exception (or fails in any way), the exception is logged, but the event is not resent.
  •  immediate

Events are delivered to the subscriber in the same global transaction and same thread as the publisher. The publish call does not return until all immediate subscribers have completed processing. If any subscribers throw an exception, no additional subscribers are invoked and an exception is thrown to the publisher. The transaction is rolled back in case of any error during immediate processing.

Clearly the choice of the developer can clearly impact the way the event is handled and treated by the different listeners.
As a result this very nice and functional feature needs to be used with causing for “regular” notifications.

After reading this post many might be wondering… … Why not just use JMS ?

Well I’ll leave that up for another post.

Friday, 16 August 2013

Generate simple report from MigrationFeasibility xml (Oracle BPM 11g PS6)

With the release of Oracle BPM Suite PS6 there is a new feature called instance migration. Included in this new feature a Migration Report/Feasibility generator.

A lot of information concerning this and other migration features can be found in the Oracle documentation. (http://docs.oracle.com/cd/E28280_01/user.1111/e15175/bpmug_alt_flw_mig.htm#CHDBFJJA)

However after having generated the report which is bascially an XML file you will end-up with something like this.


Basically a lot of xml tags which are difficult to interpret. To give you a little indication, the file generated contains 75 lines for a simple BPM process without any integration and that has two instances. You can imagine the output for a production system...

This can all change by creating a very simple XSLT file that will transform your xml into a generated html page showing you more information that the xml could.


By using a little bit of color it will be very easy to find non-migrateble instances.

The only thing that needs to be done is add one line to your generated xml with a link to your custom MigrationReport xsl file :
<?xml-stylesheet type="text/xsl" href="migrationReport.xsl"?>
After this the xml can be loaded into any modern browser and you will see it displayed.

Note: The "layout" of my generated report is very poor but seeing that it generated html a very flashy report could be within reach.

Thursday, 8 August 2013

EDN (Event Driven Network) debug servlet

I was recently working on some demo implementation using the well known EDN (Event Driven Network) inside Oracle SOA Suite.

However after numerous tests I kept going back into my AQ tables to see what the message was holding and how it was handled as such... Just like many others I thought to myself, there must be a better way.

That's when I found this little url :

http://soabpm-vm:7001/soa-infra/events/edn-db-log


It gives you a (basic) view of what is going on inside your EDN. Small, fast and extremely helpful. Just like we want our implementations to be.

UPDATE:
I just found out Oracle A-TEAM's Andy Knight has also blogged about this back in March of this year. For more information check their extensive blogpost : http://www.ateam-oracle.com/edn-debugging/

Thursday, 1 August 2013

Use Oracle BPM 11g PS6 to quickstart your business processes

I recently wrote a blog entry on the corporate blog.

Quick and easy development that basically any IT user can do. This entire process took me only 2 hours to build and run.

Have a nice read.

http://integr8consulting.blogspot.be/2013/07/use-oracle-bpm-11g-ps6-to-quickstart.html

Monday, 29 July 2013

VMWare player and NAT setup

After being a fond user of Oracle Virtualbox and being very happy with it, I found myself recently working with VMWare Player.

Now a big advantage of Virtualbox is it's flexible network configuration. Unfortunately I didn't find any equally powerful or relevant features when using the player. Until I discovered this little feature, which I'll gladly share with you.

Open a dos command window and navigate to the location where you installed VMWare player



For example folder :
c:\program files (x86)\VMWare\VMware Player\

Then execute the following command :
"rundll32.exe vmnetui.dll VMNetUI_ShowStandalone"

What you'll get is a nice graphical interface in which you can basically tune any network setting that you could think of.




Good luck and have fun using some extended features of VMWare Player.

Friday, 26 July 2013

Follow JDeveloper Memory Usage

I’ve come across this old but very handy option in Oracle JDeveloper. Basically it’s something I find very useful but often forget how to turn it on.

Open the jdev.conf file assiociated with Oracle JDeveloper. This file should be in the jdevmwhome/jdeveloper/jdev/bin folder.

At the end of this file add the following option.

AddVMOption -DMainWindow.MemoryMonitorOn=true

Once restarted you’ll have a nice memory overview at the bottom right of your screen.



It even allows you to force a garbage collection, just in case you are running close to memory limits.