USER MANUALS

JDBC Driver Parameters

The table below lists the parameters of the JDBC driver and their default value.

You can indicate these options either as a parameter of the connection URL or as a driver property, except userGSSCredential that has to be passed as a driver property, not a URL parameter.

Parameters of the JDBC driver and their default value

Parameter of the URL

Description

adjustScaleOfDecimalValues

If true, the driver modifies the values of type “decimal” of the “ResultSet” so their “scale” matches the “scale” reported by the metadata of the “ResultSet”. Set this to “true” when connecting from Apache Arrow.

Default value: false.

autoCommit

If true, the invocations to the methods of the JDBC API responsible of managing transactions are ignored. I.e. the driver ignores the invocations to the methods setAutoCommit(...), commit() and rollback().

This is useful to make sure that an application does not start transactions inadvertently.

Even with this parameter set to true, an application can start and finish transactions by executing the statements BEGIN, COMMIT and ROLLBACK.

If the client invokes setAutoCommit(false), after executing a COMMIT, the driver will not start a new transaction until it has to execute another statement.

If the client invokes setAutoCommit(false), take into account the limits on the duration of a transaction:

  • By default, transactions cannot last for more than 30 minutes.

  • Once the execution of a statement finishes, the client has to execute another statement in less than 30 seconds.

See more about the limits on the duration of transaction in the section Transactions in Virtual DataPort of the VQL Guide.

Default value: true.

chunkSize

The results of a query can be divided into blocks (chunks), so the Server does not have to wait for the query to finish, in order to begin sending part of the results to the client.

This parameter establishes the maximum number of results that a block can contain. When the Server obtains enough results to complete a block, it sends this block to the driver and continues processing the next results.

In an application that uses this driver, you can either add this parameter to the connection URL and/or before executing the query, invoke the method setFetchSize of the class Statement. The value set with the setFetchSize method overrides the value set in the URL.

Default value: 1000

chunkTimeout

This parameter establishes the maximum time (in milliseconds) the Server waits before returning a new block to the driver. When this time is exceeded, the Server sends the current block to the driver, even if it does not contain the number of results specified in the chunkSize parameter.

Note: if chunkSize and chunkTimeout are 0, the Server returns all the results in a single block. If both values are different than 0, the Server returns a chunk whenever one of these conditions happen first:

  • The chunk is filled (chunkSize)

  • Or, after a certain time of not sending any chunk to the client (chunkTimeout)

Default value: 90000 milliseconds (90 seconds)

connectTimeout

This parameter establishes the maximum time (in milliseconds) the driver waits for opening a connection. When this time is exceeded, a timeout error is returned.

Note: if connectTimeout is equals or lower than 0, the timeout is disabled and no limit applies.

Default value: 120000 milliseconds (120 seconds)

describeNationalCharTypesAsBasicTypes

If true, the driver reports the field types NCHAR, NVARCHAR, NCLOB and LONGNVARCHAR as CHAR, VARCHAR, CLOB and LONGVARCHAR respectively.

Default value: false

i18n

This parameter establishes the internationalization (i18n) configuration of the connection with the Server.

If not present, the driver assumes the i18n of the database that you are connecting to.

The parameter i18n in the CONTEXT clause of the queries overrides the value of this parameter.

Default value: I18N of the database that you are connecting to

identifiersUppercase

If true, when executing SELECT queries, the names of the fields are returned in uppercase.

Default value: false

infrastructureProvider

This parameter indicates the Infrastructure provider where the JDBC client is located.

Default value: <empty>

infrastructureRegion

This parameter indicates the region of the infrastructure provider where the JDBC client is located.

Default value: <empty>

idleKeepAlive

Indicates if a connection sends a ‘keep alive’ when it is on idle state for the number of seconds specified by ‘keepAlive’ property.

Default value: true

keepAlive

Indicates number of seconds that a connection currently used is discarded if a keep alive response is not received from server.

A value equals or lower than 0 disables this functionality.

Default value: 300

loggerConsole

If true, the driver prints the log messages in the console (see Enabling JDBC Logging).

Default value: false

loggerFile

If not empty, the driver writes the log messages to this file (see Enabling JDBC Logging).

Default value: N/A

loggerLevel

Level used for logging the messages. The level name follows the Java Logging syntax. It is mandatory for enabling the log (see Enabling JDBC Logging).

Values: SEVERE, WARNING, INFO, FINE, FINER, FINEST and OFF.

Default value: N/A

loggerNativeCalls

If true, the driver logs information related to the internal communications.

Default value: false

nativeCompress

If true, then data is compressed at network level.

Default value: false

password

Password used to authenticate against Virtual DataPort. When using this parameter, also provide the value of the parameter user.

Default value: N/A

publishCatalogsAsSchemas

