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 boolean
closed
private MutableInt
compressionSequence
private Configuration
conf
protected Context
context
private boolean
disablePipeline
protected ExceptionFactory
exceptionFactory
private HostAddress
hostAddress
private java.util.concurrent.locks.ReentrantLock
lock
private static Logger
logger
private PacketReader
reader
private MutableInt
sequence
private java.net.Socket
socket
private int
socketTimeout
private ClientMessage
streamMsg
private Statement
streamStmt
private int
waitTimeout
protected PacketWriter
writer
-
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 void
abort(java.util.concurrent.Executor executor)
private void
assignStream(java.io.OutputStream out, java.io.InputStream in, Configuration conf, java.lang.Long threadId)
protected void
checkNotClosed()
void
close()
void
closePrepare(PrepareResultPacket prepare)
private void
closeSocket()
java.lang.String
createSessionVariableQuery(java.lang.String serverTz)
protected void
destroySocket()
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)
Context
getContext()
ExceptionFactory
getExceptionFactory()
HostAddress
getHostAddress()
int
getSocketTimeout()
int
getWaitTimeout()
private java.lang.String
handleTimezone()
load server timezone and ensure this corresponds to client timezoneboolean
isClosed()
boolean
isPrimary()
private void
postConnectionQueries()
Completion
readPacket(ClientMessage message)
Completion
readPacket(Statement stmt, ClientMessage message, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion)
Read server response packet.void
readResponse(ClientMessage message)
java.util.List<Completion>
readResponse(Statement stmt, ClientMessage message, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion)
private void
readResults(Statement stmt, ClientMessage message, java.util.List<Completion> completions, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion)
void
readStreamingResults(java.util.List<Completion> completions, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion)
void
reset()
int
sendQuery(ClientMessage message)
void
setReadOnly(boolean readOnly)
void
setSocketTimeout(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.SQLException
load 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:
setReadOnly
in 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:
executePipeline
in 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:
closePrepare
in 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:
readStreamingResults
in 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:
getWaitTimeout
in interfaceClient
-
getContext
public Context getContext()
- Specified by:
getContext
in interfaceClient
-
abort
public void abort(java.util.concurrent.Executor executor) throws java.sql.SQLException
-
getSocketTimeout
public int getSocketTimeout()
- Specified by:
getSocketTimeout
in interfaceClient
-
setSocketTimeout
public void setSocketTimeout(int milliseconds) throws java.sql.SQLException
- Specified by:
setSocketTimeout
in interfaceClient
- Throws:
java.sql.SQLException
-
close
public void close()
-
getExceptionFactory
public ExceptionFactory getExceptionFactory()
- Specified by:
getExceptionFactory
in interfaceClient
-
getHostAddress
public HostAddress getHostAddress()
- Specified by:
getHostAddress
in interfaceClient
-
-