Package com.clickhouse.client
Class ClickHouseRequestManager
java.lang.Object
com.clickhouse.client.ClickHouseRequestManager
Request manager is responsible for generating query and session ID, as well
as transaction creation.
ServiceLoader will search and
instantiate customized request manager first, and then fall back to default
implementation if no luck.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateImplicitTransaction(ClickHouseRequest<?> request) Creates an implicit transaction.Creates a new query ID.Creates a new session ID.createTransaction(ClickHouseNode server, int timeout) Creates a new transaction.createTransaction(ClickHouseRequest<?> request) Creates a new transaction.createTransaction(ClickHouseRequest<?> request, int timeout) Creates a new transaction.Creates a global, URL-safe unique ID.static ClickHouseRequestManagerGets instance of request manager.getOrStartTransaction(ClickHouseRequest<?> request) Gets or starts a new transaction.getOrStartTransaction(ClickHouseRequest<?> request, int timeout) Gets or starts a new transaction.
-
Constructor Details
-
ClickHouseRequestManager
public ClickHouseRequestManager()
-
-
Method Details
-
getInstance
Gets instance of request manager.- Returns:
- non-null request manager
-
createQueryId
Creates a new query ID. By default, it simply forwards the call tocreateUniqueId().- Returns:
- non-null unique query ID
-
createSessionId
Creates a new session ID. By default, it simply forwards the call tocreateUniqueId().- Returns:
- non-null unique session ID
-
createUniqueId
Creates a global, URL-safe unique ID. By default it usesUUID.randomUUID()for least dependency, but you can override this method to use any other alternatives like TimeUUID, snowflake and maybe NanoID.- Returns:
- non-empty global unique ID
-
createImplicitTransaction
public ClickHouseTransaction createImplicitTransaction(ClickHouseRequest<?> request) throws ClickHouseException Creates an implicit transaction.- Parameters:
request- non-null request- Returns:
- non-null new transaction
- Throws:
ClickHouseException- when failed to create implicit transaction
-
createTransaction
public ClickHouseTransaction createTransaction(ClickHouseRequest<?> request) throws ClickHouseException Creates a new transaction. Same ascreateTransaction(request, 0).- Parameters:
request- non-null request- Returns:
- non-null new transaction
- Throws:
ClickHouseException- when failed to create transaction
-
createTransaction
public ClickHouseTransaction createTransaction(ClickHouseRequest<?> request, int timeout) throws ClickHouseException Creates a new transaction. UnlikegetOrStartTransaction(ClickHouseRequest, int), the transaction's state isClickHouseTransaction.NEWand it's not bounded with the request.- Parameters:
request- non-null requesttimeout- transaction timeout in seconds, zero or negative number meansrequest.getConfig().getTransactionTimeout()- Returns:
- non-null new transaction
- Throws:
ClickHouseException- when failed to create transaction
-
createTransaction
public ClickHouseTransaction createTransaction(ClickHouseNode server, int timeout) throws ClickHouseException Creates a new transaction.createSessionId()will be called to start a new session just for the transaction.- Parameters:
server- non-null servertimeout- transaction timeout in seconds- Returns:
- non-null new transaction
- Throws:
ClickHouseException- when failed to create transaction
-
getOrStartTransaction
public ClickHouseTransaction getOrStartTransaction(ClickHouseRequest<?> request) throws ClickHouseException Gets or starts a new transaction. Same asgetOrStartTransaction(request, 0).- Parameters:
request- non-null request- Returns:
- non-null transaction
- Throws:
ClickHouseException- when failed to get or start transaction
-
getOrStartTransaction
public ClickHouseTransaction getOrStartTransaction(ClickHouseRequest<?> request, int timeout) throws ClickHouseException Gets or starts a new transaction.createSessionId()will be called to when a new transaction is created.- Parameters:
request- non-null requesttimeout- transaction timeout in seconds, zero or negative number meansrequest.getConfig().getTransactionTimeout()- Returns:
- non-null transaction in
ClickHouseTransaction.ACTIVEstate - Throws:
ClickHouseException- when failed to get or start transaction
-