If you are experiencing problems with alerts, read the solutions detailed here.
Launch the Windows NT Event Viewer. If the event is not in the log, check the log settings. On the Log menu, click Log Settings, and then in the Change Settings for Log box, select Application. If needed, set these options to the specified values.
Setting | Value |
---|---|
Maximum Log Size | Minimum of 2,048 KB (2 MB) |
Event Log Wrapping | Overwrite Events as Needed |
Note Also check the Microsoft SQL Server error log; events written to the Windows NT application log are also written to the SQL Server error log. To focus the search on the cause of the problem, compare the dates and times for events between the SQL Server error log, the SQL Server Agent error log, and the Windows NT application log.
SQL Server Agent polls the performance counters at 20-second intervals.
Important Using a frequency higher than 20 seconds increases the processing overhead for SQL Server.
If a counter spikes for only a few seconds, which satisfies the performance condition, there is a high likelihood that SQL Server Agent will fail to see the spike; the alert will not fire.
The probable causes for this include:
Note Send notifications to as few operators as possible. For example, send notifications to one group e-mail address rather than notifying several individual operators.
This may indicate incorrect registered server information. Verify that the registered server information for the local server is correct and that the registered login name is a member of the sysadmin fixed database role.
Because SQL Server Agent both depends on and monitors SQL Server, SQL Server Agent can become caught in an endless loop of firing the same alert. This generally occurs when SQL Server runs out of an essential global resource and an alert has been defined on this event.
When the number of alerts raised exceeds the SQL Server Agent alert processing rate, a backlog is created.
To eliminate an alert processing backlog
Important Configuring an error to not generate an alert can be performed only within the registry. This solution should be used only as a last resort.
Caution Clearing the Windows NT application log using the Clear All Events option on the Log menu deletes all events from the error log, including those unrelated to SQL Server.
To configure an error to not generate an alert
HKEY_LOCAL_MACHINE
\SOFTWARE
\Microsoft
\MSSQLServer
\SQLServerAgent
\NonAlertableErrors
The list of nonalertable errors can be a maximum of 1,024 characters, should not contain spaces, and items must be separated by commas (,). Any error number in the list that appears after the number 0 will generate an alert. In this way, the entire list can be suspended temporarily if a 0 is the first list item. For example, assume that the list consists of
1204,0,100
In this example, only error number 1204 does not generate an alert. Because error number 100 follows error number 0 in the list, it will generate an alert.
Important Never remove the default nonalert-generating error, error 1204. Error 1204 defines those conditions known to lead to recursive alert generation. Removing this error will hamper attempts to resolve recursive alert generation.