CONCEPT: The RockSolid SQL Agent

The RockSolid SQL Agent is a scheduling component that executes predefined tasks against SQL Server instances at predefined times. This is a separate but related module of RockSolid and is a stand alone service not dependent on the Microsoft SQL Server Agent.

Overview

The RockSolid SQL Agent is a scheduling module that runs independently of other RockSolid components and is used to execute predefined tasks against SQL Server instances/databases. The RockSolid SQL Agent is not installed on the target SQL Server hosts itself, but runs on a remote host(s) (typically the RockSolidAgent host(s)).

The RockSolid SQL Agent is designed to execute SQL based tasks on instances of SQL Server without a native SQL Agent scheduler. As the RockSolidSQLAgent runs remotely to the target host there are some key considerations that should be reviewed prior to deployment. These include:

Timeliness of Execution

The RockSolidSQLAgent runs a single service which typically is executing tasks on multiple instances. To allow for situations when multiple jobs are needing to be executed on multiple instances concurrently the RockSolidSQLAgent runs a thread pool allowing for concurrent execution. However if the number of concurrent tasks exceeds the size of the thread pool (currently 50) subsequent tasks will be queued until a thread becomes available. The impact of this may be that tasks are executed later than their scheduled start time. They level of delay will vary by the number of concurrent requests queued.

If is therefore very important to consider that the scheduled start time of a task to be executed by the RockSolidSQLAgent is approximate only.

Impact of Network Issues

As the RockSolidSQLAgent runs remote to the target SQL Server instance host, it must establish network connectivity for a scheduled task to execute. If the RockSolidSQLAgent cannot establish network connectivity at the time of scheduled execution the execution will not take place and will be delayed. The RockSolidSQLAgent will continuously retry the connection and once connection is successful the job will be executed.

It is therefore very important to consider that the schedule start time of a task to be execute by the RockSolidSQLAgent may be considerably later than the scheduled start time if a network issue has prevented the RockSolidSQLAgent from contacting a host.

RockSolid Automated DBCC and Maintenance jobs

RockSolid automated DBCC and Maintenance jobs are self managing and will not run outside their predefined window even if executed by the RockSolidSQLAgent. If a network issues causes these jobs to start outside of their predefined windows the jobs will detect this and immediately terminate.

Impact of the Availability of the RockSolidSQLAgent Service/Host

The RockSolidSQLAgent service is required to be running for any job execution to occur. If the service is stopped or the host on which the service is offline then no job execution will occur until the service state is re-established.

SQL Server Edition Support

The RockSolid SQL Agent will only attempt to execute tasks on editions of SQL Server that do not natively support the Microsoft SQL Server Agent. The RockSolid SQL Agent will not attempt to execute tasks on such instances.