Saving the EMC Smarts repositiory.

The EMC Smarts suite of software uses an in-memory model (aka: database) that is written to disk at key points, and restored when needed. The repository files have the extension ".rps", and  are normally stored in local/repos/icf - though this can be changed using a couple of environment variables.

How to initiate a repository save

The are a number of ways that the domains can be triggered into saving their repository..

  • For all domains types
    • All domains save the repository when they are tidily shutdown (using sm_service stop, or dmquit).
    • Invoke the "save" operation of the ICF_PersistenceManager using dmctl, ASL or perl.
  • For domains other than SAM and BIM
    • Most domains automatically save at the end of a discovery.
    • The "Domain Manager Administration Console" has a "Save topology" option in the "Topology" menu which allows a save to be requested (don't confuse this with the "save" in the "File" menu - which only saves the console layout configuration).

You should avoid using the "save" command of dmctl itself (use the invoke method shown above instead) because this is a low-level save that doesn't respect the persistence manager's configuration and can result in a broken domain if it use used to restore from.

Scripting a repository save.

Using dmctl:

dmctl -s DOMAIN invoke ICF_PersistenceManager::ICF-PersistenceManager save

Dont use these ..

dmctl -s DOMAIN save filename
dmctl -s DOMAIN save filename classname

Using ASL..

START { .. eol } do {
        pm = object("ICF-PersistenceManager");
        pm->save();
}

Using sm_perl

use InCharge::session;
my $s = InCharge::session->init();
my $pm = $s->object("ICF-PersistenceManager");
$pm->save();

Internals

The persistence manager handles the save mechanism. It is configured to save a specific set of classes - which generally exclude those used for instrumentation. The classes to be persisted are defined in a ".import" or "bootstrap" file (depending on the domain type). The following fragment is from AM/PM's bootstrap-am-pm.conf file..

ICF_PersistenceManager::ICF-PersistenceManager
{
        persistentClasses =
        {
                "ICIM_ManagedElement",  # ICIM managed objects
                "ICIM_Collection",      # Collections of managed objects
                "ICF_CoreConfiguration",# Configurations
                "ICF_CoreSetting",      # Settings
                "ICF_Criteria",         # Matching criteria
                "ICF_PolicyManager",    # Policy Manager
                "ICF_TopologyManager",  # Discovery topology manager
                "GA_SubscriberProfile", # Subscription profiles
                "Recipient"             # Action recipients
        }
}

In general, it is not a good idea to modify this configuration - unless you are writing your own dynamic model domain.

Scroll to Top