Monitor connessione database di Service Provider Foundation

Microsoft.SystemCenter.SPF.Monitor.SpfDatabaseScriptMonitor (UnitMonitor)

Esegue il monitoraggio della connessione tra endpoint Web SPF e database SPF.

Knowledge Base article:

Riepilogo

Esegue il monitoraggio della connettività del database dai server Web di SPF. Per eseguire questa operazione, viene effettuata periodicamente una connessione di test al database di Service Provider Foundation.

Cause

Se si verifica un errore nel monitor, il database non è disponibile dal server oppure la sicurezza per il monitor non è configurata correttamente. Per informazioni dettagliate sulla configurazione del monitor, vedere la sezione Configurazione.

Se il monitor è configurato correttamente ma si verifica un errore, il database è offline oppure il server di Service Provider Foundation non è in grado di accedere al server di database.

Risoluzione

Verificare lo stato del database di Service Provider Foundation e del server di database.

Configurazione

Per funzionare correttamente il monitor deve disporre dell'autorizzazione per leggere il database di Service Management Automation. Creare un account RunAs che dispone delle autorizzazioni di lettura per il database e aggiungerlo al profilo RunAs denominato Account di database di Microsoft Service Provider Foundation.

In questo monitor è possibile configurare le opzioni seguenti:

Opzione

Definizione

Impostazioni predefinite

Avviso stato

Stato di integrità per il monitoraggio che genera un avviso.

Il monitoraggio è in stato di integrità critico

Priorità avviso

Priorità dell'avviso generato per il monitoraggio.

Alto

Gravità avviso

Priorità dell'avviso generato per il monitoraggio.

Critica

Risoluzione automatica avviso

Specifica se l'avviso deve essere risolto automaticamente quando il monitoraggio torna in uno stato integro.

Vero

Abilitato

Specifica se il monitoraggio deve essere eseguito.

Vero

Genera avviso

Specifica se il monitoraggio deve generare un avviso quando passa da uno stato di avviso a uno stato critico.

Vero

Intervallo

Numero di secondi tra le esecuzioni del monitoraggio.

300

Element properties:

TargetMicrosoft.SystemCenter.SPF.SpfServer
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.ServiceProviderFoundation.PowerShellModule.TwoStateMonitorType.PropertyBag
RemotableTrue
AccessibilityInternal
Alert Message
AlertIfCantConnectToSpfDatabase
Connessione al server SPF non riuscita.
RunAsMicrosoft.SystemCenter.SPF.DatabaseAccount

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.SPF.Monitor.SpfDatabaseScriptMonitor" Accessibility="Internal" Enabled="true" Target="Microsoft.SystemCenter.SPF.SpfServer" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SystemCenter.ServiceProviderFoundation.PowerShellModule.TwoStateMonitorType.PropertyBag" ConfirmDelivery="false" RunAs="Microsoft.SystemCenter.SPF.DatabaseAccount">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.SPF.Monitor.SpfDatabaseScriptMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<ScriptName>HealthOfSqlServer.ps1</ScriptName>
<ScriptBody><Script>$oAPI = new-object -comObject "MOM.ScriptAPI"
$propertyBag = $oAPI.CreatePropertyBag()

$errorActionSetting = $ErrorActionPreference
try
{
$ErrorActionPreference = "Stop"
Import-Module "$env:COMMONPROGRAMFILES\Microsoft System Center 2012 R2\Service Provider Foundation\Microsoft.SystemCenter.Foundation.Cmdlet.dll"
$stamps = Get-SCSPFStamp
$propertyBag.AddValue("Result", "Success")
}
catch
{
$propertyBag.AddValue("Result", "Error")
}
finally
{
$ErrorActionPreference = $errorActionSetting
$propertyBag
}
</Script></ScriptBody>
<TimeoutSeconds>300</TimeoutSeconds>
<ErrorExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Result']</XPathQuery>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Value Type="String">Success</Value>
</ValueExpression>
</SimpleExpression>
</ErrorExpression>
<SuccessExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Result']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Success</Value>
</ValueExpression>
</SimpleExpression>
</SuccessExpression>
</Configuration>
</UnitMonitor>