Database Management
Errors in DPA 2021.3 and later on connections to SQL server with domain accounts
This article describes workarounds to errors in DPA 2021.3 and later on screens for connections to SQL servers with domain accounts. These errors can occur when you are creating the repository database, registering a SQL Server database instance for monitoring, or updating connections to a SQL Server monitored instance.
First published date
Last published date
Overview
In DPA 2021.3 and later, errors can occur when users are attempting the following tasks:
- When you attempt to create a repository database on a SQL Server instance, the Repository Creation Wizard might display errors if you are using a domain account.
- You might see errors when you attempt to register a SQL Server instance for monitoring using a domain account.
- Errors can also occur when you are updating a domain account in Options -> Monitor setup section -> Update connection.
What errors are shown and when they occur can vary based on environmental factors. This article describes the errors and lists possible workarounds to try and next steps if they do not work.
Product section
Cause
The main issue seems to be that the default driver for connections from DPA was changed in DPA 2021.3, and not all properties that are required for the new driver are set in the connection string by default.
Another issue is an error for TLS_HANDSHAKE on some older, unpatched SQL servers on all of the same screens mentioned. TLS 1.0 and 1.1 are disabled in the JDK (since v11.0.11) shipped with DPA 2021.3 and later. Some SQL servers that are not patched for TLS may display errors in any of the screens. See the TLS section below.
Examples of errors and steps to reproduce
Unable to register a SQL Server database instance as a repository with a domain user
- Open the Repository Creation Wizard.
- Choose Microsoft SQL Server.
- In step 2, choose Windows authentication and set a domain user with a correct password.
- Click the Next button.
- Examples of the errors on the screen and exceptions from the Wizard.log file are shown below.
DEBUG (2021-10-01T11:21:50,407-0500) [https-jsse-nio-8124-exec RepositoryCreationServiceImpl:682 - Connection to database failed [exception=com.confio.ignite.common.jdbc.exceptions.DatabaseConnectionException: A connection to the database could not be established: Invalid user and/or password [cause=org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'example_user' ClientConnectionId:0e42f56b-ad06-4c17-a197-1925aa20a11a]]
Example error 2:
Exception thrown executing [AnnotatedAction@103ab220 targetAction = [RepointMonDbAction@7886fa5f formObjectName = 'idcFormData', formObjectClass = RepointMonDbData, formObjectScope = FLOW], attributes = map['method' -> 'validateConnectionInfo']] in state 'validateConnectionInfo' of flow 'repoint-mondb-flow' – action execution attributes were 'map[[empty]]'
Unable to register a SQL Server database instance with a domain user
- Open the SQL Server registration wizard and choose "DPA will create/configure the monitoring user."
- In step 2, choose SQL Server authentication and set SYSADMIN credentials.
- In step 3 (setting up a Monitoring User) choose Windows authentication and set a domain user with a correct password.
- Errors similar to the examples above are displayed.
Unable to update a domain user and Password for a monitored SQL Server database instance
- Open the update wizard for a monitored SQL Server database instance registered with the jTDS driver.
- Set a domain user for the new Monitoring User with the correct password.
- Click the Next button.
- An error similar to one of the examples above is displayed.
-- This also may be caused by Named Instances and static ports due to the Browser Service
1. In Update Connection Wizard - Click the ServerName or IP
2. Remove Named Instance piece in ServerName
3. Update your Monitoring un/pw
4. This allows the Wizard to pass this Target updates through
Errors for TLS_HANDSHAKE
The following errors can occur when you are creating the repository, registering a SQL Server instance for monitoring, or updating a connection for an existing monitored instance.
INFO (2021-10-06T12:14:42,146-0400) [http-nio-8123-exec-1] WizardFormAction:272 - TLS_HANDSHAKE_FAILED: The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12] com.solarwinds.common.network.error.NetworkingException: TLS_HANDSHAKE_FAILED: The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]
Resolution
The following sections provide possible workarounds for these issues.
Unable to register a SQL Server database instance as a repository with a domain user: Workarounds
There are three possible workaround options. The first option is the simplest and has worked on a number of servers.
Option 1: Add connection properties
- On the screen with the error, click "Advanced connection properties".
- Enter the following string in JDBC URL Properties box:
authenticationScheme=NTLM;integratedSecurity=true - Click OK.
Option 2: Switch to the jTDS driver
- Open the system.properties file in a text editor. This file is in the following location:
<DPA-install-dir>\iwc\tomcat\ignite_config\idc\system.properties- To find the DPA installation directory on a Windows server, look for the service called "Ignite PI Server" in Windows services. Right-click it and select Properties. The "path to executable" will show the path to tomcat\bin directory, and you can navigate from there.
- To find the path on a Linux server, run the following command:
ps -ef | grep dpa
- Look for the com.confio.ignite.jdbc.sqlserver.useJtdsDriver property (it might not be there for new installations).
- If the property is there, change the value to true.
- If the property is not there, add the following line:com.confio.ignite.jdbc.sqlserver.useJtdsDriver=true
# Use jTDS jdbc driver when connection to SQL Server repository # If set to false Microsoft driver will be used instead com.confio.ignite.jdbc.sqlserver.useJtdsDriver=true
- Stop and restart DPA. On a Windows server, stop and restart the Ignite PI Server service. On a Linux server, run the ./shutdown.sh and ./startup.sh commands.
Option 3: Use a SQL authentication account
Use a SQL authentication account instead of a domain account to connect to the instance.
Unable to register a SQL Server database instance with a domain user: Workarounds
For DPA 2023.1 and earlier, use Option 1 or Option 3 in the previous section on repository registration errors.
For DPA 2023.2 and later, use any of the options (1, 2, or 3) in the previous section.
Note: Option 2 (switching to the jTDS driver) works on all versions when you are registering the repository database. But when you are registering a database instance for monitoring, this option works on DPA 2023.2 and later.
Unable to update a domain user for a monitored SQL Server database instance: Workarounds
Option 1: Add connection properties
In the Updated DB Instance Connection Wizard, select JDBC URL Properties and enter the following in the text box:
integratedSecurity=true
Option 2: Switch to the jTDS driver
In the Updated DB Instance Connection Wizard, select the Microsoft JDBC Driver option. Note: This box is present only for instances that were registered in a previous DPA release.
Errors for TLS_HANDSHAKE: Workarounds
Option 1: Update the SQL Server instance to support TLS 1.2
Patch SQL Server to a newer Service Release or Cumulative Update that contains support for TLS 1.2 or later. Microsoft documentation stating the patch levels required per SQL Server version to support TLS 1.2 Microsoft patches can be found here.
Option 2: Re-enable support for less secure TLS versions in DPA (not recommended)
If you cannot update the SQL Server instance, you can continue to use TLS 1.0. This workaround is not recommended because it reduces security. If you are willing to accept the risk, complete the following steps: