Package com.clickhouse.client
Class ClickHouseRequestManager
- java.lang.Object
-
- com.clickhouse.client.ClickHouseRequestManager
-
public class ClickHouseRequestManager extends Object
Request manager is responsible for generating query and session ID, as well as transaction creation.ServiceLoaderwill search and instantiate customized request manager first, and then fall back to default implementation if no luck.
-
-
Constructor Summary
Constructors Constructor Description ClickHouseRequestManager()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ClickHouseTransactioncreateImplicitTransaction(ClickHouseRequest<?> request)Creates an implicit transaction.StringcreateQueryId()Creates a new query ID.StringcreateSessionId()Creates a new session ID.ClickHouseTransactioncreateTransaction(ClickHouseNode server, int timeout)Creates a new transaction.ClickHouseTransactioncreateTransaction(ClickHouseRequest<?> request)Creates a new transaction.ClickHouseTransactioncreateTransaction(ClickHouseRequest<?> request, int timeout)Creates a new transaction.static ClickHouseRequestManagergetInstance()Gets instance of request manager.ClickHouseTransactiongetOrStartTransaction(ClickHouseRequest<?> request)Gets or starts a new transaction.ClickHouseTransactiongetOrStartTransaction(ClickHouseRequest<?> request, int timeout)Gets or starts a new transaction.
-
-
-
Method Detail
-
getInstance
public static ClickHouseRequestManager getInstance()
Gets instance of request manager.- Returns:
- non-null request manager
-
createQueryId
public String createQueryId()
Creates a new query ID.- Returns:
- non-null query ID
-
createSessionId
public String createSessionId()
Creates a new session ID.- Returns:
- non-null session 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
-
-