Package org.mariadb.jdbc.client
Class ClientImpl
- java.lang.Object
-
- org.mariadb.jdbc.client.ClientImpl
-
- All Implemented Interfaces:
java.lang.AutoCloseable,Client
- Direct Known Subclasses:
ClientReplayImpl
public class ClientImpl extends java.lang.Object implements Client, java.lang.AutoCloseable
-
-
Field Summary
Fields Modifier and Type Field Description private booleanclosedprivate MutableIntcompressionSequenceprivate Configurationconfprotected Contextcontextprivate booleandisablePipelineprotected ExceptionFactoryexceptionFactoryprivate HostAddresshostAddressprivate java.util.concurrent.locks.ReentrantLocklockprivate static Loggerloggerprivate PacketReaderreaderprivate MutableIntsequenceprivate java.net.Socketsocketprivate intsocketTimeoutprivate ClientMessagestreamMsgprivate StatementstreamStmtprivate intwaitTimeoutprotected PacketWriterwriter
-
Constructor Summary
Constructors Constructor Description ClientImpl(Configuration conf, HostAddress hostAddress, java.util.concurrent.locks.ReentrantLock lock, boolean skipPostCommands)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidabort(java.util.concurrent.Executor executor)private voidassignStream(java.io.OutputStream out, java.io.InputStream in, Configuration conf, java.lang.Long threadId)protected voidcheckNotClosed()voidclose()voidclosePrepare(PrepareResultPacket prepare)private voidcloseSocket()java.lang.StringcreateSessionVariableQuery(java.lang.String serverTz)protected voiddestroySocket()Closing socket in case of Connection error after socket creation.java.util.List<Completion>execute(ClientMessage message)java.util.List<Completion>execute(ClientMessage message, Statement stmt)java.util.List<Completion>execute(ClientMessage message, Statement stmt, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion)java.util.List<Completion>executePipeline(ClientMessage[] messages, Statement stmt, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion)ContextgetContext()ExceptionFactorygetExceptionFactory()HostAddressgetHostAddress()intgetSocketTimeout()intgetWaitTimeout()private java.lang.StringhandleTimezone()load server timezone and ensure this corresponds to client timezonebooleanisClosed()booleanisPrimary()private voidpostConnectionQueries()CompletionreadPacket(ClientMessage message)CompletionreadPacket(Statement stmt, ClientMessage message, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion)Read server response packet.voidreadResponse(ClientMessage message)java.util.List<Completion>readResponse(Statement stmt, ClientMessage message, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion)private voidreadResults(Statement stmt, ClientMessage message, java.util.List<Completion> completions, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion)voidreadStreamingResults(java.util.List<Completion> completions, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion)voidreset()intsendQuery(ClientMessage message)voidsetReadOnly(boolean readOnly)voidsetSocketTimeout(int milliseconds)
-
-
-
Field Detail
-
logger
private static final Logger logger
-
socket
private final java.net.Socket socket
-
sequence
private final MutableInt sequence
-
compressionSequence
private final MutableInt compressionSequence
-
lock
private final java.util.concurrent.locks.ReentrantLock lock
-
conf
private final Configuration conf
-
hostAddress
private final HostAddress hostAddress
-
closed
private boolean closed
-
exceptionFactory
protected final ExceptionFactory exceptionFactory
-
writer
protected PacketWriter writer
-
reader
private PacketReader reader
-
streamStmt
private Statement streamStmt
-
streamMsg
private ClientMessage streamMsg
-
socketTimeout
private int socketTimeout
-
waitTimeout
private int waitTimeout
-
disablePipeline
private final boolean disablePipeline
-
context
protected Context context
-
-
Constructor Detail
-
ClientImpl
public ClientImpl(Configuration conf, HostAddress hostAddress, java.util.concurrent.locks.ReentrantLock lock, boolean skipPostCommands) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
-
Method Detail
-
assignStream
private void assignStream(java.io.OutputStream out, java.io.InputStream in, Configuration conf, java.lang.Long threadId)
-
destroySocket
protected void destroySocket()
Closing socket in case of Connection error after socket creation.
-
handleTimezone
private java.lang.String handleTimezone() throws java.sql.SQLExceptionload server timezone and ensure this corresponds to client timezone- Throws:
java.sql.SQLException- if any socket error.
-
postConnectionQueries
private void postConnectionQueries() throws java.sql.SQLException- Throws:
java.sql.SQLException
-
createSessionVariableQuery
public java.lang.String createSessionVariableQuery(java.lang.String serverTz)
-
setReadOnly
public void setReadOnly(boolean readOnly) throws java.sql.SQLException- Specified by:
setReadOnlyin interfaceClient- Throws:
java.sql.SQLException
-
sendQuery
public int sendQuery(ClientMessage message) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
execute
public java.util.List<Completion> execute(ClientMessage message) throws java.sql.SQLException
-
execute
public java.util.List<Completion> execute(ClientMessage message, Statement stmt) throws java.sql.SQLException
-
executePipeline
public java.util.List<Completion> executePipeline(ClientMessage[] messages, Statement stmt, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion) throws java.sql.SQLException
- Specified by:
executePipelinein interfaceClient- Throws:
java.sql.SQLException
-
execute
public java.util.List<Completion> execute(ClientMessage message, Statement stmt, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion) throws java.sql.SQLException
-
readResponse
public java.util.List<Completion> readResponse(Statement stmt, ClientMessage message, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
readResponse
public void readResponse(ClientMessage message) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
closePrepare
public void closePrepare(PrepareResultPacket prepare) throws java.sql.SQLException
- Specified by:
closePreparein interfaceClient- Throws:
java.sql.SQLException
-
readStreamingResults
public void readStreamingResults(java.util.List<Completion> completions, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion) throws java.sql.SQLException
- Specified by:
readStreamingResultsin interfaceClient- Throws:
java.sql.SQLException
-
readResults
private void readResults(Statement stmt, ClientMessage message, java.util.List<Completion> completions, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
readPacket
public Completion readPacket(ClientMessage message) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
readPacket
public Completion readPacket(Statement stmt, ClientMessage message, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion) throws java.sql.SQLException
Read server response packet.- Parameters:
stmt- current statement (null if internal)message- current messagefetchSize- default fetch sizeresultSetConcurrency- concurrencyresultSetType- typecloseOnCompletion- must resultset close statement on completion- Throws:
java.sql.SQLException- if any exception- See Also:
- server response packets
-
checkNotClosed
protected void checkNotClosed() throws java.sql.SQLException- Throws:
java.sql.SQLException
-
closeSocket
private void closeSocket()
-
getWaitTimeout
public int getWaitTimeout()
- Specified by:
getWaitTimeoutin interfaceClient
-
getContext
public Context getContext()
- Specified by:
getContextin interfaceClient
-
abort
public void abort(java.util.concurrent.Executor executor) throws java.sql.SQLException
-
getSocketTimeout
public int getSocketTimeout()
- Specified by:
getSocketTimeoutin interfaceClient
-
setSocketTimeout
public void setSocketTimeout(int milliseconds) throws java.sql.SQLException- Specified by:
setSocketTimeoutin interfaceClient- Throws:
java.sql.SQLException
-
close
public void close()
-
getExceptionFactory
public ExceptionFactory getExceptionFactory()
- Specified by:
getExceptionFactoryin interfaceClient
-
getHostAddress
public HostAddress getHostAddress()
- Specified by:
getHostAddressin interfaceClient
-
-