Weblogic Reloaded

No doubt there’s countless tweaks to correct and improve the responsiveness of applications deployed on all the application servers on the market. To make matters worse, the tweaks are frequently vendor specific. It seems as software approaches feature richness, so does the complexity it’s configuration. My recent experiences with the Weblogic application server certainly suggest this to be the case.

Occasionally, interacting with the application I’m currently developing, I’d notice the application server blow up with an unusual stack trace originating deep within the internals of struts. The cause - a ClassCastException. Upon investigation of the source (via IntelliJ’s JAD plug-in), it was blantently obvious the cause was totally out of my programming control. The back of my mind hinted that the cause was a configuration issue – a hunch I should have followed through with immediately.

For a full day I dismissed the hunch and followed logic - all other developers on the project, some 15 or so, rarely experienced this problem at best, and if it did occur a quick fix was a re-start away. So it must be some inconsistency in my environment, right? Wrong!
What followed was pure frustration….a Weblogic re-install, 3 JDK changes, at least 10 JVM memory tweaks, numerous tempory folder deletions, approximately 40 re-starts and environment variable and classpath double-checks.

I even cried for help, only for a monalogue to ensue.

So I ended up following that hunch and stumbled across the solution (see link above).

In the tried and true world of MVC Type 2 application development, with a single, unchanging, Controlling Servlet, does it make sense to reload Servlets by default? If you think it has anything to do with JSP reloading, think again, there’s a seperate configuation option for this too.

On the off chance that you still think it’s not a bad idea to reload a Controlling Servlet, consider that reloading the Servlet, such as the struts ActionServlet, can cause all the resources it relies on to be reloaded. In the land of struts these resources include all it’s property files (config, validation, tiles, etc.) - a considerable performance hit.

Perhaps just like the Matrix trilogy, serlvet reloading is better left out?

Leave a Reply