In Dimensions CM 12.x and later you can perform deployment operations asynchronously in the background. The asynchronous processing is executed by a Dimensions CM server component called the deployment server (dmdeploysrv.exe). The following diagram shows the deployment server in the business logic tier in the Dimensions CM architecture:
The deployment server is started by the pool manager. The deployment server then reads the configuration file (DM_ROOT/dfs/deploy_config.dat) and begins to monitor the deployment job queues for any new deployment jobs that need to be executed in each base database.
As users execute deployment related commands such as promote, demote, build, and audit, these commands submit new deployment jobs into the deployment job queue of the base database. A deployment job includes information about:
The type of the operation to be performed (deploy, rollback, build, audit, clean etc).
The deployment areas where the deployment job will be executed.
Where appropriate, the set of Dimensions artifacts to be applied to each area, for example, the items and requests to be deployed to an area.
As new deployment jobs are added to the deployment job queue, the deployment manager automatically reads the details of the new jobs and executes them.
The deployment server uses the following rules to execute deployment jobs, which ensures that jobs are processed efficiently:
When a deployment job is selected for execution the affected deployment areas are locked by the deployment manager so that no other deployment job can execute in the areas until the deployment job finishes. After the job is completed the areas are automatically unlocked.
When a deployment job affects multiple deployment areas it is executed concurrently in as many deployment areas as possible, depending on:
The sequence numbers assigned to each area. For details about setting sequence numbers see Setting a Deployment Sequence.
The availability of system resources such as free application servers in the pool.
Deployment jobs submitted in a single user session are executed sequentially in the order that they were submitted as soon as all the deployment areas affected by each job are available.
Deployment jobs submitted from different user sessions are executed concurrently in the order that they were submitted as soon as all the deployment areas affected by each job are available.
The deployment server does not access the deployment areas. Instead, it uses application servers to perform any relevant database meta data queries, obtain connections to library servers on deployment area nodes, and carry out the deployment operations in each area.