Share via


Ошибки таймаута запуска скрипта GetSQL2008DBFilesFreeSpace.vbs(SQL Server Management Pack).

Если после установки пакета управления по мониторингу SQL в консоли Operations Manager появились ошибки следующего содержания:

Alert Name: Operations Manager failed to start a process

Source: SQLServer.domain
Full Path Name: SQLServer.domain\SQLServer.domain
Alert Rule: Workflow Runtime: Failed to run a process or script
Created: 2014-04-18 14:28:06

Alert Description 
Forced to terminate the following process started at 11:16:35 AM because it ran past the configured timeout 300 seconds.
Command executed: "C:\Windows\system32\cscript.exe" /nologo "GetSQL2008DBFilesFreeSpace.vbs" "SQLServer" "SQLServer.domain" "MSSQLSERVER"
Working Directory: C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Monitoring Host Temporary Files 9\2\

One or more workflows were affected by this.
Workflow name: many
Instance name: many
Instance ID: many
Management group: MG

Вам необходимо увеличить таймаут для всех обнаружений, правил и мониторов, которые используют этот скрипт. Проблема в том, что в данном случае, в ошибке нет упоминаний для каких именно Workflow нужно увеличить таймаут (Workflow name: many). Но если посмотреть во внутрь пакета управления Microsoft.SQLServer.2008.Monitoring, можно определить, какие Data Source содержат этот скрипт и какие мониторы и правила используют эти Data Source.

Мониторы:
DB File Space
DB Log File Space

Правила:
MSSQL 2008: Collect DB Log File Allocated Space Left (%)
MSSQL 2008: Collect DB File Allocated Space Left (%)
MSSQL 2008: Collect DB File Allocated Space Left (MB)
MSSQL 2008: Collect DB Log File Free Space (%)
MSSQL 2008: Collect DB Log File Allocated Space Left (MB)
MSSQL 2008: Collect DB File Free Space (MB)
MSSQL 2008: Collect DB File Free Space (%)
MSSQL 2008: Collect DB Log File Free Space (MB)

Ниже указана формула расчета и пример значения необходимого таймаута(https://technet.microsoft.com/en-us/library/dd279652.aspx)

To identify a new timeout value, use the following guidelines: (number of Database Engine instances on the physical node multiplied by 25 seconds*) plus (number of Analysis Services instances on the physical node multiplied by 25 seconds*) plus (number of Reporting Services instances on the physical node multiplied by 25 seconds*).

*This number approximates the time it takes for a script to run. The time it takes for a script to run on your system may vary.

For example, for a clustered SQL Server environment where there are 12 instances of Database Engine on each physical node, 10 instance of Analysis Services on each physical node, and 8 instances of Reporting Services on each physical node, the new timeout estimate is based on the calculation (12*25 sec)+(10*25 sec)+(8*25 sec). The default timeout value is 300 seconds. In this case, the new timeout value should be 750 seconds.

Данная статья носит информационный характер, ссылки на веб-сайты предоставляются для удобства пользователей. Корпорация Майкрософт не несет никакой ответственности за содержание веб-сайтов, не предоставляет никаких гарантий относительно точности, полноты или законности их содержания, ссылки на которые используются в данной статье. Ссылка на внешний узел не подразумевает одобрения мнений, информации или продукции представленной на таких веб-сайтах.