Too many cache updates hangs SAP PI systems
If you find SAP PI system is unresponsive and thread dump shows most of the java threads showing the following stack information, it means that there are a lot of CPA cache update requests that are waiting for an active cache update to complete.
at java.lang.Thread.sleep(J)V(Native Method)
at com.sap.aii.af.service.cpa.impl.j2ee.sapengine630.SAPJ2EEClusterController.blockAndSetLock(Ljava.lang.String;)Z(SAPJ2EEClusterController.java:784)
at com.sap.aii.af.service.cpa.impl.cache.CacheManager.performCacheUpdate(ZZ)Lcom.sap.aii.af.service.cpa.impl.cache.directory.DirectoryDataParseErrorInfo;
(CacheManager.java:466)
At a given time only one cache update has access to update the database with the change. Other cache requests have to wait for the ongoing cache update to remove its enqueue on completion. While these requests are waiting, they occupy application threads. In the event of high number of cache updates, it may lead the application to stall as the threads are all waiting.
In order to avoid the problem from reoccuring, SAP has introduced a lock timeout parameter with SAP note 2043602
at java.lang.Thread.sleep(J)V(Native Method)
at com.sap.aii.af.service.cpa.impl.j2ee.sapengine630.SAPJ2EEClusterController.blockAndSetLock(Ljava.lang.String;)Z(SAPJ2EEClusterController.java:784)
at com.sap.aii.af.service.cpa.impl.cache.CacheManager.performCacheUpdate(ZZ)Lcom.sap.aii.af.service.cpa.impl.cache.directory.DirectoryDataParseErrorInfo;
(CacheManager.java:466)
At a given time only one cache update has access to update the database with the change. Other cache requests have to wait for the ongoing cache update to remove its enqueue on completion. While these requests are waiting, they occupy application threads. In the event of high number of cache updates, it may lead the application to stall as the threads are all waiting.
In order to avoid the problem from reoccuring, SAP has introduced a lock timeout parameter with SAP note 2043602
Comments
Post a Comment