Advanced Project Deployment Options

Project deployment options determine how your project is deployed in a cluster and how it functions at runtime. Set these parameters, including project options, active-active instances, failover intervals, and project deployment type options, in the CCR file manually or within Studio.

Active-Active Deployments

To deploy a project in active-active or HA (high availability) mode, set <Project ha="true"> in the CCR file. In an active-active deployment, two instances of a project run simultaneously in a cluster. Active-active projects are typically configured so that the cluster starts the two instances of the project on different nodes (hosts). This feature avoids the risk of a single point of failure at the project level.

One instance of the project is elected as the primary instance. If one of the instances is already active, it is the primary instance. If the failed instance restarts, it assumes the secondary position and maintains this position unless the current instance fails or is stopped.

Project Options

Project options are used as runtime parameters for the project, and include a predefined list of available option names that reflect most command line entries.

Instances

When a project is deployed in HA (active-active) mode, two instances are created: primary and secondary. Whether the project is in HA mode or not, you can set affinity and cold failover options for each instance, including failover intervals and failure per interval options. Non-HA projects have one instance, numbered 0 (zero). HA project instances are numbered 0 and 1. Some commands require instance numbers to identify instances of a project.

Failover

A project fails when it does not run properly or stops running properly. If failover is enabled, a failover occurs when a failed project switches to another server to continue processing. Failover typically results in a project restart, though a strong positive affinity to a node that is not available can prevent a project from restarting. Restarts can be limited based on failure intervals and restarts per interval. Failover options, accessed using an instance configuration, include:

Field Description
Failover Either enabled or disabled. When disabled, project failover restarts are not permitted. When enabled, failure interval and failures per interval fields can be accessed and restarts are permitted.
Failures per interval Specifies the number of restarts the project can attempt within a given interval. This count resets to zero if you restart the project manually or if failures are dropped from the list because they are older than the size of the interval.
Failure interval (Optional) This specifies the time, in seconds, that makes up an interval. If left blank, the interval time is infinite.

Affinities

Affinities limit where a project runs or does not run in a cluster. There are two types of affinities:
  • Controller – for active-active and non-active-active configurations. Controller affinities let you establish rules and preferences as to which controller nodes your project can run on. A project can have affinities for more than one controller, but it can have a strong positive affinity for only one controller.
  • Instance – only for active-active configurations. The two instances of an active-active project can have affinities for each other. For example, if you want such instances never to run on the same node, set strong negative instance affinities. If you want them to avoid running on the same node if possible, set weak negative instance affinities.
Define these parameters for each affinity:
Field Description
Name Enter the name of the object of the affinity, that is, the controller name or instance name that the affinity is set for. For instance affinities, the affinity for one instance must refer to the second instance.
Strength Specify Strong or weak. Strong requires the project to run on a specific controller, and no others. If you have strong positive affinity set for a controller node, and that node fails, the failover process tries to restart the project on that node. If the node has not recoverd, the project restart fails and you must restart manually.

If the affinity is weak, the project preferentially starts on the defined controller, but if that controller is unavailable, it may start on another available controller.

Charge Specify Positive or negative. If positive, the project runs on the controller. If negative, the project does not run on the controller.
Related concepts
Project Configuration File Editor
Related tasks
Creating a Project Configuration
Opening an Existing Project Configuration
Editing Advanced Options in Project Configuration