1 of 1 people found this helpful
I don’t see API for CMDB-Cache-Refresh-Interval unless you make some change at Class definition level. E.g. create dummy attribute and keep changing it whenever you want refresh cache.
to answer your question:
By default, the cache is refreshed every five minutes. You can set this interval by
editing a line in the AR System configuration file.
To set the cache refresh interval
1. Edit the configuration file for the AR System server where BMC Atrium CMDB is
On Windows, this file is
On UNIX, this file is <ARserver_install_dir>
line, set the value in seconds for the interval
at which the cache is refreshed.
For example, to refresh the cache every two minutes, set the line to read
If this line does not exist, create it.
From the document here:
(Stupid editor throws out formatting ...)
Good to hear from you Manish.
Ok, sounds like a bit of hack. But I am good as long as it works. :-) To better understand that it works, a follow up Q:
So, if I alter some attribute definition & issue the CMDBClass.SetAttribute to save this attr definition -- this call is *blocked* until (the modification took place plus) the cache is refreshed? So when the response comes back to the client, I can be assured that the cache is already refreshed?
Thanks for the response. But, I am only looking at programmatic way of doing this.
BTW, your workaround is to "force a cache refresh" if it works the way you described. My original question was the ability to "get/set this cache refresh interval value" programmatically.
In any case, my desire was mainly to wait for completion of a cache refresh before proceeding to doing other work. So I wanted to find what the cache refresh interval value was, and simply have the client sleep that long (plus some offset seconds to be safe). However if you can tell me that your workaround of forcing a refresh by a fake metadata modification, will run synchronously and gives the client control back only upon completion of cache refresh -- my problem is still solved.
But if you say, by this workaround -- I merely kicked off a cache refresh, as a result asychronously the cache is refreshed, control got back to me immediatedly. i.e. Whether the cache refresh is completed or not, is still undeterministic by the time control got back to API client. This is no good for me.
So in essence, I want to have a foolproof mechanism to make sure I wait for a cache refresh to occur/complete, and only upon its completion, I want my API client to proceed further. Pls confirm if your workaround does the trick for me here, otherwise other suggestions!