MySQL Blog Archive
For the latest blogs go to blogs.oracle.com/mysql
MySQL Connector/C++ 8.0.24 has been released

Dear MySQL users,

MySQL Connector/C++ 8.0.24 is a new release version of the MySQL
Connector/C++ 8.0 series.

Connector/C++ 8.0 can be used to access MySQL implementing Document
Store or in a traditional way, using SQL queries. It allows writing
both C++ and plain C applications using X DevAPI and X DevAPI for C.
It also supports the legacy API of Connector/C++ 1.1 based on JDBC4.

To learn more about how to write applications using X DevAPI, see
“X DevAPI User Guide” at

https://dev.mysql.com/doc/x-devapi-userguide/en/

See also “X DevAPI Reference” at

https://dev.mysql.com/doc/dev/connector-cpp/devapi_ref.html

and “X DevAPI for C Reference” at

https://dev.mysql.com/doc/dev/connector-cpp/xapi_ref.html

For generic information on using Connector/C++ 8.0, see

https://dev.mysql.com/doc/dev/connector-cpp/

For general documentation about how to get started using MySQL
as a document store, see

http://dev.mysql.com/doc/refman/8.0/en/document-store.html

To download MySQL Connector/C++ 8.0.24, see the “General Availability (GA)
Releases” tab at

https://dev.mysql.com/downloads/connector/cpp/

Changes in MySQL Connector/C++ 8.0.24 (2021-04-20, General
Availability)

Connection Management Notes

   * Previously, for client applications that use the legacy
     JDBC API (that is, not X DevAPI or X DevAPI for C), if
     the connection to the server was not used within the
     period specified by the wait_timeout system variable and
     the server closed the connection, the client received no
     notification of the reason. Typically, the client would
     see Lost connection to MySQL server during query
     (CR_SERVER_LOST) or MySQL server has gone away
     (CR_SERVER_GONE_ERROR).
     In such cases, the server now writes the reason to the
     connection before closing it, and client receives a more
     informative error message, The client was disconnected by
     the server because of inactivity. See wait_timeout and
     interactive_timeout for configuring this behavior.
     (ER_CLIENT_INTERACTION_TIMEOUT).
     The previous behavior still applies for client
     connections to older servers and connections to the
     server by older clients.

   * For connections made using X Plugin, if client with a
     connection to a server remains idle (not sending to the
     server) for longer than the relevant X Plugin timeout
     setting (read, write, or wait timeout), X Plugin closes
     the connection. If any of these timeouts occur, the
     plugin returns a warning notice with the error code
     ER_IO_READ_ERROR to the client application.
     For such connections, X Plugin now also sends a warning
     notice if a connection is actively closed due to a server
     shutdown, or by the connection being killed from another
     client session. In the case of a server shutdown, the
     warning notice is sent to all authenticated X Protocol
     clients with open connections, with the
     ER_SERVER_SHUTDOWN error code. In the case of a killed
     connection, the warning notice is sent to the relevant
     client with the ER_SESSION_WAS_KILLED error code, unless
     the connection was killed during SQL execution, in which
     case a fatal error is returned with the
     ER_QUERY_INTERRUPTED error code.
     If connection pooling is used and a connection close
     notice is received in a session as a result of a server
     shutdown, all other idle sessions that are connected to
     the same endpoint are removed from the pool.
     Client applications can use the warning notices to
     display to users, or to analyze the reason for
     disconnection and decide whether to attempt reconnection
     to the same server, or to a different server.

Packaging Notes

   * Connector/C++ packages now include sasl2 modules due to
     connection failures for accounts that use the
     authentication_ldap_sasl authentication plugin. (Bug
     #32175836)

Bugs Fixed

   * Upon connecting to the server, Connector/C++ executed a
     number of SHOW [SESSION] VARIABLES statements to retrieve
     system variable values. Such statements involve locking
     in the server, so they are now avoided in favor of SELECT
     @@var_name statements.
     Additionally, Connector/C++ was trying to fetch the value
     of the max_statement_time system variable, which has been
     renamed to max_execution_time. Connector/C++ now uses the
     correct variable name, with the result that
     getQueryTimeout() and setQueryTimeout() now work properly
     for both Statement and Prepared Statement objects. (Bug
     #28928712, Bug #93201)

   * DatabaseMetaData.getProcedures() failed when the
     metadataUseInfoSchema connection option was false. (Bug
     #24371558)

On Behalf of the Oracle/MySQL Engineering Team,
Tvarita Jain