During the load test we saw a lot of 500 Errors. In the application log files we noticed the following NullPointerException was logged, especially the caused by clause was interessting:
Caused By: java.lang.NullPointerException at java.util.LinkedHashMap.get(LinkedHashMap.java:333) at oracle.wcps.cache.internal.MapCache.get(MapCache.java:142) at oracle.webcenter.content.integration.spi.ucm.UCMCacheHelper.getSecurityInfo(UCMCacheHelper.java:279) at oracle.webcenter.content.integration.spi.ucm.SecurityInfoHelper.getCachedSecurityInfo(SecurityInfoHelper.java:122) at oracle.webcenter.content.integration.spi.ucm.UCMBridge.checkSecurityLevelForNode(UCMBridge.java:2626) at oracle.webcenter.content.integration.spi.ucm.UCMBridge.canAccessNode(UCMBridge.java:2591) at oracle.webcenter.content.integration.spi.ucm.NodeOps.getNodeFromCache(NodeOps.java:700) at oracle.webcenter.content.integration.spi.ucm.NodeOps.getUCMNodeWithId(NodeOps.java:1480) at oracle.webcenter.content.integration.spi.ucm.NodeOps.getNodeWithId(NodeOps.java:153) at sun.reflect.GeneratedMethodAccessor752.invoke(Unknown Source)
We were able to reproduce this behavior quiet easily, with a load test from 10 sessions for 2 hours. After contact with Oracle Support about this issue, we decided to build in the Coherence caching mechanism.
It's not that hard to implement this feature, for example see a blog by the a team about Coherence cache.
Ever since we're using Coherence instead of the default caching mechanism for the content presenters, the issue hasn't occurred anymore.
Good read. The blog title is a bit confusing because you're using Coherence for the content in WebCenter Poirtal.
ReplyDeleteHad a similar issue at another customer, seems like the default caching mechanism is somewhat broken. Changing to Coherence seemed to help there as well.
Thanks Jaap, I changed the blog title to WC Portal.
ReplyDelete