Class ConnectionOptions

java.lang.Object
com.google.cloud.spanner.connection.ConnectionOptions

@InternalApi public class ConnectionOptions extends Object
Internal connection API for Google Cloud Spanner. This class may introduce breaking changes without prior notice.

Options for creating a Connection to a Google Cloud Spanner database.

Usage:

 
 
 ConnectionOptions options = ConnectionOptions.newBuilder()
       .setUri("cloudspanner:/projects/my_project_id/instances/my_instance_id/databases/my_database_name?autocommit=false")
       .setCredentialsUrl("/home/cloudspanner-keys/my-key.json")
       .build();
 try(Connection connection = options.getConnection()) {
   try(ResultSet rs = connection.executeQuery(Statement.of("SELECT SingerId, AlbumId, MarketingBudget FROM Albums"))) {
     while(rs.next()) {
       // do something
     }
   }
 }
 
 
 
  • Field Details

    • AUTOCOMMIT_PROPERTY_NAME

      public static final String AUTOCOMMIT_PROPERTY_NAME
      Name of the 'autocommit' connection property.
      See Also:
    • READONLY_PROPERTY_NAME

      public static final String READONLY_PROPERTY_NAME
      Name of the 'readonly' connection property.
      See Also:
    • ROUTE_TO_LEADER_PROPERTY_NAME

      public static final String ROUTE_TO_LEADER_PROPERTY_NAME
      Name of the 'routeToLeader' connection property.
      See Also:
    • RETRY_ABORTS_INTERNALLY_PROPERTY_NAME

      public static final String RETRY_ABORTS_INTERNALLY_PROPERTY_NAME
      Name of the 'retry aborts internally' connection property.
      See Also:
    • CREDENTIALS_PROPERTY_NAME

      public static final String CREDENTIALS_PROPERTY_NAME
      Name of the 'credentials' connection property.
      See Also:
    • ENCODED_CREDENTIALS_PROPERTY_NAME

      public static final String ENCODED_CREDENTIALS_PROPERTY_NAME
      Name of the 'encodedCredentials' connection property.
      See Also:
    • ENABLE_ENCODED_CREDENTIALS_SYSTEM_PROPERTY

      public static final String ENABLE_ENCODED_CREDENTIALS_SYSTEM_PROPERTY
      See Also:
    • CREDENTIALS_PROVIDER_PROPERTY_NAME

      public static final String CREDENTIALS_PROVIDER_PROPERTY_NAME
      Name of the 'credentialsProvider' connection property.
      See Also:
    • ENABLE_CREDENTIALS_PROVIDER_SYSTEM_PROPERTY

      public static final String ENABLE_CREDENTIALS_PROVIDER_SYSTEM_PROPERTY
      See Also:
    • OAUTH_TOKEN_PROPERTY_NAME

      public static final String OAUTH_TOKEN_PROPERTY_NAME
      OAuth token to use for authentication. Cannot be used in combination with a credentials file.
      See Also:
    • MIN_SESSIONS_PROPERTY_NAME

      public static final String MIN_SESSIONS_PROPERTY_NAME
      Name of the 'minSessions' connection property.
      See Also:
    • MAX_SESSIONS_PROPERTY_NAME

      public static final String MAX_SESSIONS_PROPERTY_NAME
      Name of the 'maxSessions' connection property.
      See Also:
    • NUM_CHANNELS_PROPERTY_NAME

      public static final String NUM_CHANNELS_PROPERTY_NAME
      Name of the 'numChannels' connection property.
      See Also:
    • CHANNEL_PROVIDER_PROPERTY_NAME

      public static final String CHANNEL_PROVIDER_PROPERTY_NAME
      Name of the 'channelProvider' connection property.
      See Also:
    • ENABLE_CHANNEL_PROVIDER_SYSTEM_PROPERTY

      public static final String ENABLE_CHANNEL_PROVIDER_SYSTEM_PROPERTY
      See Also:
    • LENIENT_PROPERTY_NAME

      public static final String LENIENT_PROPERTY_NAME
      Name of the 'lenientMode' connection property.
      See Also:
    • RPC_PRIORITY_NAME

      public static final String RPC_PRIORITY_NAME
      Name of the 'rpcPriority' connection property.
      See Also:
    • DATABASE_ROLE_PROPERTY_NAME

      public static final String DATABASE_ROLE_PROPERTY_NAME
      Name of the 'databaseRole' connection property.
      See Also:
    • DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE_NAME

      public static final String DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE_NAME
      Name of the 'delay transaction start until first write' property.
      See Also:
    • TRACK_SESSION_LEAKS_PROPERTY_NAME

      public static final String TRACK_SESSION_LEAKS_PROPERTY_NAME
      Name of the 'trackStackTraceOfSessionCheckout' connection property.
      See Also:
    • TRACK_CONNECTION_LEAKS_PROPERTY_NAME

      public static final String TRACK_CONNECTION_LEAKS_PROPERTY_NAME
      Name of the 'trackStackTraceOfConnectionCreation' connection property.
      See Also:
    • DATA_BOOST_ENABLED_PROPERTY_NAME

      public static final String DATA_BOOST_ENABLED_PROPERTY_NAME
      See Also:
    • AUTO_PARTITION_MODE_PROPERTY_NAME

      public static final String AUTO_PARTITION_MODE_PROPERTY_NAME
      See Also:
    • MAX_PARTITIONS_PROPERTY_NAME

      public static final String MAX_PARTITIONS_PROPERTY_NAME
      See Also:
    • MAX_PARTITIONED_PARALLELISM_PROPERTY_NAME

      public static final String MAX_PARTITIONED_PARALLELISM_PROPERTY_NAME
      See Also:
    • VALID_PROPERTIES

      public static final Set<ConnectionOptions.ConnectionProperty> VALID_PROPERTIES
      All valid connection properties.
  • Method Details

    • getDefaultProjectId

      public static String getDefaultProjectId(com.google.auth.Credentials credentials)
      Gets the default project-id for the current environment as defined by ServiceOptions.getDefaultProjectId(), and if none could be found, the project-id of the given credentials if it contains any.
      Parameters:
      credentials - The credentials to use to get the default project-id if none could be found in the environment.
      Returns:
      the default project-id.
    • closeSpanner

      public static void closeSpanner()
      Closes all Spanner instances that have been opened by connections during the lifetime of this JVM. Call this method at the end of your application to free up resources. You must close all Connections that have been opened by your application before calling this method. Failing to do so, will cause this method to throw a SpannerException.

      This method is also automatically called by a shutdown hook (see Runtime.addShutdownHook(Thread)) when the JVM is shutdown gracefully.

    • newBuilder

      public static ConnectionOptions.Builder newBuilder()
      Create a ConnectionOptions.Builder for ConnectionOptions. Use this method to create ConnectionOptions that can be used to obtain a Connection.
      Returns:
      a new ConnectionOptions.Builder
    • getConnection

      public Connection getConnection()
      Create a new Connection from this ConnectionOptions. Calling this method multiple times for the same ConnectionOptions will return multiple instances of Connections to the same database.
      Returns:
      a new Connection to the database referenced by this ConnectionOptions
    • getUri

      public String getUri()
      The URI of this ConnectionOptions
    • getCredentialsUrl

      public String getCredentialsUrl()
      The credentials URL of this ConnectionOptions
    • getSessionPoolOptions

      public SessionPoolOptions getSessionPoolOptions()
    • getMinSessions

      public Integer getMinSessions()
      The minimum number of sessions in the backing session pool of this connection. The session pool is shared between all connections in the same JVM that connect to the same Cloud Spanner database using the same connection settings.
    • getMaxSessions

      public Integer getMaxSessions()
      The maximum number of sessions in the backing session pool of this connection. The session pool is shared between all connections in the same JVM that connect to the same Cloud Spanner database using the same connection settings.
    • getNumChannels

      public Integer getNumChannels()
      The number of channels to use for the connection.
    • getChannelProvider

      public com.google.api.gax.rpc.TransportChannelProvider getChannelProvider()
      Calls the getChannelProvider() method from the supplied class.
    • getDatabaseRole

      public String getDatabaseRole()
      The database role that is used for this connection. Assigning a role to a connection can be used to for example restrict the access of a connection to a specific set of tables.
    • getHost

      public String getHost()
      The host and port number that this ConnectionOptions will connect to
    • getProjectId

      public String getProjectId()
      The Google Project ID that this ConnectionOptions will connect to
    • getInstanceId

      public String getInstanceId()
      The Spanner Instance ID that this ConnectionOptions will connect to
    • getDatabaseName

      public String getDatabaseName()
      The Spanner database name that this ConnectionOptions will connect to
    • getDatabaseId

      public DatabaseId getDatabaseId()
      The Spanner DatabaseId that this ConnectionOptions will connect to
    • getCredentials

      public com.google.auth.Credentials getCredentials()
      The Credentials of this ConnectionOptions. This is either the credentials specified in the credentialsUrl or the default Google application credentials
    • isAutocommit

      public boolean isAutocommit()
      The initial autocommit value for connections created by this ConnectionOptions
    • isReadOnly

      public boolean isReadOnly()
      The initial readonly value for connections created by this ConnectionOptions
    • isRouteToLeader

      public boolean isRouteToLeader()
      Whether read/write transactions and partitioned DML are preferred to be routed to the leader region.
    • isRetryAbortsInternally

      public boolean isRetryAbortsInternally()
      The initial retryAbortsInternally value for connections created by this ConnectionOptions
    • getWarnings

      @Nullable public String getWarnings()
      Any warnings that were generated while creating the ConnectionOptions instance.
    • isReturnCommitStats

      public boolean isReturnCommitStats()
      Whether connections created by this ConnectionOptions return commit stats.
    • isAutoConfigEmulator

      public boolean isAutoConfigEmulator()
      Whether connections created by this ConnectionOptions will automatically try to connect to the emulator using the default host/port of the emulator, and automatically create the instance and database that is specified in the connection string if these do not exist on the emulator instance.
    • getDialect

      public Dialect getDialect()
    • toString

      public String toString()
      Overrides:
      toString in class Object