SOA / Web Services / Java

A Technology Blog

Archive for July, 2008


Posted by Vivek on July 27, 2008

Came across a very good post on Oracle forum. Worth mentioning as there are lot of people experiencing problems with oracle products.

Oracle BPEL + Oc4j + Jdeveloper = brain damage

We have been using Oracle BPEL and now upgraded to (oc4j, bpel and jdeveloper) when I came into contact with it.

Since then, we ran into loads of bugs that didn’t accelerate our development as Oracle promises, but slows us down by a factor of 3 at least.

Just to name a few issues:
– is not 100% stable in cluster mode. Deployment of processes fails randomly, they have to be redeployed several times. Before deployment, you have to undeploy old version to minimize risk of this problem.
– XSDs, XSLTs in BPEL process are sometimes not refreshed after deployment, resulting in reporting bugs that shouldnt exist.
– Oracle parser V2 cannot parse XML correctly, in certain cases when elements are separated by line feeds, it reports “null” elements.
– the whole oc4j uses old JAXB, leading to insurmountable problems if you try to use anything that requires newer version
– if you hope that you can fix problems with Oracle support, forget it, they will want an Oracle web conference with you for every bug. The process takes several days, and in most cases you will solve the issue before them.
– oc4j/opmn binding to multiple IP addresses is not functional, although according to manual it should work
– JDeveloper randomly deletes source code from other projects when deleting web service proxies
– JDeveloper can’t refactor java if the code is in SVN, it leads to corrupt project
– JDeveloper cant delete web service proxies correctly, it leaves old files on disk
– JDeveloper sometimes cant import java code, java sources dont appear in JDeveloper
– JDeveloper generated deserializing code for web service proxies is buggy, cant deserialize null Double, Integer etc. Sometimes it generates code that first uses obejct, and then checks for null …
– if JDeveloper is run from directory containing a space, it doesnt work correctly, unexpected bugs can occur. For example after adding email activity to BPEL project it becomes uncompilable. According to Oracle support this is ok, its mentioned in installation guide and is fully standard nowadays.
– JDeveloper BPEL designer is known to give errors like “Error: null” or ‘Reason: “” ‘ during compilation, meaning its impossible to fix probleme easily.
– in BPEL designer, xpath expression checking is not done, if something is wrong, project compiles but then leads to weird exceptions when deployed.
– when using switch activity, and string xpath in it like xp20:ends-with(), the content must be explicitly converted to string() or you get FOTY001 type error during runtime.
– when using transform activity in bpel designer, if you do not assign certain output nodes, they are deleted from the XML, so no further assign activities work on it.
– as we use custom bpel security module, we found out the BPEL runtime incorrectly passes information about domains when calling process from other domain from another process – leading to weird error that called process doesnt exist.
– when using transformations, bpel designer often says transformation is ok, but then in runtime you get FOTY001 type error, with no hint where the problem might be…
– correlation sets are not working under certain circumstances
– no refactoring in bpel designer, you cant even copy certain activities and paste them elsewhere. So you have to click, click, click everything again or copy in source code
– assign and transform activies are particularly touchy on whether there is element with some data, whether there is no element, or nil element. If the element is missing in input and you use assign copy on it, you are in trouble.
– icons in bpel designer are too big, if zooming is used, activity editing dialogs cannot be used
– when using JDeveloper generated web service proxies to invoke bpel processes, virtually only strings can be passed, if you pass anything else back, you will get various deserialization errors due to badly generated jdeveloper code
– if Oracle support on metalink cant replicate the problem, the problem “doesnt exist”.
– if you tell Oracle support you are going to use another product, they ask whether you still want to continue working on fixing reported bug. Obviously if you dont use oc4j, bugs in it dont need to be fixed.

I can’t imagine any serious company using JDeveloper and oc4j as these 2 are a deadly combination resulting in brain damage.

If you are considering buying BPEL or using Oc4j, think carefully, better take my warning seriously and look for other solutions until Oracle gets its problems sorted out.

Posted in jdeveloper, oracle | Tagged: , , , , , , | Leave a Comment »