

 Amazon Redshift will no longer support the creation of new Python UDFs starting Patch 198. Existing Python UDFs will continue to function until June 30, 2026. For more information, see the [ blog post ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Configuring a connection for JDBC driver version 2.x for Amazon Redshift
<a name="jdbc20-install"></a>

You can use a JDBC driver version 2.x connection to connect to your Amazon Redshift cluster from many third-party SQL client tools. The Amazon Redshift JDBC connector provides an open source solution. You can browse the source code, request enhancements, report issues, and provide contributions. 

For the latest information about JDBC driver changes, see the [change log](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/CHANGELOG.md).

By default, the Amazon Redshift JDBC driver is configured to use TCP keepalives to prevent connections from timing out. You can specify when the driver starts sending keepalive packets or turn off the feature by setting the relevant properties in the connection URL. For more information about the syntax of the connection URL, see [Building the connection URL](jdbc20-build-connection-url.md).


| Property | Description | 
| --- | --- | 
|  `TCPKeepAlive`  |  To turn off TCP keepalives, set this property to `FALSE`.  | 

**Topics**
+ [Download the Amazon Redshift JDBC driver, version 2.1](jdbc20-download-driver.md)
+ [Installing the Amazon Redshift JDBC driver, version 2.2](jdbc20-install-driver.md)
+ [Getting the JDBC URL](jdbc20-obtain-url.md)
+ [Building the connection URL](jdbc20-build-connection-url.md)
+ [Configuring a JDBC connection with Apache Maven](configure-jdbc20-connection-with-maven.md)
+ [Configuring authentication and SSL](jdbc20-configure-authentication-ssl.md)
+ [Configuring logging](jdbc20-configuring-logging.md)
+ [Data type conversions](jdbc20-data-type-mapping.md)
+ [Using prepared statement support](jdbc20-prepared-statement-support.md)
+ [Differences between the 2.2 and 1.x versions of the JDBC driver](jdbc20-jdbc10-driver-differences.md)
+ [Creating initialization (.ini) files for JDBC driver version 2.x](jdbc20-ini-file.md)
+ [Options for JDBC driver version 2.x configuration](jdbc20-configuration-options.md)
+ [Previous versions of JDBC driver version 2.x](jdbc20-previous-driver-version-20.md)

# Download the Amazon Redshift JDBC driver, version 2.1
<a name="jdbc20-download-driver"></a>

**Note**  
The Amazon Redshift JDBC 2.x driver isn't designed to be thread-safe. Two or more threads concurrently attempting to use the same connection can lead to deadlocks, errors, incorrect results, or other unexpected behaviors.  
If you do have a multi-threaded application, we recommend that you synchronize access to the driver to avoid concurrent access.

Amazon Redshift offers drivers for tools that are compatible with the JDBC 4.2 API. The class name for this driver is `com.amazon.redshift.Driver`.

For detailed information about how to install the JDBC driver, reference the JDBC driver libraries, and register the driver class, see the following topics. 

For each computer where you use the Amazon Redshift JDBC driver version 2.x, make sure that the Java Runtime Environment (JRE) 8.0 is installed. 

If you use the Amazon Redshift JDBC driver for database authentication, make sure that you have AWS SDK for Java 1.11.118 or later in your Java class path. If you don't have AWS SDK for Java installed, download the ZIP file with JDBC 4.2–compatible driver and driver dependent libraries for the AWS SDK:
+ [JDBC 4.2–compatible driver version 2.x and AWS SDK driver–dependent libraries](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.5/redshift-jdbc42-2.2.5.zip) 

  This ZIP file contains the JDBC 4.2–compatible driver version 2.x and AWS SDK for Java 1.x driver–dependent library files. Unzip the dependent jar files to the same location as the JDBC driver. Only the JDBC driver needs to be in CLASSPATH.

  This ZIP file doesn't include the complete AWS SDK for Java 1.x. However, it includes the AWS SDK for Java 1.x driver–dependent libraries that are required for AWS Identity and Access Management (IAM) database authentication.

  Use this Amazon Redshift JDBC driver with the AWS SDK that is required for IAM database authentication.

  To install the complete AWS SDK for Java 1.x, see [AWS SDK for Java 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/welcome.html) in the *AWS SDK for Java Developer Guide*. 
+ [JDBC 4.2–compatible driver version 2.x (without the AWS SDK)](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.5/redshift-jdbc42-2.2.5.jar) 

Review the JDBC driver version 2.x software license and change log file: 
+ [JDBC driver version 2.x license](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/LICENSE) 
+ [JDBC driver version 2.x change log](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/CHANGELOG.md)

JDBC drivers version 1.2.27.1051 and later support Amazon Redshift stored procedures. For more information, see [Creating stored procedures in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/stored-procedure-overview.html) in the *Amazon Redshift Database Developer Guide*. 

# Installing the Amazon Redshift JDBC driver, version 2.2
<a name="jdbc20-install-driver"></a>

To install the Amazon Redshift JDBC 4.2–compatible driver version 2.x and driver–dependent libraries for AWS SDK, extract the files from the ZIP archive to the directory of your choice. 

To install the Amazon Redshift JDBC 4.2–compatible driver version 2.x (without the AWS SDK), copy the JAR file to the directory of your choice.

To access an Amazon Redshift data store using the Amazon Redshift JDBC driver, you need to perform configuration as described following.

**Topics**
+ [Referencing the JDBC driver libraries](jdbc20-driver-libraries.md)
+ [Registering the driver class](jdbc20-register-driver-class.md)

# Referencing the JDBC driver libraries
<a name="jdbc20-driver-libraries"></a>

The JDBC application or Java code that you use to connect to your data must access the driver JAR files. In the application or code, specify all the JAR files that you extracted from the ZIP archive. 

## Using the driver in a JDBC application
<a name="jdbc20-use-driver-jdbc-app"></a>

JDBC applications usually provide a set of configuration options for adding a list of driver library files. Use the provided options to include all the JAR files from the ZIP archive as part of the driver configuration in the application. For more information, see the documentation for your JDBC application. 

## Using the driver in Java code
<a name="jdbc20-use-driver-java-code"></a>

You must include all the driver library files in the class path. This is the path that the Java Runtime Environment searches for classes and other resource files. For more information, see the appropriate Java SE documentation to set the class path for your operating system. 
+ Windows: [https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html](https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html)
+ Linux and Solaris: [https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/classpath.html](https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/classpath.html)
+ macOS: The default macOS class path is the directory in which the JDBC driver is installed.

# Registering the driver class
<a name="jdbc20-register-driver-class"></a>

Make sure that you register the appropriate class for your application. You use following classes to connect the Amazon Redshift JDBC driver to Amazon Redshift data stores:
+ `Driver` classes extend `java.sql.Driver`.
+ `DataSource` classes extend `javax.sql.DataSource` and `javax.sql.ConnectionPoolDataSource`.

The driver supports the following fully qualified class names that are independent of the JDBC version:
+ `com.amazon.redshift.jdbc.Driver`
+ `com.amazon.redshift.jdbc.DataSource`

The following example shows how to use the DriverManager class to establish a connection for JDBC 4.2.

```
            private static Connection connectViaDM() throws Exception
{
Connection connection = null;
connection = DriverManager.getConnection(CONNECTION_URL);
return connection;
}
```

The following example shows how to use the `DataSource` class to establish a connection.

```
 private static Connection connectViaDS() throws Exception
{
Connection connection = null;
11
Amazon Redshift JDBC Driver Installation and Configuration Guide
DataSource ds = new com.amazon.redshift.jdbc.DataSource
();
ds.setURL(CONNECTION_URL);
connection = ds.getConnection();
return connection;
}
```

# Getting the JDBC URL
<a name="jdbc20-obtain-url"></a>

Before you can connect to your Amazon Redshift cluster from a SQL client tool, you need to know the JDBC URL of your cluster. The JDBC URL has the following format: `jdbc:redshift://endpoint:port/database`.

The fields of the preceding format have the following values.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-obtain-url.html)

The following is an example JDBC URL: `jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev` 

If your URL values contain any of the following URI reserved characters, the values must be URL encoded:
+  ; 
+  \$1 
+  \$1 
+  \$1 
+  [ 
+  ] 
+  & 
+  = 
+  ? 
+  an empty space 

For example, if your `PWD` value is `password:password`, a connection URL using that value would look something like the following:

`jdbc:redshift://redshift.company.us-west-1.redshift.amazonaws.com:9000/dev;UID=amazon;PWD=password%3Apassword`

For information about how to get your JDBC connection, see [Finding your cluster connection string](connecting-connection-string.md). 

If the client computer fails to connect to the database, you can troubleshoot possible issues. For more information, see [Troubleshooting connection issues in Amazon Redshift](troubleshooting-connections.md). 

# Building the connection URL
<a name="jdbc20-build-connection-url"></a>

