Thursday, March 06, 2008

Oracle iStore, Error in IAS Cache.

Working on a Oracle iStore test environment I came across some strange behavior of some pages. Quite randomly it was only showing parts of the catalog pages and was giving errors in the shopping basket parts of the page. After opening the source of the HTML page I came across a “Error in IAS Cache: java.io.NotSerializableException: oracle.apps.ibe.store.UomKey” error stack message in the source which was causing the problems.

The complete message was:

Message: Error in IAS Cache: java.io.NotSerializableException: oracle.apps.ibe.store.UomKey
Stack:
oracle.apps.jtf.base.resources.FrameworkException: Error in IAS Cache: java.io.NotSerializableException: oracle.apps.ibe.store.UomKey
at oracle.apps.jtf.cache.IASCacheProvider.get(IASCacheProvider.java:718)
at oracle.apps.jtf.cache.CacheManager.getInternal(CacheManager.java:4794)
at oracle.apps.jtf.cache.CacheManager.get(CacheManager.java:2945)
at oracle.apps.jtf.cache.CacheManager.get(CacheManager.java:2893)
at oracle.apps.ibe.catalog.Item.getPrimaryUOM(Item.java:944)
at _oa__html._ibeCCtdAddItemBin._jspService(_ibeCCtdAddItemBin.java:412)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
at oracle.jsp.JspServlet.service(JspServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at oracle.jsp.provider.Jsp20RequestDispatcher.include(Jsp20RequestDispatcher.java:103)
at oracle.jsp.runtime.OraclePageContext.include(OraclePageContext.java:475)
at _oa__html._ibeCCtdItemDetail._jspService(_ibeCCtdItemDetail.java:1871)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
at oracle.jsp.JspServlet.service(JspServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at oracle.jsp.provider.Jsp20RequestDispatcher.forward(Jsp20RequestDispatcher.java:162)
at oracle.jsp.runtime.OraclePageContext.forward(OraclePageContext.java:187)
at _oa__html._ibeCCtpItmDspRte._jspService(_ibeCCtpItmDspRte.java:1051)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
at oracle.jsp.JspServlet.service(JspServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
at org.apache.jserv.JServConnection.run(JServConnection.java:294)
at java.lang.Thread.run(Thread.java:595)
Caused by: oracle.apps.jtf.base.resources.FrameworkException:
An exception occurred in the method CacheAccess.get
java.io.NotSerializableException: oracle.apps.ibe.store.UomKey
The base exception is:
oracle.apps.ibe.store.UomKey
at oracle.apps.jtf.base.resources.FrameworkException.convertException(FrameworkException.java:607)
at oracle.apps.jtf.base.resources.FrameworkException.addException(FrameworkException.java:585)
at oracle.apps.jtf.base.resources.FrameworkException.(FrameworkException.java:66)
at oracle.apps.jtf.base.resources.FrameworkException.(FrameworkException.java:88)
at oracle.apps.jtf.base.resources.FrameworkException.(FrameworkException.java:202)
at oracle.apps.jtf.base.resources.FrameworkException.(FrameworkException.java:218)
at oracle.apps.jtf.base.resources.FrameworkException.(FrameworkException.java:249)
... 33 more
Error in IAS Cache: java.io.NotSerializableException: oracle.apps.ibe.store.UomKey
oracle.ias.cache.NetworkException:
An exception occurred in the method CacheAccess.get
java.io.NotSerializableException: oracle.apps.ibe.store.UomKey
The base exception is:
oracle.apps.ibe.store.UomKey
at oracle.ias.cache.Net.exceptionHandler(Unknown Source)
at oracle.ias.cache.Net.broadcast(Unknown Source)
at oracle.ias.cache.Net.broadcast(Unknown Source)
at oracle.ias.cache.CacheHandle.broadcastManipulation(Unknown Source)
at oracle.ias.cache.CacheHandle.manipulateCascade(Unknown Source)
at oracle.ias.cache.CacheHandle.manipulate(Unknown Source)
at oracle.ias.cache.CacheHandle.invalidate(Unknown Source)
at oracle.ias.cache.CacheHandle.checkTtl(Unknown Source)
at oracle.ias.cache.CacheHandle.findObject(Unknown Source)
at oracle.ias.cache.CacheHandle.locateObject(Unknown Source)
at oracle.ias.cache.CacheAccess.get(Unknown Source)
at oracle.apps.jtf.cache.IASCacheProvider.get(IASCacheProvider.java:656)
at oracle.apps.jtf.cache.CacheManager.getInternal(CacheManager.java:4794)
at oracle.apps.jtf.cache.CacheManager.get(CacheManager.java:2945)
at oracle.apps.jtf.cache.CacheManager.get(CacheManager.java:2893)
at oracle.apps.ibe.catalog.Item.getPrimaryUOM(Item.java:944)
at _oa__html._ibeCCtdAddItemBin._jspService(_ibeCCtdAddItemBin.java:412)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
at oracle.jsp.JspServlet.service(JspServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at oracle.jsp.provider.Jsp20RequestDispatcher.include(Jsp20RequestDispatcher.java:103)
at oracle.jsp.runtime.OraclePageContext.include(OraclePageContext.java:475)
at _oa__html._ibeCCtdItemDetail._jspService(_ibeCCtdItemDetail.java:1871)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
at oracle.jsp.JspServlet.service(JspServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at oracle.jsp.provider.Jsp20RequestDispatcher.forward(Jsp20RequestDispatcher.java:162)
at oracle.jsp.runtime.OraclePageContext.forward(OraclePageContext.java:187)
at _oa__html._ibeCCtpItmDspRte._jspService(_ibeCCtpItmDspRte.java:1051)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
at oracle.jsp.JspServlet.service(JspServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
at org.apache.jserv.JServConnection.run(JServConnection.java:294)
at java.lang.Thread.run(Thread.java:595)


An exception occurred in the method CacheAccess.get
java.io.NotSerializableException: oracle.apps.ibe.store.UomKey
The base exception is:
oracle.apps.ibe.store.UomKey


Oracle metalink advised applying patch 6709272 in note 434121.1.The route cause, claimed by metalink is:

The issue is caused by the following setup: Distributed cache mode enabled for non-serializable
key classes.

The class oracle.apps.ibe.store.UomKey is being used as a key for the cache that is declared distributed. The key class must be serializable but the key class in this case is not serializable. The keys are made serializable in Release 12.
For 11.5.10 don't use distributed flag for the following cache components:
oracle.apps.ibe.store.UomKey.java
java/displayManager/MediaKey.java
java/catalog/ItemCacheKey.java
java/catalog/ItemLangCacheKey.java
java/catalog/RelatedPriceCacheKey.java
java/catalog/SectionLangCacheKey.java
As per Note 275879.1 "The Component Caches using distributed functionality must use keys that are serializable".

Applying the patch worked for us they however do also provide a temporary workaround you can use before applying the patch on your systems.
1. Login to CRM HTML Administration Responsibility
2. Go to Performance > Components
3. Choose "iStore" for the View
4. Select the below cache components and view the Edit Component Cache page -
IBE_ITEM_CACHE
IBE_MEDIA_CACHE
IBE_UOM_CACHE
Uncheck the Distributed Mode checkbox for the above components
5. Clear the java cache and bounce the apache server.
6. Retest the issue.




3 comments:

Steve said...

Johan - I'm working with these errors in the iStore as well. We've applied the recommended patch (6709272) in our test environment, and are currently evaluating it. So far it seems that performance of our shopping cart display page has deteriorated. I'm curious, have you tried applying the patch, and if so, how did it work for you? Did you notice any performance issues?

Johan Louwers said...

Hi Steve, yes we have applied the patchesHi Steve, yes we have applied the patches to the UAT environment and we have evaluated the working of it. We do however did not have noticed any performance drops in the system. Do you have modified code in your system? It might be that this is working in your disadvantage. You can contact me via mail if you like to discuss this in more detail… my mail address is johan.louwers{{at}}terminalcult.org.

Anonymous said...

hi there,

I followed the instructions as mentioned. But by mistake I removed the IBE_UOM_CACHE key. How can I bring it back?

Thanks.

techie_ns