Citrix Virtual Apps and Desktops SDK

Test-ProvDBConnection

Tests whether a database is suitable for use by the Citrix Machine Creation Service.

Syntax


Test-ProvDBConnection [-DBConnection] <String> [-LoggingId <Guid>] [-BearerToken <String>] [-TraceParent <String>] [-TraceState <String>] [-VirtualSiteId <String>] [-AdminAddress <String>] [<CommonParameters>]

<!--NeedCopy-->

Detailed Description

Tests whether the database specified in the given connection string is suitable for use by the currently selected Citrix Machine Creation Service instance.

The service attempts to contact the specified database and returns a status indicating whether the database is both contactable and usable. The test does not impact any currently established connection from the service instance to another database in any way. The tested connection string is not saved.

Only Windows authentication within the connection string is supported; a connection string containing SQL authentication credentials is always rejected as invalid.

The current service instance is that on the local machine, or that explicitly specified by the last usage of the -AdminAddress parameter to a Machine Creation SDK cmdlet.

Parameters

Name Description Required? Pipeline Input Default Value
DBConnection Specifies the database connection string to be tested by the currently selected Citrix Machine Creation Service instance. true false  
LoggingId Specifies the identifier of the high-level operation this cmdlet call forms a part of. Citrix Studio and Director typically create high-level operations. PowerShell scripts can also wrap a series of cmdlet calls in a high-level operation by way of the Start-LogHighLevelOperation and Stop-LogHighLevelOperation cmdlets. false false  
BearerToken Specifies the bearer token assigned to the calling user false false  
TraceParent Specifies the trace parent assigned for internal diagnostic tracing use false false  
TraceState Specifies the trace state assigned for internal diagnostic tracing user false false  
VirtualSiteId Specifies the virtual site the PowerShell snap-in will connect to. false false  
AdminAddress The address of a Citrix Virtual Apps and Desktops controller the PowerShell snap-in will connect to. You can provide this as a host name or an IP address. false false Localhost. Once a value is provided by any cmdlet, this value becomes the default.

Input Type

Return Values

Citrix.Fma.Sdk.Utilities.Service.Servicestatusinfo

The Test-ProvDBConnection cmdlet returns an object of type ServiceStatusInfo describing the changes to the system that would result from adopting the specified connection string with the Set-ProvDBConnection cmdlet. The actual state of the system is not changed.

  • ServiceStatus &lt;string&gt; The status of the Machine Creation Service instance that adopted the connection string. Possible ServiceStatus values are:

    • OK: The Machine Creation Service instance is configured with a valid database and service schema. The service is operational.
    • DBUnconfigured: No database connection string is set for the Machine Creation Service instance.
    • DBRejectedConnection: The database rejected the logon attempt from the Machine Creation Service. This may be because the service attempted to log on with invalid credentials or because a database has not been installed in the specified location.
    • InvalidDBConfigured: The specified database does not exist, is not visible to the Machine Creation Service instance, or the service’s schema within the database is invalid.
    • DBNotFound: The specified database could not be located with the configured connection string.
    • DBNewerVersionThanService: The version of the Machine Creation Service currently in use is newer than, and incompatible with, the version of the Machine Creation Service schema on the database. Upgrade the Machine Creation Service to a more recent version.
    • DBOlderVersionThanService: The version of the Machine Creation Service schema on the database is newer than, and incompatible with, the version of the Machine Creation Service currently in use. Upgrade the database schema to a more recent version.
    • DBVersionChangeInProgress: A database schema upgrade is in progress.
    • PendingFailure: Connectivity between the Machine Creation Service instance and the database has been lost. This may be a transitory network error, but may indicate a loss of connectivity that requires administrator intervention.
    • Failed: Connectivity between the Machine Creation Service instance and the database has been lost for an extended period of time, or has failed due to a configuration problem. The service instance cannot operate while its connection to the database is unavailable.
    • Unknown: The status of the Machine Creation Service cannot be determined.
  • ExtraInfo &lt;System.Collections.Generic.Dictionary[string, string]&gt; Dictionary providing extra diagnostics information for the database identified by the connection string. It contains at least the following keys, and their associated string values: _ Server.Version: Database server version number. _ Server.IsClustered: “True” if the database server is clustered; “False” otherwise. _ Database.Status: Status of the database. When operating normally, the value is “Normal”. _ Database.RecoveryModel: Recovery model of the database (e.g. “Simple”). _ Database.LastBackupDate: Date of the last backup of this database. _ Database.IsReadCommittedSnapshotOn: “True” if the READ*COMMITTED_SNAPSHOT database option is enabled; “False” otherwise.

    • Database.Collation: Collation order of the database (e.g. “Latin1*General_100_CI_AS_KS”).
    • Database.IsMirroringEnabled: “True” if the database is mirrored; “False” otherwise. * Database.AvailabilityGroupName: The name of the availability group of which this database is a member. Beware that the corresponding values are always strings. Therefore, to test Boolean values, you must use statements like if ($info[“Server.IsClustered”] == “True”) instead of just if ($info[“Server.IsClustered”])

Notes

If the command fails, the following errors can be returned.

  • InvalidDBConnectionString: The database connection string has an invalid format.

  • PermissionDenied: You do not have permission to execute this command.

  • AuthorizationError: There was a problem communicating with the Citrix Delegated Administration Service.

  • ConfigurationLoggingError: The operation could not be performed because of a configuration logging error.

  • CommunicationError: There was a problem communicating with the remote service.

  • ExceptionThrown: An unexpected error occurred.

For more details, see the Windows event logs on the controller or the Citrix Virtual Apps and Desktops logs.

Examples

Example 1


C:\PS>Test-ProvDBConnection "Server=dbserver\SQLEXPRESS;Database=XDDB;Trusted_Connection=True"

ServiceStatus ExtraInfo

------------- ---------

OK            {...}

<!--NeedCopy-->

Description

Tests whether the service instance could use a database called XDDB on an SQL Server Express database running on the machine called dbserver. Integrated Windows authentication is required.

Example 2


c:\PS>Test-ProvDBConnection -DBConnection "Invalid Connection String"

          Invalid database connection string format.

<!--NeedCopy-->

Description

Tests an invalid database connection string for the Machine Creation Service.

Test-ProvDBConnection