Interface OracleConnectionBuilder
-
- All Superinterfaces:
ConnectionBuilder
- All Known Implementing Classes:
OracleConnectionBuilderImpl
public interface OracleConnectionBuilder extends ConnectionBuilder
A builder created from aOracleDataSource
object, used to establish a connection to the database that theOracleDataSource
object represents. The connection properties that were specified for theOracleDataSource
are used as the default values by theOracleConnectionBuilder
.To use the builder, the corresponding builder method needs to be called for each parameter that needs to be part of the connection request followed by a build() method. The order in which the builder methods are called is not important. However if the same builder attribute is applied more than once, only the most recent value will be considered while building the connection. The builder object can be reused to build more than one connection and the builder attributes will be retained across multiple invocations of the build() method.
The following example illustrates the use of
OracleConnectionBuilder
to create aOracleConnection
:OracleDataSource ods = new oracle.jdbc.pool.OracleDataSource(); OracleShardingKey superShardingKey = ods.createShardingKeyBuilder() .subkey("EASTERN_REGION", JDBCType.VARCHAR) .build(); OracleShardingKey shardingKey = ods.createShardingKeyBuilder() .subkey("PITTSBURGH_BRANCH", JDBCType.VARCHAR) .build(); OracleConnection connection = ods.createConnectionBuilder() .user("rafa") .password("tennis") .shardingKey(shardingKey) .superShardingKey(superShardingKey) .build();
- Since:
- 12.2
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description OracleConnectionBuilder
accessToken(AccessToken accessToken)
Specifies theaccessToken
to be used when creating a connection.OracleConnection
build()
Builds the connection object.default CompletionStage<OracleConnection>
buildAsyncOracle()
Returns aCompletionStage
that completes with aConnection
having the same state as if it were built by callingbuild
on thisConnectionBuilder
.default Flow.Publisher<OracleConnection>
buildConnectionPublisherOracle()
Returns aPublisher
that publishes a singleConnection
object with the same state as if it were built by callingbuild
on thisConnectionBuilder
.OracleConnectionBuilder
executorOracle(Executor executor)
Set theExecutor
used for asynchronous tasks by thisConnectionBuilder
and anyConnection
objects built by it.OracleConnectionBuilder
gssCredential(GSSCredential credential)
Provide the GSSCredential used to authenticate the connection.OracleConnectionBuilder
hostnameResolver(OracleHostnameResolver hostnameResolver)
Sets a custom hostname resolver implementingOracleHostnameResolver
used to provide a custom DNS name resolution strategy to locate the database host.OracleConnectionBuilder
password(String password)
OracleConnectionBuilder
readOnlyInstanceAllowed(boolean readOnlyInstanceAllowed)
Sets the read-only instance allowed value on this builder.OracleConnectionBuilder
shardingKey(ShardingKey shardingKey)
OracleConnectionBuilder
shardingKey(OracleShardingKey shardingKey)
OracleConnectionBuilder
sslContext(SSLContext sslContext)
Specifies aSSLContext
to use as a factory for SSLEngine objects that carry out the TLS protocol.OracleConnectionBuilder
superShardingKey(ShardingKey superShardingKey)
OracleConnectionBuilder
superShardingKey(OracleShardingKey superShardingKey)
OracleConnectionBuilder
user(String user)
-
-
-
Method Detail
-
user
OracleConnectionBuilder user(String user)
- Specified by:
user
in interfaceConnectionBuilder
- Parameters:
user
-- Returns:
- This
OracleConnectionBuilder
object
-
password
OracleConnectionBuilder password(String password)
- Specified by:
password
in interfaceConnectionBuilder
- Parameters:
password
-- Returns:
- This
OracleConnectionBuilder
object
-
shardingKey
OracleConnectionBuilder shardingKey(OracleShardingKey shardingKey)
- Parameters:
shardingKey
- Sharding Key object that needs to be part of connection request- Returns:
- This
OracleConnectionBuilder
object
-
superShardingKey
OracleConnectionBuilder superShardingKey(OracleShardingKey superShardingKey)
- Parameters:
superShardingKey
- Super sharding key object that needs to be part of connection request- Returns:
- This
OracleConnectionBuilder
object
-
shardingKey
OracleConnectionBuilder shardingKey(ShardingKey shardingKey)
- Specified by:
shardingKey
in interfaceConnectionBuilder
- Parameters:
shardingKey
- Sharding Key object that needs to be part of connection request- Returns:
- This
OracleConnectionBuilder
object
-
superShardingKey
OracleConnectionBuilder superShardingKey(ShardingKey superShardingKey)
- Specified by:
superShardingKey
in interfaceConnectionBuilder
- Parameters:
superShardingKey
- Super sharding key object that needs to be part of connection request- Returns:
- This
OracleConnectionBuilder
object
-
gssCredential
OracleConnectionBuilder gssCredential(GSSCredential credential)
Provide the GSSCredential used to authenticate the connection.- Parameters:
credential
- used to authenticate the connection. Not null.- Returns:
- This
OracleConnectionBuilder
object
-
sslContext
OracleConnectionBuilder sslContext(SSLContext sslContext)
Specifies aSSLContext
to use as a factory for SSLEngine objects that carry out the TLS protocol.The SSLContext must be initialized before building the connection. The certificates specified by that initialization will be used in place of any connection properties that would otherwise have specified certificates, such as key store and trust store property values.
Specifying a null value will clear any non-null value that may have been set previously, causing this builder to behave as if this method had never been called at all.
- Parameters:
sslContext
- An SSLContext to use as an SSLEngine factory.- Returns:
- This
OracleConnectionBuilder
object - Since:
- 20
-
hostnameResolver
OracleConnectionBuilder hostnameResolver(OracleHostnameResolver hostnameResolver)
Sets a custom hostname resolver implementingOracleHostnameResolver
used to provide a custom DNS name resolution strategy to locate the database host.- Parameters:
hostnameResolver
- an OracleHostnameResolver to use when resolving the datasource hostname- Returns:
- This
OracleConnectionBuilder
object - Since:
- 23
-
readOnlyInstanceAllowed
OracleConnectionBuilder readOnlyInstanceAllowed(boolean readOnlyInstanceAllowed)
Sets the read-only instance allowed value on this builder. This property is applicable to sharded database only. When the property value is set to true, the database allows connection creation to read-only instances as well otherwise not. A shard instance goes into read-only mode for a chunk if the chunk move/split operation is in progress on that instance. The default value is false which means by default connection creation is not allowed to a read-only instance.- Parameters:
readOnlyInstanceAllowed
- whether to allow connection creation to a read-only instance or not- Returns:
- This
OracleConnectionBuilder
object
-
executorOracle
OracleConnectionBuilder executorOracle(Executor executor)
Set the
Executor
used for asynchronous tasks by thisConnectionBuilder
and anyConnection
objects built by it. The default value isForkJoinPool.commonPool()
.Asynchronous tasks will be executed as a
PrivilegedAction
with the sameAccessControlContext
as the thread which initiated the asynchronous task.The following API calls initiate asynchronous tasks:
-
buildConnectionPublisherOracle()
-
OraclePreparedStatement.executeAsyncOracle()
-
OraclePreparedStatement.executeQueryAsyncOracle()
-
OraclePreparedStatement.executeUpdateAsyncOracle()
-
OraclePreparedStatement.executeBatchAsyncOracle()
-
OracleResultSet#publisherOracle()
-
OracleBlob.publisherOracle(long)
-
OracleClob.publisherOracle(long)
-
OracleBfile.publisherOracle(long)
-
OracleConnection.commitAsyncOracle()
-
OracleConnection.rollbackAsyncOracle()
-
OracleConnection.closeAsyncOracle()
- Parameters:
exec
- an Executor to use for asynchronous tasks. Not null.- Returns:
- this OracleConnectionBuilder
- Since:
- 20
-
-
accessToken
OracleConnectionBuilder accessToken(AccessToken accessToken)
Specifies the
accessToken
to be used when creating a connection. The issuer of the token must be one that is supported by Oracle Database for client authentication.It is invalid to configure this builder with both a token and with a username or password. If both this method and
password(String)
oruser(String)
are invoked with non null values, then aSQLException
indicating an invalid configuration is thrown when creating a connection with this builder.- Parameters:
accessToken
- the token to use for this connection. Notnull
.- Returns:
- the same
ConnectionBuilder
instance - Throws:
NullPointerException
- If theaccessToken
isnull
.
-
buildAsyncOracle
default CompletionStage<OracleConnection> buildAsyncOracle() throws SQLException
Returns aCompletionStage
that completes with aConnection
having the same state as if it were built by callingbuild
on thisConnectionBuilder
.The returned stage is completed exceptionally with a
SQLException
if a failure occurs when building theConnection
.- Returns:
- a
CompletionStage
which completes with aConnection
built by thisConnectionBuilder
- Throws:
SQLException
- Since:
- 20
-
buildConnectionPublisherOracle
default Flow.Publisher<OracleConnection> buildConnectionPublisherOracle() throws SQLException
Returns aPublisher
that publishes a singleConnection
object with the same state as if it were built by callingbuild
on thisConnectionBuilder
. The returnedPublisher
does not support multipleSubscribers
.- Returns:
- a
Publisher
of aConnection
built by thisConnectionBuilder
- Throws:
SQLException
- Since:
- 20
-
build
OracleConnection build() throws SQLException
Builds the connection object.- Specified by:
build
in interfaceConnectionBuilder
- Returns:
- New
OracleConnection
that is created. - Throws:
SQLException
-
-