I’m begining to dislike Oracle 10g Application Server. That’s my polite and understated way of saying I loath, detest and hate it!
Before I move on I want to make it clear I’m a major fan of Oracle databases. I think Oracle consistently hit the nail on the head with respect to new database releases. Yes, they have a habit of adding chaff and bloat, but the core functionality is on the money every time.
I’ve been using Oracle’s application servers for a little over 2 years. My first experience was with 9iAS and if I ever see an installation of that again I will probably go on a killing spree. It’s like Oracle took a bunch of cool software, cobbled it together and made it totally unusable. If people ask me what 9iAS is like my immediate response is, “It’s an abortion!”.
When AS10g was released we moved to it right away. We had no choice, 9iAS didn’t work. For some months I basked in the glow of it’s brilliance, but little did I know the horrors that were waiting round the corner. Rather than list whats wrong with AS10g let’s look at it from another angle, let’s list what we want from an application server:
- Speedy deployment of new applications.
- Easy configuration.
- High availability.
- Simple problem diagnostics.
- Simple performance monitoring.
The problem is AS10g gives me none of these. Let’s take these points one by one.
Reliability – We have logged untold amounts of bugs against AS10g, most of which have never been fixed to our satisfaction.
Speedy deployment of new applications – Our applications are pretty small and not exactly rocket science, but deployments to our 5 node application server cluster can take hours. You think I’m joking don’t you. I’m not! It’s not unheard of for us to lose our entire production system for a couple of hours during a deployment. Invariable a couple of nodes don’t deploy properly. By the time we’ve undeployed and redeployed the application, along with a few reboots, the user have packed up and gone home.
Easy configuration – Ok, it’s not the worst thing in the world, but there are so many products and layers to deal with that it becomes a nightmare if you want to do anything but the simplest application. I’ve just checked with one of my production app servers and it has 296 distinct log files. When someone asks me, “Are there any errors in the logs?”, it always brings a smile to my face.
High availability – I’ve already told you what happens when we deploy new applications! We have a 5 node cluster to make our application more resilient and maintain availability. Pitty we have to reboot before and after every application deployment. Until recently we were rebooting each app server once a day, but we’ve managed to get that down to once a week, provided we’re not deploying new versions of the application.
Simple problem diagnostics – Too many log files. Too many layers. We were hoping that grid control would come to our rescue, but it doesn’t work properly. I don’t even want to go there. You can read my earlier posts about that crap.
Simple performance monitoring – See previous answer. We’ve ended up writing some of our own tools. Sad I know!
I’m starting to depress myself so I’m going to knock this post on the head soon, but suffice to say, if I had my way we would ditch the lot and use Apache and PHP. No overcomplicated application servers and no J2EE. Simple, reliable and free!
I guess I can dream…
PS. For those of you that are assuming we’re just using it wrong, the consultants we’ve had in from HP and Oracle can’t make it work any better, so I guess we’re in good company 🙂