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.




Post a Comment