SAP NetWeaver Java Cache Administration
This is a reference guide for all common caches of different types of SAP Java systems (CE, PI, Portal, etc), and it also includes separate sections on some cache functions that are specific to certain applications. The target audience of this guide includes SAP basis professionals and systems administrators.
Over the years of working with SAP’s Java based systems, I have noticed a reoccurring pain point from basis or system administrators. This issue specifically relates to understanding the different types of cache refreshes that can be done on a SAP Java system to either make applications reflect their changes, or reset connections. When these methods remain undiscovered, the result is that the administrator simply restarts the system each time someone complains about the system.
It isn’t really about understanding all the technical details of different caches, even though that would be considered fun for geeks such as myself. But simply knowing about these caches and which one to use when can significantly improve productivity by reducing system downtime.
Note: Screenshots and specific locations of the caches are based on NetWeaver 7.31 SP7 AS Java systems.
Central Cache Monitoring
I have found the easiest way of monitoring all caches on a java system is using the SAP Management Console. Instead of having to go to different locations, it provides information on every single cached object on the system. On 7.31, the tool is easily accessible from the homepage of the java system.
The tool provides a list of all the cached objects like this, and details the start and end times of the objects.
Common Caches of AS Java Systems
ICM Server Cache
When: This cache is important for enhanced response time, but if changed web request content is not reflected, this cache has something to do with it.
Where: This cache can be invalidated in bulk using the Web Administrator tool. Go to http://<host>:<port>/sap/admin. Login with the webadm user, which was setup during system installation. Under HTTP Handler, click on Server Cache. Use the Invalidate Cache button.
When: Refresh this cache when stored user information, for example assigned roles, is not reflecting changes.
Where: UME -> Configuration -> Support
When: Clear this cache when an item, which commonly involves a Web Dynpro UI screen, has been changed or customized and the changes are not reflected.
Where: In the portal of the java system (/irj), navigate to Universal Worklist Administration under System Administration, then click on Cache Administration.
Web Service Cache
When: Set this cache for false in non-production environments so that changes made to external web services are immediately reflected in the applications. Setting this to false in production could have a performance impact.
Where: Go to NWA -> Configuration -> Infrastructure -> Application Resources. Filter by “webservice*”. Go to Configuration Properties tab of Web Services Factory.
When: Clear this cache for a user’s navigational properties within the portal has been modified and the changes are not reflected.
Where: In the portal of the java system (/irj), navigate to System Administration tab, and click on Cache Management on the left menu. Select Navigation Cache.
When: Clear the OBN cache when a user’s navigational properties to specific objects, such as pages or iviews have changed, but the changes are not reflected.
Where: In the portal of the java system (/irj), navigate to System Administration tab, and click on Cache Management on the left menu. Select OBN Cache.
When: This is usually used in development environments when shared objects such as portal roles, pages and iviews have been changed and the changes are not reflected to the users.
Where: In the portal of the java system (/irj), navigate to System Administration tab, select Support. On the left menu, click PCD Tools, select Cache Release.
When: Clear this cache when applications that talk to SAP ABAP systems are still showing old data instead of updated data. Ideally, the developers would have incorporated the invalidation of this cache into their code upon detection of data changes.
Where: Go to the NetWeaver Administrator of the Java system. Navigate to the Resource Monitoring menu under Availability and Performance tab.
Select JCo Monitoring, and go to the Metadata Cache tab.
Process Integration (PI) Cache
PI is special and gets its own Cache Monitoring tool located in its monitoring and administration page, it can also be accessed via the NetWeaver Administrator -> SOA -> Monitoring -> Cache Monitoring.
The great thing about PI is that if any development object is cached, such as mapping, interface determination or a channel, you only need to go to one place to refresh it all:
Other PI Caches
You can refresh other PI caches, such as the SLD, via its Administration page. Go to PI’s directory homepage http://<host>:<port>/dir. Click on Administration in the top right corner. In the menu that appears, click Java Virtual Machine Cache.
SAP’s Java systems often communicate with SAP MDM to perform data operations. This is done by developers using the MDM Java API and Connector components provided by SAP and deployed on the Java systems. The connections and requests to and from MDM are cached in parts of these components. I have found two places for clearing these caches.
MDM Java API
When: Reset the API cache when data structures have changed in MDM and need to be reflected in the java applications or user interfaces.
Where: On the Java system where the application resides, go to the below url.
http://<host>:<port>/mdm/apireset?MDS=<mdm hostname>:<mds port>
The MDM properties in the url should be those of the MDM server that the java application is connecting to.
When: Reset the connection of the application to the MDM system if the API cache refresh was not enough to promote changes.
Where: Go to the NetWeaver Administrator, Operations, Start & Stop. Go to Java Application page and filter the list by “*mdm~connecotr*”. Restart the MDM connector application.
Cache Management API
If you are a developer, or someone looking to do SAP applications development, did you know that you can leverage the cache management library provided by SAP to optimize the usage of caches? For example, you may use the API provided to store and read content from certain caches.
Now, I can’t promise that the “refresh” mechanisms will always work as they are supposed to for all versions of these systems, got to leave that up to SAP! You know how that works. Visit our blog at http://hollandsystems.com/blog for more technical publications such as this one!