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":