Deployment Preflight Check

When an application is deployed, a preflight check can be performed to ensure that all required applications are in sync and running.

The preflight check consists of two phases:

  • optPreFlight - This phase of the preflight check ensures that all target applications, follower applications, and dependencies are in sync.
  • startPreFlight - This phase of the preflight check ensures that all applications and their dependencies are in a running state.

The way in which the preflight check is done depends on whether you are using the Administrator GUI or the CLI, as described in the following section.

Administrator GUI

When you deploy an application using the Administrator GUI, the preflight check is performed by default. If any of the required applications or dependencies is determined to be out of sync during the optPreFlight phase, they are brought into sync before continuing. If any of the dependencies are determined to not be in a running state during the startPreFlight phase, the Application Dependencies to Start dialog box is displayed, which lists the components that are not running. From this dialog, you can select the listed components and start them.

Note, however, the preflight check can be skipped when deploying applications from the Administrator GUI. This must be done only in situations when you know for certain that all required applications are in sync and running. To skip the preflight check:

  1. From Administrator, select Deploy > More deploy options.
  2. On the Deploy Options dialog, select the Skip preflight option, and then click Deploy.

If you skip the preflight check, and there are dependencies that are out-of-sync or not running, the deployment will fail, as expected.

CLI

When an application deployment is performed from the CLI, the preflight check is not performed by default. To perform the preflight check, handleDependencies must be specified in the AMXAdminTask options attribute. For example:

<target name="deploy.app">

		<AMXAdminTask
			remote="true"
			propsFile="${instance.properties.file}"
			action="deploy"
			dataFile="${basedir}/cli_data.xml"
			objectSelector="Environment//Application"
			overwrite="true"
			merge="true"
			createIfNotExists="true"
			force="false"
			failOnError="true"
			options="handleDependencies"/>
	</target>

For more information about the available options, see Understanding AMXAdminTask.

Note: If a preflight check is performed when deploying from the CLI, only the optPreFlight phase is performed. The startPreFlight phase is not performed.

If, during the optPreflight phase, it detects applications that are out-of-sync, and synchronizes them before proceeding with the deployment.

If the application being deployed is dependent upon applications that are not running, the deployment fails. ActiveMatrix Administrator will not attempt to start the dependent applications that are not running.