Use the connection URL to supply connection information to the data store that you are accessing. The following is the format of the connection URL for the Amazon Redshift JDBC driver version 2.x. Here, [Host] the endpoint of the Amazon Redshift server and [Port] is the number of the Transmission Control Protocol (TCP) port that the server uses to listen for client requests.

```
jdbc:redshift://[Host]:[Port]
```

The following is the format of a connection URL that specifies some optional settings.

```
jdbc:redshift://[Host]:[Port]/[database];[Property1]=[Value];
[Property2]=[Value];
```

If your URL values contain any of the following URI reserved characters, the values must be URL encoded:
+  ; 
+  \$1 
+  \$1 
+  \$1 
+  [ 
+  ] 
+  & 
+  = 
+  ? 
+  an empty space 

For example, if your `PWD` value is `password:password`, a connection URL using that value would look something like the following:

`jdbc:redshift://redshift.company.us-west-1.redshift.amazonaws.com:9000/dev;UID=amazon;PWD=password%3Apassword`

For example, suppose that you want to connect to port 9000 on an Amazon Redshift cluster in the US West (N. California) Region on AWS. You also want to access the database named `dev` and authenticate the connection using a database username and password. In this case, you use the following connection URL.

```
jdbc:redshift://redshift.company.us-west-1.redshift.amazonaws.com:9000/dev;UID=amazon;PWD=amazon
```

You can use the following characters to separate the configuration options from the rest of the URL string:
+ ;
+ ?

For example, the following URL strings are equivalent:

```
jdbc:redshift://my_host:5439/dev;ssl=true;defaultRowFetchSize=100
```

```
jdbc:redshift://my_host:5439/dev?ssl=true;defaultRowFetchSize=100
```

You can use the following characters to separate configuration options from each other in the URL string:
+ ;
+ &

For example, the following URL strings are equivalent:

```
jdbc:redshift://my_host:5439/dev;ssl=true;defaultRowFetchSize=100
```

```
jdbc:redshift://my_host:5439/dev;ssl=true&defaultRowFetchSize=100
```

The following URL example specifies a log level of 6 and the path for the logs.

```
jdbc:redshift://redshift.amazonaws.com:5439/dev;DSILogLevel=6;LogPath=/home/user/logs;
```

Don't duplicate properties in the connection URL.

For a complete list of the configuration options that you can specify, see [Options for JDBC driver version 2.x configuration](jdbc20-configuration-options.md). 

**Note**  
When you connect, don't use the IP address of a cluster node or the IP address of the VPC endpoint. Always use the Redshift endpoint to avoid an unnecessary outage. The only exception to using the endpoint URL is when you use a custom domain name. For more information, see [Using a custom domain name for client connections](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-connection-CNAME.html).

# Configuring a JDBC connection with Apache Maven
<a name="configure-jdbc20-connection-with-maven"></a>

Apache Maven is a software project management and comprehension tool. The AWS SDK for Java supports Apache Maven projects. For more information, see [Using the SDK with Apache Maven](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-project-maven.html) in the *AWS SDK for Java Developer Guide.* 

If you use Apache Maven, you can configure and build your projects to use an Amazon Redshift JDBC driver to connect to your Amazon Redshift cluster. To do this, add the JDBC driver as a dependency in your project's `pom.xml` file. If you use Maven to build your project and want to use a JDBC connection, take the steps in the following section. 

**To configure the JDBC driver as a Maven dependency**

1. Add either the Amazon repository or the Maven Central repository to the repositories section of your `pom.xml` file.
**Note**  
The URL in the following code example returns an error if used in a browser. Use this URL only in the context of a Maven project.

   To connect using Secure Sockets Layer (SSL), add the following repository to your `pom.xml` file.

   ```
   <repositories>
       <repository>
         <id>redshift</id>
         <url>https://s3.amazonaws.com/redshift-maven-repository/release</url>
       </repository>
   </repositories>
   ```

   For a Maven Central repository, add the following to your `pom.xml` file.

   ```
   <repositories>
       <repository>
         <id>redshift</id>
         <url>https://repo1.maven.org/maven2</url>
       </repository>
   </repositories>
   ```

1. Declare the version of the driver that you want to use in the dependencies section of your `pom.xml` file.

   Amazon Redshift offers drivers for tools that are compatible with the JDBC 4.2 API. For information about the functionality supported by these drivers, see [Download the Amazon Redshift JDBC driver, version 2.1](jdbc20-download-driver.md). 

   Replace `driver-version` in the following example with your driver version, for example `2.1.0.1`. For a JDBC 4.2–compatible driver, use the following. 

   ```
   <dependency>
      <groupId>com.amazon.redshift</groupId>
      <artifactId>redshift-jdbc42</artifactId>
      <version>driver-version</version>
   </dependency>
   ```

   The class name for this driver is `com.amazon.redshift.Driver`.

The Amazon Redshift Maven drivers need the following optional dependencies when you use IAM database authentication. 

```
<dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-core</artifactId>
      <version>1.12.23</version>
      <scope>runtime</scope>
      <optional>true</optional>
</dependency>
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-redshift</artifactId>
      <version>1.12.23</version>
      <scope>runtime</scope>
      <optional>true</optional>
</dependency>
<dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-sts</artifactId>
      <version>1.12.23</version>
      <scope>runtime</scope>
      <optional>true</optional>
</dependency>
```

To upgrade or change the Amazon Redshift JDBC driver to the latest version, first modify the version section of the dependency to the latest version of the driver. Then clean your project with the Maven Clean Plugin, as shown following. 

```
mvn clean
```

# Configuring authentication and SSL
<a name="jdbc20-configure-authentication-ssl"></a>

To protect data from unauthorized access, Amazon Redshift data stores require all connections to be authenticated using user credentials. Some data stores also require connections to be made over the Secure Sockets Layer (SSL) protocol, either with or without one-way authentication.

The Amazon Redshift JDBC driver version 2.x provides full support for these authentication protocols. 