By default, the JDBC driver exposes the databases of Virtual DataPort as catalogs; each catalog is a collection of SQL objects (tables, views, stored procedures, etc.).

If this property is true, the driver exposes each database as a schema; and each schema is a collection of SQL objects.

Some tools expect a database to organize its elements in schemas, not catalogs. In that case, add this parameter to the connection with the value true.

Default value: false

publishViewsAsTables

If false, the metadata published by the JDBC driver describes base views as TABLE elements and the derived and interface views as VIEW elements.

If true, the metadata describes all the views as TABLE elements.

Some third-party tools require the JDBC metadata to publish all the views as tables in order to recognize the associations created between views. For these applications, add this parameter to the URL with the value true.

Default value: false

queryTimeout

Maximum time (in milliseconds) the driver will wait for a query to finish. After this period, it will throw an Exception.

This parameter is optional. If it is not set, the query timeout has the default value (900000 milliseconds). If 0, the driver will wait indefinitely until the query finishes.

This parameter sets the default timeout for all the queries. In addition, you can change the timeout for a single query by adding the parameter ‘QUERYTIMEOUT’ = ‘<value>’ to the CONTEXT clause of the query. See more about this in the section CONTEXT Clause of the VQL Guide.

Default value: 900000 milliseconds (15 minutes)

pingQuery and pingQueryTimeout

Parameters that you may need only when connecting to Virtual DataPort through a load balancer. The section Connecting to Virtual DataPort Through a Load Balancer explains how to use them.

Default value: None

sendSniHeader

If true, and when using SSL connections, Virtual DataPort will add the Server Name Indication (SNI) header setting as server_name value the one used for opening the connection.

Default value: false

ssl

By default, the driver tries to establish a non-SSL connection with the Server. If SSL is enabled on the Server, the connection fails and immediately, the driver tries to establish an SSL connection.

If true, the driver only establishes SSL connections. If SSL is disabled on the Server, the connection will fail. This is the recommended value when the Server uses SSL.

If false, the driver only establishes non-SSL connections, it does not try to establish SSL connections. If SSL is enabled on the Server, the connection will fail.

Default value: None

sslTrustServerCertificate

If true, the driver will not validate the SSL certificate presented by the Virtual DataPort you are connecting to.

This parameter makes it easier to use a self-signed certificate or a certificate signed by a CA that your organization uses internally. However, consider that not validating the certificates can be considered a security risk.

If false, the driver will validate the SSL certificate presented by Virtual DataPort.

The driver only takes this property into account when the property ssl is true.

Default value: false

sslTrustStoreLocation and sslTrustStorePassword

sslTrustStoreLocation: path to a Java trust store file that contains the SSL certificates that the driver will trust in.

sslTrustStorePassword: password of this trust store. This parameter is optional. If provided, the driver uses this password to validate the integrity of this trust store. This is to prevent unauthorized users from adding certificates to this trust store.

If sslTrustStoreLocation is not set, the driver uses the trust store (i.e. the “cacerts” file) of the Java Virtual Machine that launches the application that uses this driver.

The driver only takes these properties into account when the property ssl is true.

Default values: None

user

User name used to authenticate against Virtual DataPort. When using this parameter, also provide the value of the parameter password.

Default value: N/A

userAgent

Sets the user agent of the connection. The section Setting the User Agent of an Application of the Administration Guide explains why we recommend setting this parameter.

Default value: <empty>

userGSSCredential

Java object of the class org.ietf.jgss.GSSCredential.

Use this driver property to pass a Kerberos credential, which the driver will use to connect to Denodo.

userGSSCredential has to be a driver property, it cannot be passed as a parameter of the URL.

See more about this property in the section Connecting to Virtual DataPort Using Kerberos Authentication.

Default value: none.

wanOptimized

If true, the driver enables several features that reduce the latency in the communications between the client application and Virtual DataPort server.

Default value: false

The properties related to OAuth authentication are explained in the page Connecting to Virtual DataPort Using OAuth Authentication.

Autocommit Property

By default, the connections opened by the Denodo JDBC driver have the property “autocommit” set to true. This is the recommended value and its effect is that the queries are not performed inside a transaction.

Do not change this property to false unless you need the statements to be executed inside the same transaction. The reason is that Virtual DataPort uses a distributed transaction manager, which uses a 2-phase commit protocol. This protocol introduces some overhead over the queries. Therefore, if you set this property to false without needing it, your queries will run unnecessarily slower.


Connecting to Virtual DataPort with SSL/TLS

If SSL is enabled in Virtual DataPort and the SSL certificate it uses was not signed by a public Certification Authority (CA), the connection will fail unless the client application is configured to trust in the Certification Authority that signed the key. To trust on this authority, you need to import the certificate of this authority into the cacerts file of the Java Runtime Environment (JRE) that this client application uses.

Add feedback