Snaplex state transitions
State transitions in a Snaplex
In the default state, all Snaplex nodes can accept new pipeline execution requests with pipeline runs load balanced automatically across the nodes. The other state is Maintenance Mode. State transitions occur before and after the default Snaplex states.
Snaplex state transition
A state transition can occur for many reasons because of a Snaplex version update, a configuration change to the Snaplex, or a restart. When a state transition is required for a Snaplex, one node (or more for larger Snaplex instances) at a time enters a Cooldown state, in which new pipeline execution requests are not sent to the node. In this state, the node waits for currently running pipelines to complete. For long-running pipelines that are set-up to poll continuously (like a pipeline using File Poller or JMS Consumer Snaps) and Ultra Tasks, the pipeline is sent a state notification to allow the pipeline to stop polling for new records.
Pipeline execution timeout when restarting a Snaplex
A node can stay in the Cooldown state for a configurable timeout (the default is 15 minutes), called the Max. restart wait time which you can set in the Node properties tab in the Update Snaplex and Create Snaplex page in Admin Manager. If all pipelines complete within this timeout, then the node transitions to the required state. If pipelines are still running after this timeout, then those pipelines terminate to allow the transition to the required state.
You can increase the default value of 15 minutes to a higher value on Snaplex instances that run longer-running pipelines (in terms of duration). However, for polling and Ultra Tasks, you do not have to increase this value since the pipeline is notified to stop polling for new records, thus allowing the pipeline to terminate cleanly.
- We strongly recommend that you keep the Max. restart wait time below one hour. Setting a larger timeout can cause issues because configuration and version changes take a longer time to apply. During the final Snaplex version upgrade (four weeks after the release involving the Snaplex upgrade), the SnapLogic control plane waits one hour for all Snaplex instances still on the older version to upgrade to the new version. Beyond one hour, the control plane does not allow new pipeline execution requests on the old version.
- If you use the Snaplex for Triggered pipeline or Ultra pipeline executions, we strongly recommend you to setup a load balancer on the Snaplex configured to use a health check on the node state. Without a properly configured load balance, requests would continue to come to the node while in Cooldown state, causing failures.
- You can set Max. restart wait time to Forever, by setting the toggle Set restart wait time to "Forever" would never allow the Snaplex to go into a transition state. However, setting the timeout to Forever places the onus of manual termination of pipelines on the Org admin. Essentially, you would need to terminate some pipelines manually to force a state transition in the Snaplex.
- If you decrease the timeout to an extremely low value like 2, then any pipeline of a longer duration is terminated before completion.
Snaplex version change
When a Snaplex version change is initiated, one node at a time undergoes a transition of its state. After the node enters the Cooldown state and running pipelines complete, the JCC process on the node terminates and restarts with the new version of the Snaplex binaries. Since the Snaplex version upgrade happens in a rolling manner with no downtime required on pipeline executions, your interaction is not required during the rolling restart—all node transitions are completed automatically.
Snaplex maintenance mode
When you place a Snaplex node in maintenance mode, the node enters the Cooldown state and waits for running pipelines to complete. After all pipeline runs come to completion, the node enters maintenance mode, during which the node does not accept any pipeline execution requests.
During an upgrade, the behavior of the Snaplex depends on the type:
Cloudplex: If a node is in maintenance mode and the Snaplex versionis updated, the Cloudplex exits maintenance mode after the version update.
Groundplex: If a node is in maintenance mode and the Snaplex version is updated, the Groundplex remains in maintenance mode after the update.
- We do not recommend manually placing the nodes in maintenance mode during a Snaplex version update or configuration change.
- The FeedMaster should not receive client requests while it is in maintenance mode. If you put a FeedMaster node in maintenance mode, you must make sure your load balancer is set up to stop client requests from directing to the FeedMaster when the health check to the node is failing. The health check fails when the node is in maintenance mode.