You will all encounter, or maybe already have encountered, at some point in time, applications that perform bad. You check the code, or better, profile it. After removing the Thread.sleep(1000) calls 🙂 there are still cases where the code runs too slow. The reasons can be various, from bad architecture to large object creation times and external systems with slow response times.
If the architecture is bad, you have a problem, in all other cases you can think about implementing a caching mechanism.
There are various cache libaries available or you can even write your own. It all depends on the requirements for the cache.
As an Oracle minded company, we use the Oracle caching products.
Oracle provides a caching library called the Java Object Cache (JOC). It is fairly easy to implement and supports distributed caching across multiple JVMs. JOC is a part of the OC4J and thus the Oracle Application Server, so you can use it for ‘free’ if you have licensed the app server.
Since the launch of Oracle Fusion Middleware 11G I wondered if Oracle would still supports the JOC because:
-) The current version of JOC is 10.1.2, no 11G version in sight.
-) It is embedded in OC4J but OC4J is replaced by Weblogic.
-) Oracles strategic caching product is Coherence.
So I did a little research. Indeed Coherence is the way to go. Coherence has all the features of JOC and many more. But imho Coherence true power unleashes when using it as an enterprise grid cache. And yes, there is the standard edition without the grid capabilities, but still, JOC is a better choice if you want a no nonsense, simple to use, embedded in your application, I can’t afford Coherence, cache.
Back to my initial question. Is JOC still supported? Actually it does. Webcenter 11G uses JOC in the Webcenter Spaces component. Maybe, Oracle will release an 11G version…you never know.