Opening and Closing a Queue

Closing a queue means that jobs will not queue up and wait, if a trigger occurs after the queue is closed. Therefore, it would be considered a "missed" trigger in that the Scheduler will not place the jobs in a waiting state, which happens when a queue is stopped. Therefore, closing a queue is a more severe action because jobs will not queue up or run during the closed period. However there may be scenarios that you do not wish jobs to queue up when a queue is down for maintenance purposes. When that is the case, you can close the queue.

 

When an Execution QueueClosed An Execution Queue identifies the system where a Job will run. The system is specified in the Execution Queue's Machine property. The system entered in this property must have an ActiveBatch Execution Agent installed on it. When a Job is associated to an Execution Queue, it will always run on the system specified in Machine property, unless a manual override is performed (for example, using an instance's "requeue" operation) is closed, this means jobs will not run or queue up when they are directly associated to the Execution Queue that is being closed. For example, if a manual trigger is performed, an ActiveBatch Error message box will pop up, stating that the queue is closed for submissions. If the queue is closed and an automated trigger occurs, the instance will be marked "failed" (it will not run) with an exit code description of "Queue closed". If job(s) are already executing when you close an Execution queue, they will not be impacted and will continue to run to completion.

 

When a Generic QueueClosed A Generic Queue represents one or more Execution Queues. Each Execution Queue points to a system where ActiveBatch jobs run. Each system must have an ActiveBatch Execution Agent installed on it. When a Job that is associated to a Generic Queue is triggered, it will run on one of the Execution Queues that is a member of the Generic Queue. One of the key purposes of a Generic Queue is it supports Execution Agent high availability (active-active). Should one Agent and its assigned Execution Queue go offline for maintenance purposes or for unknown reasons, the surviving Execution Queue members of the Generic Queue can pick up the load. When a Job is associated to a Generic Queue, it means can run on more than one system - that is, it can run on members of the Generic Queue. On a per Job basis, you can set Job properties limiting the Execution Queue members the Job can run on, if desired. is closed, jobs that are triggered and associated with that queue will not be dispatched to any member Execution Queue(s). For example, if a manual trigger is performed, an ActiveBatch Error message box will pop up, stating that the queue is closed for submissions. If the queue is closed and an automated trigger occurs, the instance will be marked "failed" (it will not run) with an exit code description of "Queue closed". If job(s) are already executing when you close a queue Generic Queue, they will not be impacted and will run to completion.

 

One of the advantages of associating jobs to a Generic Queue is if one of the member Execution Queues are closed, the remaining member systems are still eligible to run the job when it triggers.

 

Open/Close operation is an in-context operation. That means ActiveBatch will select the proper operation depending on the current state of the Queue (i.e. if it’s open, you can close the Queue).

 

 

You can also automatically schedule open and close operations on a per queue basis as part of the Queue’s properties as depicted in the image below. One drawback to the timed queue operations is that, once set they are applied each day. However, the Close and Open Queue Jobs Library Job Steps are also available for maximum flexibility.

 

 

To close or open a Queue, you must have “Manage” access permission on the Queue object.