Wednesday, January 9, 2008

Impressions on using Oracle's middleware stack

After another week lost attempting to make an Oracle product work, I've finally decided to rant about it publicly. As a software developer (mostly J2EE) I have had the misfortune of having the Oracle Application Server stack "picked" for me by my clients, and it hurts. I think it must be a run of bad luck, I have been using it since Oracle purchased the container from Orion and hadn't even started calling it OC4J yet. 1.0.2.1.0 was one the first in a long and complicated string of releases, and with each one I held hope that it would get better. Unfortunately, it has not. How Sun lets Oracle get away with calling it a J2EE container is beyond me. And thats just the container...

As for naming this blog.. I thought that some sort of oracle error seemed appropriate. Especially since there is no avoiding the cryptic messages that you have to go to a non-oracle source to decode. Here are a few that I looked at (from the "Frequent Oracle Errors" section on ora-code):
  • ORA-01033 - ORACLE initialization or shutdown in progress
  • ORA-04068 - existing state of packagesstringstringstring has been discarded
  • ORA-01092 - ORACLE instance terminated. Disconnection forced
  • ORA-12500 - TNS:listener failed to start a dedicated server process
  • ORA-00097 - use of Oracle SQL feature not in SQL92 string Level
I thought that ORA-00097 was especially funny since the cause seems to be "using Oracle extensions" and the action is "none". But in the end decided on ORA-01092 since it seems like a nice suggestion on what to do with their products.

Hopefully this will become a place where developers that have been forced to use the Oracle stack can come to commiserate on using this decrepit platform. Some candidates for good starter topics may be:

  • Why the Oracle XML parser (parserv2.jar) is the most annoying and worthless parser ever
  • How annoying it is that OPMN (Oracle Process Manager N-something) can't manage what it is supposed to.
  • How much time is wasted when OEM gets in a bad state and you need to create a new container for the N-th time.
  • Downloading things from oracle (why do I need a 700mg file to do anything?)
  • Why can't Oracle make the stupid Universal Installer universal?
  • Why the JAZN (Oracle's JAAS implementation) totally sucks (most of this was fixed in 10.1.3)
  • What is it with Oracle numbering anyways? OC4J 9.0.2 was virtually the same as 10.1.2, but 10.1.3 was almost a total rewrite.
  • OC4J's terrible classloader
Sadly, there is much more.

No comments: