D.6.1.4. Changes in MySQL Connector/J 5.1.11 (21 January 2010)

Fixes bugs found since release 5.1.10.

Functionality added or changed:

  • Replication connections, those with URLs that start with jdbc:mysql:replication, now use a jdbc:mysql:loadbalance connection for the slave pool. This means that it is possible to set load balancing properties such as loadBalanceBlacklistTimeout and loadBalanceStrategy to choose a mechanism for balancing the load, and failover or fault tolerance strategy for the slave pool. (Bug#49537)

Bugs fixed:

  • NullPointerException sometimes occurred in invalidateCurrentConnection() for load-balanced connections. (Bug#50288)

  • The deleteRow method caused a full table scan, when using an updatable cursor and a multibyte character set. (Bug#49745)

  • For pooled connections, Connector/J did not process the session variable time_zone when set using the URL, resulting in incorrect timestamp values being stored. (Bug#49700)

  • The ExceptionInterceptor class did not provide a Connection context. (Bug#49607)

  • Ping left closed connections in the liveConnections map, causing subsequent Exceptions when that connection was used. (Bug#48605)

  • Using MysqlConnectionPoolDataSource with a load-balanced URL generated exceptions of type ClassCastException:

    ClassCastException in MysqlConnectionPoolDataSource
    Caused by: java.lang.ClassCastException: $Proxy0
       at
    com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource.getPooledConnection(MysqlConne
    ctionPoolDataSource.java:80)
    
    java.lang.ClassCastException: $Proxy2
     at com.mysql.jdbc.jdbc2.optional.StatementWrapper.executeQuery(StatementWrapper.java:744)
    

    (Bug#48486)

  • The implementation for load-balanced Connection used a proxy, which delegated method calls, including equals() and hashCode(), to underlying Connection objects. This meant that successive calls to hashCode() on the same object potentially returned different values, if the proxy state had changed such that it was utilizing a different underlying connection. (Bug#48442)

  • The batch rewrite functionality attempted to identify the start of the VALUES list by looking for “VALUES ” (with trailing space). However, valid MySQL syntax permits VALUES to be followed by whitespace or an opening parenthesis:

    INSERT INTO tbl VALUES
    (1);
    
    INSERT INTO tbl VALUES(1);
    

    Queries written with the above formats did not therefore gain the performance benefits of the batch rewrite. (Bug#48172)

  • A PermGen memory leaked was caused by the Connector/J statement cancellation timer (java.util.Timer). When the application was unloaded the cancellation timer did not terminate, preventing the ClassLoader from being garbage collected. (Bug#36565)

  • With the connection string option noDatetimeStringSync set to true, and server-side prepared statements enabled, the following exception was generated if an attempt was made to obtain, using ResultSet.getString(), a datetime value containing all zero components:

    java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date
    

    (Bug#32525)

Copyright © 2010-2024 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout