Lot of times we might end up in cache refresh errors due to incorrect configurations and there are may documents to address these problems. But some times we can come across a situation where cache contents can become inconsistent even if the configuration parameters are apt.
In short we will discuss a new phenomena, which can cause cache content refresh errors in real time and how to trouble shoot it.
In the midst of our development suddenly our interfaces stopped working generating the cache refresh errors in the SXMB_MONI. When we checked SXI_CACHE it gave us the error message Cache Contents are Obsolete. (I do not have a screen shot now as it has happened couple of months back.).
We are not able to understand the weird behavior as till that day all interfaces are working fine and no body has touched any configuration parameters.
Finally as an ABAPer , I went ahead debugging the code in SXI_CACHE and found that there is a BPM which is causing the inconsistency as some one has accidentally deleted work flow task associated.
We went ahead deleting the BPM from the IR and re-created with a different name and re-imported into the ID and activated it and checked the status of cache in SXI_CACHE. It is perfect.
We can also end up in cache refresh error though the configurations are correct due to the inconsistent objects either in IR or ID. For Ex: ID is referring to a mapping object in the IR, which is no longer present. This might happen very frequently when migrating several objects from development to QA if proper care has not been take to address that.
After migrating the IR objects from dev to QA, we dont re-activate the IR objects in the QA repository, so we do not know the inconsistencies in the IR. After the activation of the ID objects we found all objects of one particular SWCV has red status in the problem section of ID. To encounter this we did a sanity check whether the repository objects are consistent as shown below.
This can be one of the reasons for cache refresh errors. We found out that few name spaces in one SWCV caused the inconsistencies. So before we re-imported the SWCV again from the development IR we planned to delete all the objects of IR in QA. We can delete all objects of SWCV as shown below without deleting the objects from individual namespaces. One has to be careful with this option, as this entry will not be even included in the change list .
After doing this we were able to activate the components with the red status.
But still when we did a complete cache refresh, SXI_CACHE displays Http_communication_Error. This basically happens due to time out of HMI RFC Destination, which can be set in SM59 of QA ABAP stack transaction as shown below.
We do not require doing these settings in the development as the volume of data for cache refresh is not so huge as compared to the initial cache refresh for QA box as all the migrated objects has to be refreshed after the initial transport.
I just thought this new phenomena can be shared to the XI world as some times we end up breaking our heads to understand the weird behavior of SXI_CACHE even when all the configuration parameters are maintained appropriately.