ServiceNow ODBC driver fails to connect or retrieve schema when JDK dependencies are missing or misconfiguredIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } When connecting to ServiceNow using the Open Database Connectivity (ODBC) driver, you may be unable to execute queries or retrieve a database schema. This can occur even when the ODBC user account is correctly configured and the connection test appears to succeed. Symptoms<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Query execution fails after a successful authentication test via the ODBC driverThe following schema error is returned: [SN][ODBC ServiceNow driver][OpenAccess SDK SQL Engine]Cannot create schema. Cannot retrieve a DB schema. Please run <instance>?SCHEMA in your browser and try again. Also make sure that the table descriptor cache can hold all your tables and DB views. You can check the table descriptor stats running <instance>/xmlstats.do in your browser.[1050] Interactive SQL (ISQL) connection fails with: [SN][ODBC ServiceNow driver][OpenAccess SDK SQL Engine]Cannot connect to the instance. [dataSource=<dataSource-ID>] [user=<username>]java.lang.IllegalArgumentException: Invalid uri '<instance-url>': escaped absolute path not valid The ODBC driver is unable to write to its log file: java.io.FileNotFoundException: C:\ProgramData\ServiceNow\odbc\logging\odbc.log (Access is denied) Connection via a third-party reporting tool (such as Power BI) fails using the same ODBC driver configurationISQL connectivity is intermittent — succeeds on some attempts and fails on others without configuration changesThe ODBC driver connection test reports success even when credentials are incorrect Facts<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } ODBC driver version: 1.0.15ServiceNow instance running Yokohama (patch 7)64-bit ODBC driver installationODBC user account configured with the odbc_user roleMulti-factor authentication (MFA) disabled for the ODBC integration userIssue observed when connecting from Power BI and from the ISQL command-line toolWindows OS; log file path: C:\ProgramData\ServiceNow\odbc\logging\Custom Data Source Name (DSN) properties configured manually Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } All currently supported releases. Cause<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } This article covers three distinct configuration issues that can each prevent the ODBC driver from connecting or retrieving a schema. They may occur in combination. 1. Missing or incorrect JDK dependency The ServiceNow ODBC driver requires a Java Development Kit (JDK) installation to function correctly. Specifically, the driver must reference the jvm.dll file from a JDK installation rather than a Java Runtime Environment (JRE). When the JDK is absent or when required JAR files have not been added to the classpath via the Dependency Store application, the driver fails to initialize properly, resulting in connection failures and schema retrieval errors. 2. Trailing whitespace or incorrect separator in the custom DSN URL property When the instance URL in the custom DSN properties is entered with a trailing space or uses an incorrect separator character (: instead of =), the driver constructs a malformed URI. This causes an IllegalArgumentException at connection time. The correct format is: url=https://<instance-name>.service-now.com/ The incorrect format that triggers the error is: url:https://<instance-name>.service-now.com/ or a URL with a trailing space before the path separator. 3. Insufficient write permissions on the ODBC log directory The ODBC driver attempts to write log output to C:\ProgramData\ServiceNow\odbc\logging\odbc.log. If the account running the driver does not have write permission to this directory, the log file cannot be created, which causes the driver initialization to fail with an Access is denied error. Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Work through each section below in order. If a section does not apply to your environment, proceed to the next. Section A: Install JDK dependencies and configure the classpath Download and install a Java Development Kit (JDK) on the machine where the ODBC driver is installed. The driver requires the jvm.dll file from a JDK installation. A Java Runtime Environment (JRE) alone is not sufficient. Refer to Step 8 of the official installation guide for the specific note on this requirement.Open the Dependency Store application in your ServiceNow instance by navigating to the filter navigator and searching for Dependency Store.Follow the instructions in the Dependency Store to add the required JAR files to the driver's classpath. This step is described in Step 12 of the official installation guide. The classpath must include all JAR files listed there before the driver can initialize correctly.Restart any reporting tool or application (such as Power BI) that connects through the ODBC driver, then test the connection again.Dependency files download link - https://www.servicenow.com/docs/r/api-reference/web-services/t_DownloadAndInstallTheODBCDriver.html Section B: Correct the custom DSN URL property Open ODBC Data Source Administrator on your Windows machine. You can find this by searching for "ODBC" in the Windows Start menu. Select the 64-bit version if you are running a 64-bit driver.Locate your ServiceNow data source name (DSN) in the list and click Configure.Navigate to the Custom Properties section of the DSN configuration.Verify that the instance URL property uses an equals sign (=) as the separator and contains no trailing spaces. The correct format is: url=https://<instance-name>.service-now.com/ Correct the value if it uses a colon (:) instead of an equals sign (=), or if there is a space before or after the URL. Click OK to save the DSN configuration.Test the connection using the ISQL command-line tool by running the CONNECT command and the SQL statement as two separate steps: Step 1 — Connect: connect "<username>"*"<password>"@Servicenow; Step 2 — Run a test query after a successful connection: SELECT number FROM incident; *Do not combine the CONNECT command and the SQL statement on a single line. Run CONNECT first and wait for a successful connection response before executing a query.* Section C: Grant write permissions to the ODBC log directory Open File Explorer and navigate to C:\ProgramData\ServiceNow\odbc\logging\. The ProgramData folder is hidden by default. To display it, click View in File Explorer, then check Hidden items.Right-click the logging folder and click Properties.Click the Security tab, then click Edit.Select the user account or group that runs the ODBC driver or the reporting tool, and grant it Write and Modify permissions.Click OK to apply the permissions, then test the connection again. Section D: Resolve the "Cannot create schema" error If the schema retrieval error persists after completing Sections A–C, the table descriptor cache on the instance may be insufficient to hold all tables and database views. In your ServiceNow instance, navigate to the filter navigator and enter sys_properties.list.Search for the property glide.cache.size.syscache_tabledescriptor. This property does not exist by default and must be created if it is not present in the list. If the property does not exist, click New to create it with the following values: Name: glide.cache.size.syscache_tabledescriptorType: IntegerValue: A number greater than the total count of tables plus database views on your instance. To determine the current count, navigate to https://<instance-name>.service-now.com/xmlstats.do in a browser and review the table descriptor statistics. Set the value to exceed this count. A value of 20000 or higher is appropriate for most instances, but verify against your actual table and view count. Click Submit to save the property.Test the ODBC connection again. Section E: Additional checks Verify that multi-factor authentication (MFA) is disabled for the ODBC integration user account. In your instance, navigate to the user record via the filter navigator (sys_user.list), locate the integration user, and confirm the MFA setting is off.Confirm the ODBC integration user is assigned the odbc_user role and is marked as an integration user on the user record. For instructions on marking a service account as an integration user, see Mark service accounts as internal integration users in the ServiceNow product documentation. Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Related Links Download and install the ODBC driverCreate an ODBC userTest a query using the ODBC driverUse Interactive SQL with ODBCMark service accounts as internal integration usersResolving ODBC driver schema, table, or column not found errors — KB0595630ODBC driver not working for long passwords or with special characters — KB0955891Download and install the ODBC driver — KB2355162