Distribution Processes

Initially, an Distribution Service creates a list of targets and determines which distribution steps actually need to be made. For each distribution step and process type that actually needs to be executed (physically required), it starts its own distribution process or thread. Distribution is multi-threaded, i.e. the processes are simultaneous.

Ivanti DSM differentiates between four types of processes in respect to distribution, for which the polling intervals can be defined separately:

  • Configuration: Distribute the ICDB and Extern$ directories outsides the repositories
    The ICDB (Infrastructure Configuration Database) and Extern$ directories (<Depot>\Extern$ and <Depot>\SSI\Extern$) apply to the complete site structure and are therefore currently distributed to all depots if it has changed. The distribution runs from the Central Depot.
  • Repository:
    Distributing the package job definition files and the Extern$ directory of repositories
    The files are currently distributed to all subordinated depots if they have changed. The distribution runs from the master depot of the structural object in the context where the repository is located.
  • Preparing for distribution: Creating compressed files (depending on the package type) and revisions
    Distribution is prepared in the package’s repository. The repository’s master copy resides on the master depot of the structural object (ORG, region or site) in the context where the repository is located.
  • Packages: Distributing installation files and Extern$ directory of packages
    The distribution runs from the master depot of the structural object in the context where the repository is located.

For each polling interval, the process checks if new or changed data is on "its" source. If yes, the process reads the changed data from the associated source and writes it to the target. There are different kinds of tests, depending on the process type, to determine whether there are changed files in the source.
The following files are read from the distribution source:

  • ICDB process: NicfgSrv.ncp, Nicfglcl.ncp and Extern$ directories
  • Repository process: all respective files
  • Preparation process: status file
  • Package process: The timestamp of the directories is cached. If the cached timestamp is not current, the status file is checked.
  • If distribution is disabled through the distribution timeframe (No Activity), the polling interval for the Distribution Service will continue to run without the files being read. Thus, no network access takes place by the Distribution Service.

    If a distribution is needed, the Distribution Service first attempts to exclusively lock the target and source; a locked file (SRC.LCK or DST.LCK) is written to the target and source. If the target or source cannot be locked because they are already locked, this step is skipped and retried in the next polling interval. After copying, the locked files are deleted.

Distribution when a Connection is Terminated

Even when a connection terminates during copying, distribution continues after the connection is restored even when files may be initially corrupt on the target:

  • The Distribution Service does not check if the files in the target are more recent; it only looks for different file dates.
  • This test covers all files in the package directory and in the repository, *.NCP files and all files in the Extern$ directories.
  • Checkpoint Restart allows it to continue interrupted downloads exactly at the point in a file where the interruption took place.

Current Status of Distribution

You can see the current status of the package distribution at any time in the DSMC. For this purpose the command View Distribution Status is available in the context menu of a package to open a dialog box. In addition, the Details window provides a separate Distribution tab.

Dialogfenster "Distributionststatus":