Class StandardClient

  • All Implemented Interfaces:
    AutoCloseable, org.mariadb.jdbc.client.Client
    Direct Known Subclasses:
    ReplayClient

    public class StandardClient
    extends Object
    implements org.mariadb.jdbc.client.Client, AutoCloseable
    Connection client
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void abort​(Executor executor)
      Abort current connection
      protected void checkNotClosed()
      Throw an exception if client is closed
      void close()
      Close client
      void closePrepare​(Prepare prepare)
      Close prepare command
      String createSessionVariableQuery​(String serverTz)
      Create session variable if configuration requires additional commands.
      protected void destroySocket()
      Closing socket in case of Connection error after socket creation.
      List<org.mariadb.jdbc.client.Completion> execute​(org.mariadb.jdbc.message.ClientMessage message, boolean canRedo)
      Send client message and read result
      List<org.mariadb.jdbc.client.Completion> execute​(org.mariadb.jdbc.message.ClientMessage message, Statement stmt, boolean canRedo)
      Send client message and read result
      List<org.mariadb.jdbc.client.Completion> execute​(org.mariadb.jdbc.message.ClientMessage message, Statement stmt, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion, boolean canRedo)
      Send client message and read result
      List<org.mariadb.jdbc.client.Completion> executePipeline​(org.mariadb.jdbc.message.ClientMessage[] messages, Statement stmt, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion, boolean canRedo)
      Send client messages pipelining and read result
      org.mariadb.jdbc.client.Context getContext()
      Get connection context
      ExceptionFactory getExceptionFactory()
      Get connection exception factory
      HostAddress getHostAddress()
      Get connection host
      int getSocketTimeout()
      get socket timeout
      boolean isClosed()
      Is client closed
      boolean isPrimary()
      is current client writer or read-only
      org.mariadb.jdbc.client.Completion readPacket​(org.mariadb.jdbc.message.ClientMessage message)
      Read a MySQL packet from socket
      org.mariadb.jdbc.client.Completion readPacket​(Statement stmt, org.mariadb.jdbc.message.ClientMessage message, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion)
      Read server response packet.
      void readResponse​(org.mariadb.jdbc.message.ClientMessage message)
      Read server response
      List<org.mariadb.jdbc.client.Completion> readResponse​(Statement stmt, org.mariadb.jdbc.message.ClientMessage message, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion)
      Read server responses for a client message
      void readStreamingResults​(List<org.mariadb.jdbc.client.Completion> completions, int fetchSize, long maxRows, int resultSetConcurrency, int resultSetType, boolean closeOnCompletion)
      Read results
      void reset()
      Reset connection
      int sendQuery​(org.mariadb.jdbc.message.ClientMessage message)
      Send client message to server
      void setReadOnly​(boolean readOnly)
      Switch to a writer/read-only connection, no effet on mono-connection
      void setSocketTimeout​(int milliseconds)
      Set socket timeout
    • Field Detail

      • context

        protected org.mariadb.jdbc.client.Context context
        connection context
      • exceptionFactory

        protected final ExceptionFactory exceptionFactory
        connection exception factory
      • writer

        protected Writer writer
        packet writer
    • Constructor Detail

      • StandardClient

        public StandardClient​(Configuration conf,
                              HostAddress hostAddress,
                              ReentrantLock lock,
                              boolean skipPostCommands)
                       throws SQLException
        Constructor
        Parameters:
        conf - configuration
        hostAddress - host
        lock - thread locker
        skipPostCommands - must connection post command be skipped
        Throws:
        SQLException - if connection fails
    • Method Detail

      • destroySocket

        protected void destroySocket()
        Closing socket in case of Connection error after socket creation.
      • createSessionVariableQuery

        public String createSessionVariableQuery​(String serverTz)
        Create session variable if configuration requires additional commands.
        Parameters:
        serverTz - server timezone
        Returns:
        sql setting session command
      • setReadOnly

        public void setReadOnly​(boolean readOnly)
                         throws SQLException
        Description copied from interface: org.mariadb.jdbc.client.Client
        Switch to a writer/read-only connection, no effet on mono-connection
        Specified by:
        setReadOnly in interface org.mariadb.jdbc.client.Client
        Parameters:
        readOnly - must use read-only connection
        Throws:
        SQLException - if any error occurs
      • sendQuery

        public int sendQuery​(org.mariadb.jdbc.message.ClientMessage message)
                      throws SQLException
        Send client message to server
        Parameters:
        message - client message
        Returns:
        number of command send
        Throws:
        SQLException - if socket error occurs
      • execute

        public List<org.mariadb.jdbc.client.Completion> execute​(org.mariadb.jdbc.message.ClientMessage message,
                                                                boolean canRedo)
                                                         throws SQLException
        Description copied from interface: org.mariadb.jdbc.client.Client
        Send client message and read result
        Specified by:
        execute in interface org.mariadb.jdbc.client.Client
        Parameters:
        message - client message
        canRedo - can client message be redone in case of failover
        Returns:
        results
        Throws:
        SQLException - if execution fails
      • execute

        public List<org.mariadb.jdbc.client.Completion> execute​(org.mariadb.jdbc.message.ClientMessage message,
                                                                Statement stmt,
                                                                boolean canRedo)
                                                         throws SQLException
        Description copied from interface: org.mariadb.jdbc.client.Client
        Send client message and read result
        Specified by:
        execute in interface org.mariadb.jdbc.client.Client
        Parameters:
        message - client message
        stmt - statement
        canRedo - can client message be redone in case of failover
        Returns:
        results
        Throws:
        SQLException - if execution fails
      • executePipeline

        public List<org.mariadb.jdbc.client.Completion> executePipeline​(org.mariadb.jdbc.message.ClientMessage[] messages,
                                                                        Statement stmt,
                                                                        int fetchSize,
                                                                        long maxRows,
                                                                        int resultSetConcurrency,
                                                                        int resultSetType,
                                                                        boolean closeOnCompletion,
                                                                        boolean canRedo)
                                                                 throws SQLException
        Description copied from interface: org.mariadb.jdbc.client.Client
        Send client messages pipelining and read result
        Specified by:
        executePipeline in interface org.mariadb.jdbc.client.Client
        Parameters:
        messages - client message
        stmt - statement
        fetchSize - fetch size
        maxRows - maximum number of rows. 0 = all
        resultSetConcurrency - concurrency
        resultSetType - result-set type
        closeOnCompletion - close statement on completion
        canRedo - can client message be redone in case of failover
        Returns:
        results
        Throws:
        SQLException - if any error occurs
      • execute

        public List<org.mariadb.jdbc.client.Completion> execute​(org.mariadb.jdbc.message.ClientMessage message,
                                                                Statement stmt,
                                                                int fetchSize,
                                                                long maxRows,
                                                                int resultSetConcurrency,
                                                                int resultSetType,
                                                                boolean closeOnCompletion,
                                                                boolean canRedo)
                                                         throws SQLException
        Description copied from interface: org.mariadb.jdbc.client.Client
        Send client message and read result
        Specified by:
        execute in interface org.mariadb.jdbc.client.Client
        Parameters:
        message - client message
        stmt - statement
        fetchSize - fetch size
        maxRows - maximum number of rows. 0 = all
        resultSetConcurrency - concurrency
        resultSetType - result-set type
        closeOnCompletion - close statement on completion
        canRedo - can client message be redone in case of failover
        Returns:
        results
        Throws:
        SQLException - if any error occurs
      • readResponse

        public List<org.mariadb.jdbc.client.Completion> readResponse​(Statement stmt,
                                                                     org.mariadb.jdbc.message.ClientMessage message,
                                                                     int fetchSize,
                                                                     long maxRows,
                                                                     int resultSetConcurrency,
                                                                     int resultSetType,
                                                                     boolean closeOnCompletion)
                                                              throws SQLException
        Read server responses for a client message
        Parameters:
        stmt - statement that issue the message
        message - client message sent
        fetchSize - fetch size
        maxRows - maximum number of rows
        resultSetConcurrency - concurrency
        resultSetType - result-set type
        closeOnCompletion - close statement on resultset completion
        Returns:
        list of result
        Throws:
        SQLException - if any error occurs
      • readResponse

        public void readResponse​(org.mariadb.jdbc.message.ClientMessage message)
                          throws SQLException
        Read server response
        Parameters:
        message - client message that was sent
        Throws:
        SQLException - if any error occurs
      • closePrepare

        public void closePrepare​(Prepare prepare)
                          throws SQLException
        Description copied from interface: org.mariadb.jdbc.client.Client
        Close prepare command
        Specified by:
        closePrepare in interface org.mariadb.jdbc.client.Client
        Parameters:
        prepare - prepare command
        Throws:
        SQLException - if any error occurs
      • readStreamingResults

        public void readStreamingResults​(List<org.mariadb.jdbc.client.Completion> completions,
                                         int fetchSize,
                                         long maxRows,
                                         int resultSetConcurrency,
                                         int resultSetType,
                                         boolean closeOnCompletion)
                                  throws SQLException
        Description copied from interface: org.mariadb.jdbc.client.Client
        Read results
        Specified by:
        readStreamingResults in interface org.mariadb.jdbc.client.Client
        Parameters:
        completions - List that will have the new results
        fetchSize - fetch size
        maxRows - maximum number of rows. 0 = all
        resultSetConcurrency - concurrency
        resultSetType - result-set type
        closeOnCompletion - close statement on completion
        Throws:
        SQLException - if any error occurs
      • readPacket

        public org.mariadb.jdbc.client.Completion readPacket​(org.mariadb.jdbc.message.ClientMessage message)
                                                      throws SQLException
        Read a MySQL packet from socket
        Parameters:
        message - client message issuing the result
        Returns:
        a mysql result
        Throws:
        SQLException - if any error occurs
      • readPacket

        public org.mariadb.jdbc.client.Completion readPacket​(Statement stmt,
                                                             org.mariadb.jdbc.message.ClientMessage message,
                                                             int fetchSize,
                                                             long maxRows,
                                                             int resultSetConcurrency,
                                                             int resultSetType,
                                                             boolean closeOnCompletion)
                                                      throws SQLException
        Read server response packet.
        Parameters:
        stmt - current statement (null if internal)
        message - current message
        fetchSize - default fetch size
        maxRows - maximum row number
        resultSetConcurrency - concurrency
        resultSetType - type
        closeOnCompletion - must resultset close statement on completion
        Returns:
        Completion
        Throws:
        SQLException - if any exception
        See Also:
        server response packets
      • checkNotClosed

        protected void checkNotClosed()
                               throws SQLException
        Throw an exception if client is closed
        Throws:
        SQLException - if closed
      • isClosed

        public boolean isClosed()
        Description copied from interface: org.mariadb.jdbc.client.Client
        Is client closed
        Specified by:
        isClosed in interface org.mariadb.jdbc.client.Client
        Returns:
        close flag
      • getContext

        public org.mariadb.jdbc.client.Context getContext()
        Description copied from interface: org.mariadb.jdbc.client.Client
        Get connection context
        Specified by:
        getContext in interface org.mariadb.jdbc.client.Client
        Returns:
        connection context
      • abort

        public void abort​(Executor executor)
                   throws SQLException
        Description copied from interface: org.mariadb.jdbc.client.Client
        Abort current connection
        Specified by:
        abort in interface org.mariadb.jdbc.client.Client
        Parameters:
        executor - executor
        Throws:
        SQLException - if any error occurs
      • getSocketTimeout

        public int getSocketTimeout()
        Description copied from interface: org.mariadb.jdbc.client.Client
        get socket timeout
        Specified by:
        getSocketTimeout in interface org.mariadb.jdbc.client.Client
        Returns:
        socket timeout
      • setSocketTimeout

        public void setSocketTimeout​(int milliseconds)
                              throws SQLException
        Description copied from interface: org.mariadb.jdbc.client.Client
        Set socket timeout
        Specified by:
        setSocketTimeout in interface org.mariadb.jdbc.client.Client
        Parameters:
        milliseconds - timeout
        Throws:
        SQLException - if any error occurs
      • close

        public void close()
        Description copied from interface: org.mariadb.jdbc.client.Client
        Close client
        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface org.mariadb.jdbc.client.Client
      • isPrimary

        public boolean isPrimary()
        Description copied from interface: org.mariadb.jdbc.client.Client
        is current client writer or read-only
        Specified by:
        isPrimary in interface org.mariadb.jdbc.client.Client
        Returns:
        is primary
      • getExceptionFactory

        public ExceptionFactory getExceptionFactory()
        Description copied from interface: org.mariadb.jdbc.client.Client
        Get connection exception factory
        Specified by:
        getExceptionFactory in interface org.mariadb.jdbc.client.Client
        Returns:
        connection exception factory
      • getHostAddress

        public HostAddress getHostAddress()
        Description copied from interface: org.mariadb.jdbc.client.Client
        Get connection host
        Specified by:
        getHostAddress in interface org.mariadb.jdbc.client.Client
        Returns:
        connection host
      • reset

        public void reset()
        Description copied from interface: org.mariadb.jdbc.client.Client
        Reset connection
        Specified by:
        reset in interface org.mariadb.jdbc.client.Client