Client Reference

Avatica provides a reference-implementation client in the form of a JavaJDBC client that interacts with the Avatica server over HTTP. This clientcan be used just as any other JDBC driver. There are a number of optionsthat are available for clients to specify via the JDBC connection URL.

As a reminder, the JDBC connection URL for Avatica is:

jdbc:avatica:remote:[option=value[;option=value]]

The following are a list of supported options:

  • url
  • Description: This property is a URL which refers to the location of theAvatica Server which the driver will communicate with.

  • Default: This property’s default value is null. It is required that theuser provides a value for this property.

  • Required: Yes.

  • serialization

  • Description: Avatica supports multiple types of serialization mechanismsto format data between the client and server. This property is used to ensurethat the client and server both use the same serialization mechanism. Validvalues presently include json and protobuf.

  • Default: json is the default value.

  • Required: No.

  • authentication

  • Description: Avatica clients can specify the means in which it authenticateswith the Avatica server. Clients who want to use a specific formof authentication should specify the appropriate value in this property. Validvalues for this property are presently: NONE, BASIC, DIGEST, and SPNEGO.

  • Default: null (implying “no authentication”, equivalent to NONE).

  • Required: No.

  • timeZone

  • Description: The timezone that will be used for dates and times. Valid values for thisproperty are defined by RFC 822, forexample: GMT, GMT-3, EST or PDT.

  • Default: This property’s default value is null which will cause the Avatica Driver touse the default timezone as specified by the JVM, commonly overriden by theuser.timezone system property.

  • Required: No.

  • httpclient_factory

  • Description: The Avatica client is a “fancy” HTTP client. As such, there aremany libraries and APIs available for making HTTP calls. To determine which implementationshould be used, there is an interface AvaticaHttpClientFactory which can be providedto control how the AvaticaHttpClient implementation is chosen.

  • Default: AvaticaHttpClientFactoryImpl.

  • Required: No.

  • httpclient_impl

  • Description: When using the default AvaticaHttpClientFactoryImpl HTTP client factoryimplementation, this factory should choose the correct client implementation for thegiven client configuration. This property can be used to override the specific HTTPclient implementation. If it is not provided, the AvaticaHttpClientFactoryImpl willautomatically choose the HTTP client implementation.

  • Default: null.

  • Required: No.

  • avatica_user

  • Description: This is the username used by an Avatica client to identify itselfto the Avatica server. It is unique to the traditional “user” JDBC property. Itis only necessary if Avatica is configured for HTTP Basic or Digest authentication.

  • Default: null.

  • Required: No.

  • avatica_password

  • Description: This is the password used by an Avatica client to identify itselfto the Avatica server. It is unique to the traditional “password” JDBC property. Itis only necessary if Avatica is configured for HTTP Basic or Digest authentication.

  • Default: null.

  • Required: No.

  • principal

  • Description: The Kerberos principal which can be used by the Avatica JDBC Driverto automatically perform a Kerberos login before attempting to contact the Avaticaserver. If this property is provided, it is also expected that keytab is providedand that the Avatica server is configured for SPNEGO authentication. Users can performtheir own Kerberos login; this option is provided only as a convenience.

  • Default: null.

  • Required: No.

  • keytab

  • Description: The Kerberos keytab which contains the secret material to performa Kerberos login with the principal. The value should be a path on the localfilesystem to a regular file.

  • Default: null.

  • Required: No.

  • truststore

  • Description: A path to a Java KeyStore (JKS) file on the local filesystemwhich contains the certificate authority to trust in a TLS handshake. Onlynecessary when using HTTPS.

  • Default: null.

  • Required: No.

  • truststore_password

  • Description: The password for the Java KeyStore file specified by truststore.

  • Default: null.

  • Required: Only if truststore was provided.