Package oracle.ucp.jdbc
Interface UCPXAConnectionBuilder
- All Superinterfaces:
XAConnectionBuilder
A builder created from a
PoolXADataSource object, used to get a
connection to the database that the PoolXADataSource object
represents. The connection properties that were specified for the
PoolXADataSource are used as the default values by the
UCPXAConnectionBuilder.
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 UCPXAConnectionBuilder
to get a XAConnection:
PoolXADataSource pdsXa = new PoolXADataSourceImpl();
OracleShardingKey superShardingKey = pdsXa.createShardingKeyBuilder()
.subkey("EASTERN_REGION", JDBCType.VARCHAR)
.build();
OracleShardingKey shardingKey = pdsXa.createShardingKeyBuilder()
.subkey("PITTSBURGH_BRANCH", JDBCType.VARCHAR)
.build();
OracleConnection connection = pds.createConnectionBuilder()
.user("rafa")
.password("tennis")
.shardingKey(shardingKey)
.superShardingKey(superShardingKey)
.build();
-
Method Summary
Modifier and TypeMethodDescriptionbuild()Builds the XA connection object.default CompletionStage<XAConnection>Creates a completion stage for a connection.default Flow.Publisher<XAConnection>Creates a Flow.Publisher for a connection.connectionWaitDuration(Duration duration) Set connection wait timeout (injava.time.Duration) for this connection builder particularly.connectionWaitTimeout(int timeout) Deprecated.default UCPXAConnectionBuilderSubmits an executor to be used in the asynchronous builder's operations.labels(Properties labels) Sets the labels attribute on the builderSets the password attribute on the builderpdbRoles(Properties pdbRoles) Sets the PDB roles to be set on the connection from the pool in connection repurposing case for a multitenant database.proxyProperties(int proxyType, Properties proxyProperties) Sets the proxy properties on the builder that is used to create proxy session of the particular type as specified by the parameter proxyTypeserviceName(String serviceName) Sets the service name attribute on the buildershardingKey(oracle.jdbc.OracleShardingKey shardingKey) superShardingKey(oracle.jdbc.OracleShardingKey superShardingKey) Sets the user attribute on the builderMethods inherited from interface javax.sql.XAConnectionBuilder
shardingKey, superShardingKey
-
Method Details
-
user
Sets the user attribute on the builder- Specified by:
userin interfaceXAConnectionBuilder- Parameters:
user- the database user on whose behalf the connection is being made- Returns:
- this builder object
-
password
Sets the password attribute on the builder- Specified by:
passwordin interfaceXAConnectionBuilder- Parameters:
password- to set- Returns:
- this connection builder object
-
labels
Sets the labels attribute on the builder- Parameters:
labels- The requested connection labels.- Returns:
- this connection builder object
-
serviceName
Sets the service name attribute on the builder- Parameters:
serviceName- to retrieve the connection- Returns:
- this connection builder instance
-
proxyProperties
Sets the proxy properties on the builder that is used to create proxy session of the particular type as specified by the parameter proxyType- Parameters:
proxyType- create proxy session of this typeproxyProperties- connection with these proxy properties- Returns:
- this connection builder instance
-
shardingKey
- Parameters:
shardingKey- Sharding Key object that needs to be part of connection request- Returns:
- This instance of the connection builder.
-
superShardingKey
- Parameters:
superShardingKey- Super shardingKey key object that needs to be part of connection request- Returns:
- This instance of the connection builder.
-
pdbRoles
Sets the PDB roles to be set on the connection from the pool in connection repurposing case for a multitenant database.- Parameters:
pdbRoles- PDB roles and their passwords passed in as key value pairs- Returns:
- This instance of the connection builder.
-
build
Builds the XA connection object.- Specified by:
buildin interfaceXAConnectionBuilder- Returns:
- XAConnection created considering the builder attributes
- Throws:
SQLException- if there is a failure in building the connection.
-
buildAsyncOracle
Creates a completion stage for a connection. The returned stage will be completed when the pool has an available connection to borrow.- Returns:
- A CompletionStage which completes with a connection borrowed from the pool.
- Throws:
UnsupportedOperationException- if this method is not implemented
-
buildConnectionPublisherOracle
default Flow.Publisher<XAConnection> buildConnectionPublisherOracle() throws UnsupportedOperationExceptionCreates a Flow.Publisher for a connection. The returned stage will be completed when the pool has an available connection to borrow.- Returns:
- A CompletionStage which completes with a connection borrowed from the pool.
- Throws:
UnsupportedOperationException- if this method is not implemented
-
executor
Submits an executor to be used in the asynchronous builder's operations.- Parameters:
executor- - executor to submit (default is ForkJoinPool)- Returns:
- a builder
- Throws:
UnsupportedOperationException
-
connectionWaitTimeout
Deprecated.Set connection wait timeout (in seconds) for this connection builder particularly. if not set, the PoolDataSource's setting will be used.This method is deprecated. Use
connectionWaitDuration(java.time.Duration)instead.- Parameters:
timeout- - connection wait timeout (in seconds).- Returns:
- This instance of the connection builder.
-
connectionWaitDuration
Set connection wait timeout (injava.time.Duration) for this connection builder particularly. if not set, the PoolDataSource's setting will be used.- Parameters:
duration- - connection wait timeout (injava.time.Duration).- Returns:
- This instance of the connection builder.
-