The SSL version that the driver supports depends on the JVM version that you are using. For information about the SSL versions that are supported by each version of Java, see [Diagnosing TLS, SSL, and HTTPS](https://blogs.oracle.com/java-platform-group/diagnosing-tls,-ssl,-and-https) on the Java Platform Group Product Management Blog. 

The SSL version used for the connection is the highest version that is supported by both the driver and the server, which is determined at connection time.

Configure the Amazon Redshift JDBC driver version 2.x to authenticate your connection according to the security requirements of the Redshift server that you are connecting to. 

You must always provide your Redshift username and password to authenticate the connection. Depending on whether SSL is enabled and required on the server, you might also need to configure the driver to connect through SSL. Or you might use one-way SSL authentication so that the client (the driver itself) verifies the identity of the server. 

You provide the configuration information to the driver in the connection URL. For more information about the syntax of the connection URL, see [Building the connection URL](jdbc20-build-connection-url.md). 

*SSL* indicates TLS/SSL, both Transport Layer Security and Secure Sockets Layer. The driver supports industry-standard versions of TLS/SSL. 

## Configuring IAM authentication
<a name="jdbc20-configure-iam-authentication"></a>

If you are connecting to a Amazon Redshift server using IAM authentication, set the following properties as part of your data source connection string. 

 For more information on IAM authentication, see [Identity and access management in Amazon Redshift](redshift-iam-authentication-access-control.md).

To use IAM authentication, use one of the following connection string formats:


| Connection string | Description | 
| --- | --- | 
|  `jdbc:redshift:iam:// [host]:[port]/[db]`  |  A regular connection string. The driver infers the ClusterID and Region from the host.  | 
|  `jdbc:redshift:iam:// [cluster-id]: [region]/[db]`  |  The driver retrieves host information, given the ClusterID and Region.  | 
|  `jdbc:redshift:iam:// [host]/[db]`  |  The driver defaults to port 5439, and infers ClusterID and Region from the host. Depending on the port you selected when creating, modifying or migrating the cluster, allow access to the selected port.   | 

## Specifying profiles
<a name="jdbc20-aws-credentials-profiles"></a>

If you are using IAM authentication, you can specify any additional required or optional connection properties under a profile name. By doing this, you can avoid putting certain information directly in the connection string. You specify the profile name in your connection string using the Profile property. 

Profiles can be added to the AWS credentials file. The default location for this file is: `~/.aws/credentials` 

You can change the default value by setting the path in the following environment variable: `AWS_CREDENTIAL_PROFILES_FILE` 

 For more information about profiles, see [Working with AWS Credentials](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html) in the *AWS SDK for Java*. 

## Using instance profile credentials
<a name="jdbc20-instance-profile-credentials"></a>

If you are running an application on an Amazon EC2 instance that is associated with an IAM role, you can connect using the instance profile credentials. 

To do this, use one of the IAM connection string formats in the preceding table, and set the dbuser connection property to the Amazon Redshift username that you are connecting as. 

For more information about instance profiles, see [Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) in the *IAM User Guide*. 

## Using credential providers
<a name="jdbc20-aws-credentials-provider"></a>

The driver also supports credential provider plugins from the following services: 
+ AWS IAM Identity Center
+ Active Directory Federation Service (ADFS)
+ JSON Web Tokens (JWT) Service
+ Microsoft Azure Active Directory (AD) Service and Browser Microsoft Azure Active Directory (AD) Service
+ Okta Service
+ PingFederate Service 
+ Browser SAML for SAML services such as Okta, Ping, or ADFS

If you use one of these services, the connection URL needs to specify the following properties: 
+ **Plugin\$1Name** – The fully-qualified class path for your credentials provider plugin class.
+ **IdP\$1Host:** – The host for the service that you are using to authenticate into Amazon Redshift.
+ **IdP\$1Port** – The port that the host for the authentication service listens at. Not required for Okta.
+ **User** – The username for the idp\$1host server.
+ **Password** – The password associated with the idp\$1host username.
+ **DbUser** – The Amazon Redshift username you are connecting as.
+ **SSL\$1Insecure** – Indicates whether the IDP server certificate should be verified.
+ **Client\$1ID** – The client ID associated with the username in the Azure AD portal. Only used for Azure AD.
+ **Client\$1Secret** – The client secret associated with the client ID in the Azure AD portal. Only used for Azure AD.
+ **IdP\$1Tenant** – The Azure AD tenant ID for your Amazon Redshift application. Only used for Azure AD.
+ **App\$1ID** – The Okta app ID for your Amazon Redshift application. Only used for Okta.
+ **App\$1Name** – The optional Okta app name for your Amazon Redshift application. Only used for Okta.
+ **Partner\$1SPID** – The optional partner SPID (service provider ID) value. Only used for PingFederate.
+ **Idc\$1Region** – The AWS Region where the AWS IAM Identity Center instance is located. Only used for AWS IAM Identity Center.
+ **Issuer\$1Url** – The AWS IAM Identity Center server's instance endpoint. Only used for AWS IAM Identity Center.

If you are using a browser plugin for one of these services, the connection URL can also include: 
+ **Login\$1URL** –The URL for the resource on the identity provider's website when using the Security Assertion Markup Language (SAML) or Azure AD services through a browser plugin. This parameter is required if you are using a browser plugin.
+ **Listen\$1Port** – The port that the driver uses to get the SAML response from the identity provider when using the SAML, Azure AD, or AWS IAM Identity Center services through a browser plugin.
+ **IdP\$1Response\$1Timeout** – The amount of time, in seconds, that the driver waits for the SAML response from the identity provider when using the SAML, Azure AD, or AWS IAM Identity Center services through a browser plugin.

For information on additional connection string properties, see [Options for JDBC driver version 2.x configuration](jdbc20-configuration-options.md). 

# Using username and password only
<a name="jdbc20-authentication-username-password"></a>

If the server you are connecting to doesn't use SSL, then you only need to provide your Redshift username and password to authenticate the connection. 

**To configure authentication using your Redshift username and password only**

1. Set the `UID` property to your Redshift username for accessing the Amazon Redshift server.

1. Set the PWD property to the password corresponding to your Redshift username.

# Using SSL without identity verification
<a name="jdbc20-use-ssl-without-identity-verification"></a>

If the server you are connecting to uses SSL but doesn't require identity verification, then you can configure the driver to use a non-validating SSL factory. 

**To configure an SSL connection without identity verification**

1. Set the `UID` property to your Redshift username for accessing the Amazon Redshift server.

1. Set the `PWD` property to the password corresponding to your Redshift username.

1. Set the `SSLFactory` property to `com.amazon.redshift.ssl.NonValidatingFactory`.

# Using one-way SSL authentication
<a name="jdbc20-use-one-way-SSL-authentication"></a>

If the server you are connecting to uses SSL and has a certificate, then you can configure the driver to verify the identity of the server using one-way authentication. 

One-way authentication requires a signed, trusted SSL certificate for verifying the identity of the server. You can configure the driver to use a specific certificate or access a TrustStore that contains the appropriate certificate. If you don't specify a certificate or TrustStore, then the driver uses the default Java TrustStore (typically either `jssecacerts` or `cacerts`). 

**To configure one-way SSL authentication**

1. Set the UID property to your Redshift username for accessing the Amazon Redshift server.

1. Set the PWD property to the password corresponding to your Redshift username.

1. Set the SSL property to true.

1. Set the SSLRootCert property to the location of your root CA certificate.

1. If you aren't using one of the default Java TrustStores, then do one of the following:
   + To specify a server certificate, set the SSLRootCert property to the full path of the certificate.
   + To specify a TrustStore, do the following:

     1. Use the keytool program to add the server certificate to the TrustStore that you want to use.

     1. Specify the TrustStore and password to use when starting the Java application using the driver. For example:

        ```
        -Djavax.net.ssl.trustStore=[TrustStoreName]
        -Djavax.net.ssl.trustStorePassword=[TrustStorePassword]
        -Djavax.net.ssl.trustStoreType=[TrustStoreType]
        ```

1. Choose one:
   + To validate the certificate, set the SSLMode property to verify-ca.
   + To validate the certificate and verify the host name in the certificate, set the SSLMode property to verify-full.

# Configuring logging
<a name="jdbc20-configuring-logging"></a>

You can turn on logging in the driver to assist in diagnosing issues.

You can log driver information by using the following methods:
+ To save logged information in .log files, see [Using log files](jdbc20-using-log-files.md).
+ To send logged information to the LogStream or LogWriter specified in the DriverManager, see [Using LogStream or LogWriter](jdbc20-logstream-option.md). 

You provide the configuration information to the driver in the connection URL. For more information about the syntax of the connection URL, see [Building the connection URL](jdbc20-build-connection-url.md).

# Using log files
<a name="jdbc20-using-log-files"></a>

Only turn on logging long enough to capture an issue. Logging decreases performance and can consume a large quantity of disk space. 

Set the LogLevel key in your connection URL to turn on logging and specify the amount of detail included in log files. The following table lists the logging levels provided by the Amazon Redshift JDBC driver version 2.x, in order from least verbose to most verbose. 


| LogLevel value | Description | 
| --- | --- | 
|  1  |  Log severe error events that will lead the driver to abort.  | 
|  2  |  Log error events that might allow the driver to continue running.  | 
|  3  |  Log events that might result in an error if action is not taken. This level of logging and the levels of logging above this level also log the user's queries.  | 
|  4  |  Log general information that describes the progress of the driver.  | 
|  5  |  Log detailed information that is useful for debugging the driver.  | 
|  6  |  Log all driver activity.  | 

**To set up logging that uses log files**

1. Set the LogLevel property to the desired level of information to include in log files.

1. Set the LogPath property to the full path to the folder where you want to save log files. 

   For example, the following connection URL enables logging level 3 and saves the log files in the C:\$1temp folder: `jdbc:redshift://redshift.company.us-west- 1.redshift.amazonaws.com:9000/Default;DSILogLevel=3;LogPath=C:\temp`

1. To make sure that the new settings take effect, restart your JDBC application and reconnect to the server.

   The Amazon Redshift JDBC driver produces the following log files in the location specified in the LogPath property:
   +  redshift\$1jdbc.log file that logs driver activity that is not specific to a connection.
   + redshift\$1jdbc\$1connection\$1[Number].log file for each connection made to the database, where [Number] is a number that identifies each log file. This file logs driver activity that is specific to the connection.

If the LogPath value is invalid, then the driver sends the logged information to the standard output stream (`System.out`)

# Using LogStream or LogWriter
<a name="jdbc20-logstream-option"></a>

Only turn on logging long enough to capture an issue. Logging decreases performance and can consume a large quantity of disk space. 

Set the LogLevel key in your connection URL to turn on logging and specify the amount of detail sent to the LogStream or LogWriter specified in the DriverManager. 

**To turn on logging that uses the LogStream or LogWriter:**

1. To configure the driver to log general information that describes the progress of the driver, set the LogLevel property to 1 or INFO.

1. To make sure that the new settings take effect, restart your JDBC application and reconnect to the server.

# Data type conversions
<a name="jdbc20-data-type-mapping"></a>

The Amazon Redshift JDBC driver version 2.x supports many common data formats, converting between Amazon Redshift, SQL, and Java data types.

The following table lists the supported data type mappings.


| Amazon Redshift type | SQL type | Java type | 
| --- | --- | --- | 
|  BIGINT  |  SQL\$1BIGINT  |  Long  | 
|  BOOLEAN  |  SQL\$1BIT  |  Boolean  | 
|  CHAR  |  SQL\$1CHAR  |  String  | 
|  DATE  |  SQL\$1TYPE\$1DATE  |  java.sql.Date  | 
|  DECIMAL  |  SQL\$1NUMERIC  |  BigDecimal  | 
|  DOUBLE PRECISION  |  SQL\$1DOUBLE  |  Double  | 
|  GEOMETRY  |  SQL\$1 LONGVARBINARY  |  byte[]  | 
|  INTEGER  |  SQL\$1INTEGER  |  Integer  | 
|  OID  |  SQL\$1BIGINT  |  Long  | 
|  SUPER  |  SQL\$1LONGVARCHAR  |  String  | 
|  REAL  |  SQL\$1REAL  |  Float  | 
|  SMALLINT  |  SQL\$1SMALLINT  |  Short  | 
|  TEXT  |  SQL\$1VARCHAR  |  String  | 
|  TIME  |  SQL\$1TYPE\$1TIME  |  java.sql.Time  | 
|  TIMETZ  |  SQL\$1TYPE\$1TIME  |  java.sql.Time  | 
|  TIMESTAMP  |  SQL\$1TYPE\$1 TIMESTAMP  |  java.sql.Timestamp  | 
|  TIMESTAMPTZ  |  SQL\$1TYPE\$1 TIMESTAMP  |  java.sql.Timestamp  | 
|  VARCHAR  |  SQL\$1VARCHAR  |  String  | 

# Using prepared statement support
<a name="jdbc20-prepared-statement-support"></a>

The Amazon Redshift JDBC driver supports prepared statements. You can use prepared statements to improve the performance of parameterized queries that need to be run multiple times during the same connection.

A *prepared statement* is a SQL statement that is compiled on the server side but not run immediately. The compiled statement is stored on the server as a PreparedStatement object until you close the object or the connection. While that object exists, you can run the prepared statement as many times as needed using different parameter values, without having to compile the statement again. This reduced overhead enables the set of queries to be run more quickly.

For more information about prepared statements, see "Using Prepared Statements" in [JDBC Basics tutorial from Oracle](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html).

You can prepare a statement that contains multiple queries. For example, the following prepared statement contains two INSERT queries:

```
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO
MyTable VALUES (1, 'abc'); INSERT INTO CompanyTable VALUES
(1, 'abc');");
```

Take care that these queries don't depend on the results of other queries that are specified within the same prepared statement. Because queries don't run during the prepare step, the results have not been returned yet, and aren't available to other queries in the same prepared statement.

For example, the following prepared statement, which creates a table and then inserts values into that newly-created table, is not allowed:

```
PreparedStatement pstmt = conn.prepareStatement("CREATE
TABLE MyTable(col1 int, col2 varchar); INSERT INTO myTable
VALUES (1, 'abc');");
```

If you try to prepare this statement, the server returns an error stating that the destination table (myTable) doesn't exist yet. The CREATE query must be run before the INSERT query can be prepared.

# Differences between the 2.2 and 1.x versions of the JDBC driver
<a name="jdbc20-jdbc10-driver-differences"></a>

This section describes the differences in the information returned by the 2.2 and 1.x versions of the JDBC driver. The JDBC driver version 1.x is discontinued.

The following table lists the DatabaseMetadata information returned by the getDatabaseProductName() and getDatabaseProductVersion() functions for each version of the JDBC driver. JDBC driver version 2.2 obtains the values while establishing the connection. JDBC driver version 1.x obtains the values as a result of a query.


| JDBC driver version | getDatabaseProductName() result | getDatabaseProductVersion() result | 
| --- | --- | --- | 
|  2.2  |  Redshift  |  8.0.2  | 
|  1.x  |  PostgreSQL  |  08.00.0002  | 

The following table lists the DatabaseMetadata information returned by the getTypeInfo function for each version of the JDBC driver. 


| JDBC driver version | getTypeInfo result | 
| --- | --- | 
|  2.2  |  Consistent with Redshift datatypes  | 
|  1.x  |  Consistent with PostgreSQL datatypes  | 

# Creating initialization (.ini) files for JDBC driver version 2.x
<a name="jdbc20-ini-file"></a>

By using initialization (.ini) files for Amazon Redshift JDBC driver version 2.x, you can specify system level configuration parameters. For example, federated IdP authentication parameters can vary for each application. The .ini file provides a common location for SQL clients to get the required configuration parameters. 

You can create an JDBC driver version 2.x initialization (.ini) file that contains configuration options for SQL clients. The default name of the file is `rsjdbc.ini`. The JDBC driver version 2.x checks for the .ini file in the following locations, listed in order of precedence:
+ `IniFile` parameter in the connection URL or in the connection property dialog box of the SQL client. Be sure that the `IniFile` parameter contains the full path to the .ini file, including the file name. For information about the `IniFile` parameter, see [IniFile](jdbc20-configuration-options.md#jdbc20-inifile-option). If the `IniFile` parameter incorrectly specifies the location of the .ini file, an error displays.
+ Environment variables such as AMAZON\$1REDSHIFT\$1JDBC\$1INI\$1FILE with the full path, including the file name. You can use `rsjdbc.ini` or specify a file name. If the AMAZON\$1REDSHIFT\$1JDBC\$1INI\$1FILE environment variable incorrectly specifies the location of the .ini file, an error displays.
+ Directory where the driver JAR file is located.
+ User home directory.
+ Temp directory of the system.

You can organize the .ini file into sections, for example [DRIVER]. Each section contains key-value pairs that specify various connection parameters. You can use the `IniSection` parameter to specify a section in the .ini file. For information about the `IniSection` parameter, see [IniSection](jdbc20-configuration-options.md#jdbc20-inisection-option). 

Following is an example of the .ini file format, with sections for [DRIVER], [DEV], [QA], and [PROD]. The [DRIVER] section can apply to any connection.

```
[DRIVER]
key1=val1
key2=val2

[DEV]
key1=val1
key2=val2

[QA]
key1=val1
key2=val2

[PROD]
key1=val1
key2=val2
```

The JDBC driver version 2.x loads configuration parameters from the following locations, listed in order of precedence:
+ Default configuration parameters in the application code.
+ [DRIVER] section properties from the .ini file, if included.
+ Custom section configuration parameters, if the `IniSection` option is provided in the connection URL or in the connection property dialog box of the SQL client.
+ Properties from the connection property object specified in the `getConnection` call.
+ Configuration parameters speified in the connection URL.

# Options for JDBC driver version 2.x configuration
<a name="jdbc20-configuration-options"></a>

Following, you can find descriptions for the options that you can specify for version 2.2 of the Amazon Redshift JDBC driver. Configuration options are not case sensitive.

You can set configuration properties using the connection URL. For more information, see [Building the connection URL](jdbc20-build-connection-url.md).

**Topics**
+ [AccessKeyID](#jdbc20-accesskeyid-option)
+ [AllowDBUserOverride](#jdbc20-allowdbuseroverride-option)
+ [App\$1ID](#jdbc20-app-id-option)
+ [App\$1Name](#jdbc20-app-name-option)
+ [ApplicationName](#jdbc20-applicationname-option)
+ [AuthProfile](#jdbc20-authprofile-option)
+ [AutoCreate](#jdbc20-autocreate-option)
+ [Client\$1ID](#jdbc20-client_id-option)
+ [Client\$1Secret](#jdbc20-client_secret-option)
+ [ClusterID](#jdbc20-clusterid-option)
+ [Compression](#jdbc20-compression-option)
+ [connectTimeout](#jdbc20-connecttimeout-option)
+ [connectionTimezone](#jdbc20-connecttimezone-option)
+ [databaseMetadataCurrentDbOnly](#jdbc20-databasemetadatacurrentdbonly-option)
+ [DbUser](#jdbc20-dbuser-option)
+ [DbGroups](#jdbc20-dbgroups-option)
+ [DBNAME](#jdbc20-dbname-option)
+ [defaultRowFetchSize](#jdbc20-defaultrowfetchsize-option)
+ [DisableIsValidQuery](#jdbc20-disableisvalidquery-option)
+ [enableFetchRingBuffer](#jdbc20-enablefetchringbuffer-option)
+ [enableMultiSqlSupport](#jdbc20-enablemultisqlsupport-option)
+ [fetchRingBufferSize](#jdbc20-fetchringbuffersize-option)
+ [ForceLowercase](#jdbc20-forcelowercase-option)
+ [groupFederation](#jdbc20-groupFederation-option)
+ [HOST](#jdbc20-host-option)
+ [IAMDisableCache](#jdbc20-iamdisablecache-option)
+ [IAMDuration](#jdbc20-iamduration-option)
+ [Idc\$1Client\$1Display\$1Name](#jdbc20-idc_client_display_name)
+ [Idc\$1Region](#jdbc20-idc_region)
+ [IdP\$1Host](#jdbc20-idp_host-option)
+ [IdP\$1Partition](#jdbc20-idp_partition-option)
+ [IdP\$1Port](#jdbc20-idp_port-option)
+ [IdP\$1Tenant](#jdbc20-idp_tenant-option)
+ [IdP\$1Response\$1Timeout](#jdbc20-idp_response_timeout-option)
+ [IniFile](#jdbc20-inifile-option)
+ [IniSection](#jdbc20-inisection-option)
+ [isServerless](#jdbc20-isserverless-option)
+ [Issuer\$1Url](#jdbc20-issuer-url)
+ [Listen\$1Port](#jdbc20-listen-port)
+ [Login\$1URL](#jdbc20-login_url-option)
+ [loginTimeout](#jdbc20-logintimeout-option)
+ [loginToRp](#jdbc20-logintorp-option)
+ [LogLevel](#jdbc20-loglevel-option)
+ [LogPath](#jdbc20-logpath-option)
+ [OverrideSchemaPatternType](#jdbc20-override-schema-pattern-type)
+ [Partner\$1SPID](#jdbc20-partner_spid-option)
+ [Password](#jdbc20-password-option)
+ [Plugin\$1Name](#jdbc20-plugin_name-option)
+ [PORT](#jdbc20-port-option)
+ [Preferred\$1Role](#jdbc20-preferred_role-option)
+ [Profile](#jdbc20-profile-option)
+ [PWD](#jdbc20-pwd-option)
+ [queryGroup](#jdbc20-querygroup-option)
+ [readOnly](#jdbc20-readonly-option)
+ [Region](#jdbc20-region-option)
+ [reWriteBatchedInserts](#jdbc20-rewritebatchedinserts-option)
+ [reWriteBatchedInsertsSize](#jdbc20-rewritebatchedinsertssize-option)
+ [roleArn](#jdbc20-rolearn-option)
+ [roleSessionName](#jdbc20-roleaessionname-option)
+ [scope](#jdbc20-scope-option)
+ [SecretAccessKey](#jdbc20-secretaccesskey-option)
+ [SessionToken](#jdbc20-sessiontoken-option)
+ [serverlessAcctId](#jdbc20-serverlessacctid-option)
+ [serverlessWorkGroup](#jdbc20-serverlessworkgroup-option)
+ [socketFactory](#jdbc20-socketfactory-option)
+ [socketTimeout](#jdbc20-sockettimeout-option)
+ [SSL](#jdbc20-ssl-option)
+ [SSL\$1Insecure](#jdbc20-ssl_insecure-option)
+ [SSLCert](#jdbc20-sslcert-option)
+ [SSLFactory](#jdbc20-sslfactory-option)
+ [SSLKey](#jdbc20-sslkey-option)
+ [SSLMode](#jdbc20-sslmode-option)
+ [SSLPassword](#jdbc20-sslpassword-option)
+ [SSLRootCert](#jdbc20-sslrootcert-option)
+ [StsEndpointUrl](#jdbc20-stsendpointurl-option)
+ [tcpKeepAlive](#jdbc20-tcpkeepalive-option)
+ [token](#jdbc20-token-option)
+ [token\$1type](#jdbc20-token-type-option)
+ [UID](#jdbc20-uid-option)
+ [User](#jdbc20-user-option)
+ [webIdentityToken](#jdbc20-webidentitytoken-option)

## AccessKeyID
<a name="jdbc20-accesskeyid-option"></a>
+ **Default Value** – None
+ **Data Type** – String

You can specify this parameter to enter the IAM access key for the user or role. You can usually locate the key by looking at and existing string or user profile. If you specify this parameter, you must also specify the `SecretAccessKey` parameter. If passed in the JDBC URL, AccessKeyID must be URL encoded.

This parameter is optional.

## AllowDBUserOverride
<a name="jdbc20-allowdbuseroverride-option"></a>
+ **Default Value** – 0
+ **Data Type** – String

This option specifies whether the driver uses the `DbUser` value from the SAML assertion or the value that is specified in the `DbUser` connection property in the connection URL. 

This parameter is optional.

**1**  
The driver uses the `DbUser` value from the SAML assertion.  
If the SAML assertion doesn't specify a value for `DBUser`, the driver uses the value specified in the `DBUser` connection property. If the connection property also doesn't specify a value, the driver uses the value specified in the connection profile.

**0**  
The driver uses the `DBUser` value specified in the `DBUser` connection property.  
If the `DBUser` connection property doesn't specify a value, the driver uses the value specified in the connection profile. If the connection profile also doesn't specify a value, the driver uses the value from the SAML assertion.

## App\$1ID
<a name="jdbc20-app-id-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The Okta-provided unique ID associated with your Amazon Redshift application. 

This parameter is required if authenticating through the Okta service.

## App\$1Name
<a name="jdbc20-app-name-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The name of the Okta application that you use to authenticate the connection to Amazon Redshift. 

This parameter is optional.

## ApplicationName
<a name="jdbc20-applicationname-option"></a>
+ **Default Value** – null
+ **Data Type** – String

The name of the application to pass to Amazon Redshift for audit purposes. 

This parameter is optional.

## AuthProfile
<a name="jdbc20-authprofile-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The name of the authentication profile to use for connecting to Amazon Redshift. 

This parameter is optional.

## AutoCreate
<a name="jdbc20-autocreate-option"></a>
+ **Default Value** – false
+ **Data Type** – Boolean

This option specifies whether the driver causes a new user to be created when the specified user doesn't exist. 

This parameter is optional.

**true**  
If the user specified by either `DBUser` or unique ID (UID) doesn't exist, a new user with that name is created.

**false**  
The driver doesn't cause new users to be created. If the specified user doesn't exist, the authentication fails.

## Client\$1ID
<a name="jdbc20-client_id-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The client ID to use when authenticating the connection using the Azure AD service. 

This parameter is required if authenticating through the Azure AD service.

## Client\$1Secret
<a name="jdbc20-client_secret-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The Client Secret to use when authenticating the connection using the Azure AD service. 

This parameter is required if authenticating through the Azure AD service.

## ClusterID
<a name="jdbc20-clusterid-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The name of the Amazon Redshift cluster that you want to connect to. The driver attempts to detect this parameter from the given host. If you're using a Network Load Balancer (NLB) and connecting via IAM, the driver will fail to detect it, so you can set it using this connection option. 

This parameter is optional.

## Compression
<a name="jdbc20-compression-option"></a>
+ **Default Value** – off
+ **Data Type** – String

The compression method used for wire protocol communication between the Amazon Redshift server and the client or driver.

This parameter is optional.

You can specify the following values:
+ **lz4**

  Sets the compression method used for wire protocol communication with Amazon Redshift to lz4.
+ **off**

  Doesn't use compression for wire protocol communication with Amazon Redshift.

## connectTimeout
<a name="jdbc20-connecttimeout-option"></a>
+ **Default Value** – 10
+ **Data Type** – Integer

The timeout value to use for socket connect operations. If the time required to establish an Amazon Redshift connection exceeds this value, the connection is considered unavailable. The timeout is specified in seconds. A value of 0 means that no timeout is specified.

This parameter is optional.

## connectionTimezone
<a name="jdbc20-connecttimezone-option"></a>
+ **Default Value** – LOCAL
+ **Data Type** – String

The session level timezone.

This parameter is optional.

You can specify the following values:

**LOCAL**  
Configures the session level timezone to the LOCAL JVM timezone.

**SERVER**  
Configures the session level timezone to the timezone set for the user on the Amazon Redshift server. You can configure session level timezones for users with the following command:  

```
ALTER USER
[...]
SET TIMEZONE TO [...];
```

## databaseMetadataCurrentDbOnly
<a name="jdbc20-databasemetadatacurrentdbonly-option"></a>
+ **Default Value** – true
+ **Data Type** – Boolean

This option specifies whether the metadata API retrieves data from all accessible databases or only from the connected database. 

This parameter is optional.

You can specify the following values:

**true**  
The application retrieves metadata from a single database.

**false**  
The application retrieves metadata from all accessible databases.

## DbUser
<a name="jdbc20-dbuser-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The user ID to use with your Amazon Redshift account. You can use an ID that doesn't currently exist if you have enabled the AutoCreate property. 

This parameter is optional.

## DbGroups
<a name="jdbc20-dbgroups-option"></a>
+ **Default Value** – PUBLIC
+ **Data Type** – String

A comma-separated list of existing database group names that `DBUser` joins for the current session. 

This parameter is optional.

## DBNAME
<a name="jdbc20-dbname-option"></a>
+ **Default Value** – null
+ **Data Type** – String

The name of the database to connect to. You can use this option to specify the database name in the JDBC connection URL. 

This parameter is required. You must specify the database name, either in the connection URL or in the connection properties of the client application.

## defaultRowFetchSize
<a name="jdbc20-defaultrowfetchsize-option"></a>
+ **Default Value** – 0
+ **Data Type** – Integer

This option specifies a default value for getFetchSize. 

This parameter is optional.

You can specify the following values:

**0**  
Fetch all rows in a single operation.

**Positive integer**  
Number of rows to fetch from the database for each fetch iteration of the ResultSet.

## DisableIsValidQuery
<a name="jdbc20-disableisvalidquery-option"></a>
+ **Default Value** – False
+ **Data Type** – Boolean

This option specifies whether the driver submits a new database query when using the Connection.isValid() method to determine whether the database connection is active. 

This parameter is optional.

**true**  
The driver doesn't submit a query when using Connection.isValid() to determine whether the database connection is active. This may cause the driver to incorrectly identify the database connection as active if the database server has shut down unexpectedly.

**false**  
The driver submits a query when using Connection.isValid() to determine whether the database connection is active.

## enableFetchRingBuffer
<a name="jdbc20-enablefetchringbuffer-option"></a>
+ **Default Value** – true
+ **Data Type** – Boolean

This option specifies that the driver fetches rows using a ring buffer on a separate thread. The fetchRingBufferSize parameter specifies the ring buffer size. 

The ring buffer implements automatic memory management in JDBC to prevent out-of-memory (OOM) errors during data retrieval operations. The ring buffer monitors the actual size of buffered data in real-time, ensuring total memory usage by the driver stays within defined limits. When buffer capacity is reached, the driver pauses data fetching operations, preventing memory overflow without requiring manual intervention. This built-in safeguard eliminates OOM errors automatically, with no configuration needed from users.

If a transaction detects a Statement containing multiple SQL commands separated by semicolons, the fetch ring buffer for that transaction is set to false. enableFetchRingBuffer's value doesn't change. 

This parameter is optional.

**Note**  
When the ring buffer is disabled and the fetch size is not properly configured, out-of-memory (OOM) issues may occur. For more information about configuring fetch size, see [here](https://docs.aws.amazon.com/redshift/latest/dg/set-the-JDBC-fetch-size-parameter.html).

## enableMultiSqlSupport
<a name="jdbc20-enablemultisqlsupport-option"></a>
+ **Default Value** – true
+ **Data Type** – Boolean

This option specifies whether to process multiple SQL commands separated by semicolons in a Statement. 

This parameter is optional.

You can specify the following values:

**true**  
The driver processes multiple SQL commands, separated by semicolons, in a Statement object.

**false**  
The driver returns an error for multiple SQL commands in a single Statement.

## fetchRingBufferSize
<a name="jdbc20-fetchringbuffersize-option"></a>
+ **Default Value** – 1G
+ **Data Type** – String

This option specifies the size of the ring buffer used while fetching the result set. You can specify a size in bytes, for example 1K for 1 KB, 5000 for 5,000 bytes, 1M for 1 MB, 1G for 1 GB, and so on. You can also specify a percentage of heap memory. The driver stops fetching rows upon reaching the limit. Fetching resumes when the application reads rows and frees space in the ring buffer. 

This parameter is optional.

## ForceLowercase
<a name="jdbc20-forcelowercase-option"></a>
+ **Default Value** – false
+ **Data Type** – Boolean

This option specifies whether the driver lowercases all database groups (DbGroups) sent from the identity provider to Amazon Redshift when using single sign-on authentication. 

This parameter is optional.

**true**  
The driver lowercases all database groups that are sent from the identity provider.

**false**  
The driver doesn't alter database groups.

## groupFederation
<a name="jdbc20-groupFederation-option"></a>
+ **Default Value** – false
+ **Data Type** – Boolean

This option specifies whether to use Amazon Redshift IDP groups. This is supported by the GetClusterCredentialsV2 API. 

This parameter is optional.

**true**  
Use Amazon Redshift Identity Provider (IDP) groups.

**false**  
Use STS API and GetClusterCredentials for user federation and explicitly specify DbGroups for the connection.

## HOST
<a name="jdbc20-host-option"></a>
+ **Default Value** – null
+ **Data Type** – String

The host name of the Amazon Redshift server to connect to. You can use this option to specify the host name in the JDBC connection URL. 

This parameter is required. You must specify the host name, either in the connection URL or in the connection properties of the client application.

## IAMDisableCache
<a name="jdbc20-iamdisablecache-option"></a>
+ **Default Value** – false
+ **Data Type** – Boolean

This option specifies whether the IAM credentials are cached.

This parameter is optional.

**true**  
The IAM credentials aren't cached.

**false**  
The IAM credentials are cached. This improves performance when requests to the API gateway are throttled, for instance.

## IAMDuration
<a name="jdbc20-iamduration-option"></a>
+ **Default Value** – 900
+ **Data Type** – Integer

The length of time, in seconds, until the temporary IAM credentials expire. 
+ **Minimum value** – 900
+ **Maximum value ** – 3,600

This parameter is optional.

## Idc\$1Client\$1Display\$1Name
<a name="jdbc20-idc_client_display_name"></a>
+ **Default Value** – Amazon Redshift JDBC driver
+ **Data Type** – String

The display name to be used for the client that's using BrowserIdcAuthPlugin.

This parameter is optional.

## Idc\$1Region
<a name="jdbc20-idc_region"></a>
+ **Default Value** – None
+ **Data Type** – String

The AWS region where the IAM Identity Center instance is located.

This parameter is required only when authenticating using `BrowserIdcAuthPlugin` in the plugin\$1name configuration option.

## IdP\$1Host
<a name="jdbc20-idp_host-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The IdP (identity provider) host you are using to authenticate into Amazon Redshift. This can be specified in either the connection string or in a profile. 

This parameter is optional.

## IdP\$1Partition
<a name="jdbc20-idp_partition-option"></a>
+ **Default Value** – None
+ **Data Type** – String

Specifies the cloud partition where your identity provider (IdP) is configured. This determines which IdP authentication endpoint the driver connects to.

If this parameter is left blank, the driver defaults to the commercial partition. Possible values are:
+  `us-gov`: Use this value if your IdP is configured in Azure Government. For example, Azure AD Government uses the endpoint `login.microsoftonline.us`.
+  `cn`: Use this value if your IdP is configured in the China cloud partition. For example, Azure AD China uses the endpoint `login.chinacloudapi.cn`. 

This parameter is optional.

## IdP\$1Port
<a name="jdbc20-idp_port-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The port used by an IdP (identity provider). You can specify the port in either the connection string or in a profile. The default port is 5439. Depending on the port you selected when creating, modifying or migrating the cluster, allow access to the selected port. 

This parameter is optional.

## IdP\$1Tenant
<a name="jdbc20-idp_tenant-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The Azure AD tenant ID for your Amazon Redshift application. 

This parameter is required if authenticating through the Azure AD service.

## IdP\$1Response\$1Timeout
<a name="jdbc20-idp_response_timeout-option"></a>
+ **Default Value** – 120
+ **Data Type** – Integer

The amount of time, in seconds, that the driver waits for the SAML response from the identity provider when using the SAML or Azure AD services through a browser plugin. 

This parameter is optional.

## IniFile
<a name="jdbc20-inifile-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The full path of the .ini file, including file name. For example:

```
IniFile="C:\tools\rsjdbc.ini"
```

For information about the .ini file, see [Creating initialization (.ini) files for JDBC driver version 2.x](jdbc20-ini-file.md).

This parameter is optional.

## IniSection
<a name="jdbc20-inisection-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The name of a section in the .ini file containing the configuration options. For information about the .ini file, see [Creating initialization (.ini) files for JDBC driver version 2.x](jdbc20-ini-file.md). 

The following example specifies the [Prod] section of the .ini file:

```
IniSection="Prod"
```

This parameter is optional.

## isServerless
<a name="jdbc20-isserverless-option"></a>
+ **Default Value** – false
+ **Data Type** – Boolean

This option specifies whether the Amazon Redshift endpoint host is a serverless instance. The driver attempts to detect this parameter from the given host. If you're using a Network Load Balancer (NLB), the driver will fail to detect it, so you can set it here. 

This parameter is optional.

**true**  
The Amazon Redshift endpoint host is a serverless instance.

**false**  
The Amazon Redshift endpoint host is a provisioned cluster.

## Issuer\$1Url
<a name="jdbc20-issuer-url"></a>
+ **Default Value** – None
+ **Data Type** – String

Points to the AWS IAM Identity Center server's instance endpoint. 

This parameter is required only when authenticating using `BrowserIdcAuthPlugin` in the plugin\$1name configuration option.

## Listen\$1Port
<a name="jdbc20-listen-port"></a>
+ **Default Value** – 7890
+ **Data Type** – Integer

The port that the driver uses to receive the SAML response from the identity provider or authorization code when using SAML, Azure AD, or AWS Identity Center services through a browser plugin.

This parameter is optional.

## Login\$1URL
<a name="jdbc20-login_url-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The URL for the resource on the identity provider's website when using the SAML or Azure AD services through a browser plugin. 

This parameter is required if authenticating with the SAML or Azure AD services through a browser plugin.

## loginTimeout
<a name="jdbc20-logintimeout-option"></a>
+ **Default Value** – 0
+ **Data Type** – Integer

The number of seconds to wait before timing out when connecting and authenticating to the server. If establishing the connection takes longer than this threshold, then the connection is aborted. 

When this property is set to 0, connections don't time out.

This parameter is optional.

## loginToRp
<a name="jdbc20-logintorp-option"></a>
+ **Default Value** – `urn:amazon:webservices`
+ **Data Type** – String

The relying party trust that you want to use for the AD FS authentication type. 

This parameter is optional.

## LogLevel
<a name="jdbc20-loglevel-option"></a>
+ **Default Value** – 0
+ **Data Type** – Integer

Use this property to turn on or turn off logging in the driver and to specify the amount of detail included in log files. 

Enable logging only long enough to capture an issue. Logging decreases performance and can consume a large quantity of disk space.

This parameter is optional.

Set the parameter to one of the following values:

**0**  
Disable all logging.

**1**  
Enable logging on the FATAL level, which logs very severe error events that will lead the driver to abort.

**2**  
Enable logging on the ERROR level, which logs error events that might still allow the driver to continue running.

**3**  
Enable logging on the WARNING level, which logs events that might result in an error if action is not taken.

**4**  
Enable logging on the INFO level, which logs general information that describes the progress of the driver.

**5**  
Enable logging on the DEBUG level, which logs detailed information that is useful for debugging the driver.

**6**  
Enable logging on the TRACE level, which logs all driver activity.

When logging is enabled, the driver produces the following log files in the location specified in the `LogPath` property:
+ ** `redshift_jdbc.log`** – File that logs driver activity that is not specific to a connection.
+ **`redshift_jdbc_connection_[Number].log`** – File for each connection made to the database, where `[Number]` is a number that distinguishes each log file from the others. This file logs driver activity that is specific to the connection. 

If the LogPath value is invalid, the driver sends the logged information to the standard output stream, `System.out`.

## LogPath
<a name="jdbc20-logpath-option"></a>
+ **Default Value** – The current working directory.
+ **Data Type** – String

The full path to the folder where the driver saves log files when the DSILogLevel property is enabled. 

To be sure that the connection URL is compatible with all JDBC applications, we recommend that you escape the backslashes (\$1) in your file path by typing another backslash.

This parameter is optional.

## OverrideSchemaPatternType
<a name="jdbc20-override-schema-pattern-type"></a>
+ **Default Value** – null
+ **Data Type** – Integer

This option specifies whether to override the type of query used in getTables calls.

**0**  
No Schema Universal Query

**1**  
Local Schema Query

**2**  
External Schema Query

This parameter is optional.

## Partner\$1SPID
<a name="jdbc20-partner_spid-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The partner SPID (service provider ID) value to use when authenticating the connection using the PingFederate service. 

This parameter is optional.

## Password
<a name="jdbc20-password-option"></a>
+ **Default Value** – None
+ **Data Type** – String

When connecting using IAM authentication through an IDP, this is the password for the IDP\$1Host server. When using standard authentication, this can be used for the Amazon Redshift database password instead of PWD. 

This parameter is optional.

## Plugin\$1Name
<a name="jdbc20-plugin_name-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The fully qualified class name to implement a specific credentials provider plugin. 

This parameter is optional.

The following provider options are supported:
+ **`AdfsCredentialsProvider`** – Active Directory Federation Service.
+ **`AzureCredentialsProvider`** – Microsoft Azure Active Directory (AD) Service.
+ **`BasicJwtCredentialsProvider`** – JSON Web Tokens (JWT) Service.
+ **`BasicSamlCredentialsProvider`** – Security Assertion Markup Language (SAML) credentials which you can use with many SAML service providers.
+ **`BrowserAzureCredentialsProvider`** – Browser Microsoft Azure Active Directory (AD) Service.
+ **`BrowserAzureOAuth2CredentialsProvider` ** – Browser Microsoft Azure Active Directory (AD) Service for Native Authentication.
+ **`BrowserIdcAuthPlugin` ** – An authorization plugin using AWS IAM Identity Center.
+ **`BrowserSamlCredentialsProvider`** – Browser SAML for SAML services such as Okta, Ping, or ADFS.
+ **`IdpTokenAuthPlugin`** – An authorization plugin that accepts an AWS IAM Identity Center token or OpenID Connect (OIDC) JSON-based identity tokens (JWT) from any web identity provider linked to AWS IAM Identity Center.
+ **`OktaCredentialsProvider`** – Okta Service.
+ **`PingCredentialsProvider`** – PingFederate Service.

## PORT
<a name="jdbc20-port-option"></a>
+ **Default Value** – null
+ **Data Type** – Integer

The port of the Amazon Redshift server to connect to. You can use this option to specify the port in the JDBC connection URL. 

This parameter is optional.

## Preferred\$1Role
<a name="jdbc20-preferred_role-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The IAM role that you want to assume during the connection to Amazon Redshift. 

This parameter is optional.

## Profile
<a name="jdbc20-profile-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The name of the profile to use for IAM authentication. This profile contains any additional connection properties not specified in the connection string. 

This parameter is optional.

## PWD
<a name="jdbc20-pwd-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The password corresponding to the Amazon Redshift username that you provided using the property UID. 

This parameter is optional.

## queryGroup
<a name="jdbc20-querygroup-option"></a>
+ **Default Value** – null
+ **Data Type** – String

This option assigns a query to a queue at runtime by assigning your query to the appropriate query group. The query group is set for the session. All queries that run on the connection belong to this query group. 

This parameter is optional.

## readOnly
<a name="jdbc20-readonly-option"></a>
+ **Default Value** – false
+ **Data Type** – Boolean

This property specifies whether the driver is in read-only mode. 

This parameter is optional.

**true**  
The connection is in read-only mode and cannot write to the data store.

**false**  
The connection is not in read-only mode and can write to the data store.

## Region
<a name="jdbc20-region-option"></a>
+ **Default Value** – null
+ **Data Type** – String

This option specifies the AWS Region where the cluster is located. If you specify the StsEndPoint option, the Region option is ignored. The Redshift `GetClusterCredentials` API operation also uses the Region option. 

This parameter is optional.

## reWriteBatchedInserts
<a name="jdbc20-rewritebatchedinserts-option"></a>
+ **Default Value** – false
+ **Data Type** – Boolean

This option enables optimization to rewrite and combine compatible INSERT statements into batches. 

This parameter is optional.

## reWriteBatchedInsertsSize
<a name="jdbc20-rewritebatchedinsertssize-option"></a>
+ **Default Value** – 128
+ **Data Type** – Integer

This option enables optimization to rewrite and combine compatible INSERT statements into batches. This value must increase exponentially by the power of 2. 

This parameter is optional.

## roleArn
<a name="jdbc20-rolearn-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The Amazon Resource Name (ARN) of role. Make sure to specify this parameter when you specify BasicJwtCredentialsProvider for the Plugin\$1Name option. You specify the ARN in the following format: 

`arn:partition:service:region:account-id:resource-id`

This parameter is required if you specify BasicJwtCredentialsProvider for the Plugin\$1Name option.

## roleSessionName
<a name="jdbc20-roleaessionname-option"></a>
+ **Default Value** – jwt\$1redshift\$1session
+ **Data Type** – String

An identifier for the assumed role session. Typically, you pass the name or identifier that is associated with the user of your application. The temporary security credentials that your application uses are associated with that user. You can specify this parameter when you specify BasicJwtCredentialsProvider for the Plugin\$1Name option. 

This parameter is optional.

## scope
<a name="jdbc20-scope-option"></a>
+ **Default Value** – None
+ **Data Type** – String

A space-separated list of scopes to which the user can consent. You specify this parameter so that your Microsoft Azure application can get consent for APIs that you want to call. You can specify this parameter when you specify BrowserAzureOAuth2CredentialsProvider for the Plugin\$1Name option. 

This parameter is required for the BrowserAzureOAuth2CredentialsProvider plug-in.

## SecretAccessKey
<a name="jdbc20-secretaccesskey-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The IAM access key for the user or role. If this is specified, then AccessKeyID must also be specified. If passed in the JDBC URL, SecretAccessKey must be URL encoded. 

This parameter is optional.

## SessionToken
<a name="jdbc20-sessiontoken-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The temporary IAM session token associated with the IAM role you are using to authenticate. If passed in the JDBC URL, the temporary IAM session token must be URL encoded. 

This parameter is optional.

## serverlessAcctId
<a name="jdbc20-serverlessacctid-option"></a>
+ **Default Value** – null
+ **Data Type** – String

The Amazon Redshift Serverless account ID. The driver attempts to detect this parameter from the given host. If you're using a Network Load Balancer (NLB), the driver will fail to detect it, so you can set it here. 

This parameter is optional.

## serverlessWorkGroup
<a name="jdbc20-serverlessworkgroup-option"></a>
+ **Default Value** – null
+ **Data Type** – String

The Amazon Redshift Serverless workgroup name. The driver attempts to detect this parameter from the given host. If you're using a Network Load Balancer (NLB), the driver will fail to detect it, so you can set it here. 

This parameter is optional.

## socketFactory
<a name="jdbc20-socketfactory-option"></a>
+ **Default Value** – null
+ **Data Type** – String

This option specifies a socket factory for socket creation. 

This parameter is optional.

## socketTimeout
<a name="jdbc20-sockettimeout-option"></a>
+ **Default Value** – 0
+ **Data Type** – Integer

The number of seconds to wait during socket read operations before timing out. If the operation takes longer than this threshold, then the connection is closed. When this property is set to 0, the connection doesn't time out. 

This parameter is optional.

## SSL
<a name="jdbc20-ssl-option"></a>
+ **Default Value** – TRUE
+ **Data Type** – String

Use this property to turn on or turn off SSL for the connection. 

This parameter is optional.

You can specify the following values:

**TRUE**  
The driver connects to the server through SSL.

**FALSE**  
The driver connects to the server without using SSL. This option is not supported with IAM authentication.

Alternatively, you can configure the AuthMech property.

## SSL\$1Insecure
<a name="jdbc20-ssl_insecure-option"></a>
+ **Default Value** – true
+ **Data Type** – String

This property indicates whether the IDP hosts server certificate should be verified.

This parameter is optional.

You can specify the following values:

**true**  
The driver doesn't check the authenticity of the IDP server certificate.

**false**  
The driver checks the authenticity of the IDP server certificate.

## SSLCert
<a name="jdbc20-sslcert-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The full path of a .pem or .crt file containing additional trusted CA certificates for verifying the Amazon Redshift server instance when using SSL. 

This parameter is required if SSLKey is specified.

## SSLFactory
<a name="jdbc20-sslfactory-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The SSL factory to use when connecting to the server through TLS/SSL without using a server certificate. 

## SSLKey
<a name="jdbc20-sslkey-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The full path of the .der file containing the PKCS8 key file for verifying the certificates specified in SSLCert. 

This parameter is required if SSLCert is specified.

## SSLMode
<a name="jdbc20-sslmode-option"></a>
+ **Default Value** – verify-ca
+ **Data Type** – String

Use this property to specify how the driver validates certificates when TLS/SSL is enabled. 

This parameter is optional.

You can specify the following values:

**verify-ca**  
The driver verifies that the certificate comes from a trusted certificate authority (CA).

**verify-full**  
The driver verifies that the certificate comes from a trusted CA and that the host name in the certificate matches the host name specified in the connection URL.

## SSLPassword
<a name="jdbc20-sslpassword-option"></a>
+ **Default Value** – 0
+ **Data Type** – String

The password for the encrypted key file specified in SSLKey. 

This parameter is required if SSLKey is specified and the key file is encrypted.

## SSLRootCert
<a name="jdbc20-sslrootcert-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The full path of a .pem or .crt file containing the root CA certificate for verifying the Amazon Redshift Server instance when using SSL. 

## StsEndpointUrl
<a name="jdbc20-stsendpointurl-option"></a>
+ **Default Value** – null
+ **Data Type** – String

You can specify an AWS Security Token Service (AWS STS) endpoint. If you specify this option, the Region option is ignored. You can only specify a secure protocol (HTTPS) for this endpoint. 

## tcpKeepAlive
<a name="jdbc20-tcpkeepalive-option"></a>
+ **Default Value** – TRUE
+ **Data Type** – String

Use this property to turn on or turn off TCP keepalives. 

This parameter is optional.

You can specify the following values:

**TRUE**  
The driver uses TCP keepalives to prevent connections from timing out.

**FALSE**  
The driver doesn't use TCP keepalives.

## token
<a name="jdbc20-token-option"></a>
+ **Default Value** – None
+ **Data Type** – String

An AWS IAM Identity Center provided access token or an OpenID Connect (OIDC) JSON Web Token (JWT) provided by a web identity provider that's linked with AWS IAM Identity Center. Your application must generate this token by authenticating the user of your application with AWS IAM Identity Center or an identity provider linked with AWS IAM Identity Center. 

This parameter works with `IdpTokenAuthPlugin`.

## token\$1type
<a name="jdbc20-token-type-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The type of token that is being used in `IdpTokenAuthPlugin`.

You can specify the following values:

**ACCESS\$1TOKEN**  
Enter this if you use an AWS IAM Identity Center provided access token.

**EXT\$1JWT**  
Enter this if you use an OpenID Connect (OIDC) JSON Web Token (JWT) provided by a web-based identity provider that's integrated with AWS IAM Identity Center.

This parameter works with `IdpTokenAuthPlugin`.

## UID
<a name="jdbc20-uid-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The database username that you use to access the database.

This parameter is required.

## User
<a name="jdbc20-user-option"></a>
+ **Default Value** – None
+ **Data Type** – String

When connecting using IAM authentication through an IDP, this is the username for the idp\$1host server. When using standard authentication, this can be used for the Amazon Redshift database username. 

This parameter is optional.

## webIdentityToken
<a name="jdbc20-webidentitytoken-option"></a>
+ **Default Value** – None
+ **Data Type** – String

The OAuth 2.1 access token or OpenID Connect ID token that is provided by the identity provider. Your application must get this token by authenticating the user of your application with a web identity provider. Make sure to specify this parameter when you specify BasicJwtCredentialsProvider for the Plugin\$1Name option. 

This parameter is required if you specify BasicJwtCredentialsProvider for the Plugin\$1Name option.

# Previous versions of JDBC driver version 2.x
<a name="jdbc20-previous-driver-version-20"></a>

Download a previous version of the Amazon Redshift JDBC driver version 2.x only if your tool requires a specific version of the driver. 

These are the previous JDBC 4.2–compatible JDBC driver version 2.x drivers:
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.4/redshift-jdbc42-2.2.4.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.4/redshift-jdbc42-2.2.4.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.3/redshift-jdbc42-2.2.3.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.3/redshift-jdbc42-2.2.3.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.2/redshift-jdbc42-2.2.2.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.2/redshift-jdbc42-2.2.2.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.1/redshift-jdbc42-2.2.1.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.1/redshift-jdbc42-2.2.1.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.0/redshift-jdbc42-2.2.0.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.0/redshift-jdbc42-2.2.0.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.34/redshift-jdbc42-2.1.0.34.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.34/redshift-jdbc42-2.1.0.34.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.33/redshift-jdbc42-2.1.0.33.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.33/redshift-jdbc42-2.1.0.33.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.32/redshift-jdbc42-2.1.0.32.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.32/redshift-jdbc42-2.1.0.32.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.30/redshift-jdbc42-2.1.0.30.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.30/redshift-jdbc42-2.1.0.30.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.29/redshift-jdbc42-2.1.0.29.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.29/redshift-jdbc42-2.1.0.29.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.28/redshift-jdbc42-2.1.0.28.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.28/redshift-jdbc42-2.1.0.28.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.26/redshift-jdbc42-2.1.0.26.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.26/redshift-jdbc42-2.1.0.26.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.25/redshift-jdbc42-2.1.0.25.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.25/redshift-jdbc42-2.1.0.25.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.24/redshift-jdbc42-2.1.0.24.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.24/redshift-jdbc42-2.1.0.24.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.23/redshift-jdbc42-2.1.0.23.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.23/redshift-jdbc42-2.1.0.23.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.22/redshift-jdbc42-2.1.0.22.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.22/redshift-jdbc42-2.1.0.22.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.21/redshift-jdbc42-2.1.0.21.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.21/redshift-jdbc42-2.1.0.21.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.20/redshift-jdbc42-2.1.0.20.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.20/redshift-jdbc42-2.1.0.20.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.19/redshift-jdbc42-2.1.0.19.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.19/redshift-jdbc42-2.1.0.19.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.18/redshift-jdbc42-2.1.0.18.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.18/redshift-jdbc42-2.1.0.18.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.17/redshift-jdbc42-2.1.0.17.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.17/redshift-jdbc42-2.1.0.17.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.16/redshift-jdbc42-2.1.0.16.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.16/redshift-jdbc42-2.1.0.16.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.15/redshift-jdbc42-2.1.0.15.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.15/redshift-jdbc42-2.1.0.15.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.14/redshift-jdbc42-2.1.0.14.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.14/redshift-jdbc42-2.1.0.14.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.13/redshift-jdbc42-2.1.0.13.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.13/redshift-jdbc42-2.1.0.13.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.12/redshift-jdbc42-2.1.0.12.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.12/redshift-jdbc42-2.1.0.12.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.11/redshift-jdbc42-2.1.0.11.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.11/redshift-jdbc42-2.1.0.11.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.10/redshift-jdbc42-2.1.0.10.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.10/redshift-jdbc42-2.1.0.10.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.9/redshift-jdbc42-2.1.0.9.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.9/redshift-jdbc42-2.1.0.9.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.8/redshift-jdbc42-2.1.0.8.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.8/redshift-jdbc42-2.1.0.8.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.7/redshift-jdbc42-2.1.0.7.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.7/redshift-jdbc42-2.1.0.7.zip) 