From: Date: July 2 2007 4:18pm Subject: Connector/J 5.1.2 Beta Released List-Archive: http://lists.mysql.com/mysql/207831 Message-Id: <008e01c7bcb3$cf0be6a0$9c1da8c0@marksworkbox> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi,=20 MySQL Connector/J 5.1.2 beta, a new version of the Type-IV pure-Java = JDBC driver for MySQL has been released.=20 Version 5.1.2 is suitable for use with any MySQL version including = MySQL-4.1, MySQL-5.0, MySQL-5.1 beta or the MySQL-6.0 Falcon alpha = release. It is now available in source and binary form from the Connector/J = download pages at=20 http://dev.mysql.com/downloads/connector/j/5.1.html and mirror sites (note that not all mirror sites may be up to date at = this point of time - if you can't find this version on some mirror, = please try again later or choose another download site.) As always, we recommend that you check the change log http://dev.mysql.com/doc/refman/5.0/en/cj-news.html=20 and "Upgrading" sections=20 http://dev.mysql.com/doc/refman/5.0/en/cj-upgrading.html=20 in the manual before upgrading as well as the "CHANGES" file in the = download archive to be aware of changes in behavior that might affect = your application.=20 We welcome and appreciate your feedback, bug reports, bug fixes, patches = etc.: http://forge.mysql.com/wiki/Contributing This is the first beta release of our implementation of the new JDBC-4.0 = API, along with some new performance features. This beta release, as any other pre-production release, should not be = installed on production level systems or systems with critical data. It = is good practice to back up your data before installing any new version = of software. Although MySQL has worked very hard to ensure a high level = of quality, protect your data by making a backup as you would for any = other software pre-production release. MySQL Connector/J 5.1.2 includes the following new feature compared to = 5.1.1: * Setting the configuration property "rewriteBatchedStatements" to = "true" will now cause the driver to rewrite batched prepared statements = with more than 3 parameter sets in a batch into multi-statements = (separated by ";") if they are not plain (i.e. without SELECT or ON = DUPLICATE KEY UPDATE clauses) INSERT or REPLACE statements. The following features are new, compared to the 5.0 series of = Connector/J: * JDBC-4.0 ease-of-development features including auto-registration = with the DriverManager via the service provider mechanism, standardized = Connection validity checks and categorized SQLExceptions based on = recoverability/retry-ability and class of the underlying error.=20 * JDBC-4.0 standardized unwrapping to interfaces that include vendor = extensions=20 * Support for JDBC-4.0 XML processing via JAXP interfaces to DOM, SAX = and StAX=20 * JDBC-4.0 support for setting per-connection client information = (which can be viewed in the comments section of a query via "SHOW = PROCESSLIST" on a MySQL server, or can be extended to support custom = persistence of the information via a public interface)=20 * Support for JDBC-4.0 NCHAR, NVARCHAR and NCLOB types=20 * The driver will automatically adjust the server session variable = "net_write_timeout" when it determines its been asked for a "streaming" = result, and resets it to the previous value when the result set has been = consumed. (The configuration property is named = "netTimeoutForStreamingResults", with a unit of seconds, the value '0' = means the driver will not try and adjust this value). * Added experimental support for statement "interceptors" via the = com.mysql.jdbc.StatementInterceptor interface, examples are in = com/mysql/jdbc/interceptors. Implement this interface to be placed "in = between" query execution, so that it can be influenced (currently = experimental). * The data (and how it's stored) for ResultSet rows are now behind an = interface which allows us (in some cases) to allocate less memory per = row, in that for "streaming" result sets, we re-use the packet used to = read rows, since only one row at a time is ever active. * The driver now picks appropriate internal row representation (whole = row in one buffer, or individual byte[]s for each column value) = depending on heuristics, including whether or not the row has BLOB or = TEXT types and the overall row-size. The threshold for row size that = will cause the driver to use a buffer rather than individual byte[]s is = configured by the configuration property "largeRowSizeThreshold", which = has a default value of 2KB. * Setting "rewriteBatchedStatements" to "true" now causes = CallableStatements with batched arguments to be re-written in the form = "CALL (...); CALL (...); ..." to send the batch in as few client-server = round trips as possible. =20 This release also includes the following cahnges that are also present = in Connector/J 5.0.7 (not yet released): * Setting the configuration parameter "useCursorFetch" to "true" for = MySQL-5.0+ enables the use of cursors that allow Connector/J to save = memory by fetching result set rows in chunks (where the chunk size is = set by calling setFetchSize() on a Statement or ResultSet) by using = fully-materialized cursors on the server.=20 =20 The driver will will now automatically set "useServerPrepStmts" to = "true" when "useCursorFetch" has been set to "true", since the = feature=20 requires server-side prepared statements in order to function. =20 * Fixed BUG#28469 - PreparedStatement.getMetaData() for statements = containing leading one-line comments is not returned correctly. As part of this fix, we also overhauled detection of DML for = executeQuery() and SELECTs for executeUpdate() in plain and prepared = statements to be aware of the same types of comments. * Added configuration property "useNanosForElapsedTime" - for = profiling/debugging functionality that measures elapsed time, should the = driver try to use nanoseconds resolution if available (requires JDK = >=3D 1.5)? =20 * Added configuration property "slowQueryThresholdNanos" - if = "useNanosForElapsedTime" is set to "true", and this property is set to a = non-zero value the driver will use this threshold (in nanosecond = units) to determine if a query was slow, instead of using millisecond = units. =20 Note, that if "useNanosForElapsedTime" is set to "true", and this = property is set to "0" (or left default), then elapsed times will still = be measured in nanoseconds (if possible), but the slow query threshold = will be converted from milliseconds to nanoseconds, and thus have an = upper bound of approximately 2000 millesconds (as that threshold is = represented as an integer, not a long). =20 * Added configuration properties to allow tuning of TCP/IP socket = parameters: =20 "tcpNoDelay" - Should the driver set SO_TCP_NODELAY (disabling the=20 Nagle Algorithm, default "true")? =09 "tcpKeepAlive" - Should the driver set SO_KEEPALIVE (default "true")? =09 "tcpRcvBuf" - Should the driver set SO_RCV_BUF to the given value? The default value of '0', means use the platform default = value for this property. =09 "tcpSndBuf" - Should the driver set SO_SND_BUF to the given value? The default value of '0', means use the platform default = value for this property. =09 "tcpTrafficClass" - Should the driver set traffic class or=20 type-of-service fields? See the documentation=20 for java.net.Socket.setTrafficClass() for more=20 information. =20 * Give more information in EOFExceptions thrown out of MysqlIO (how = many bytes the driver expected to read, how many it actually read, say = that communications with the server were unexpectedly lost). =20 * Setting "useDynamicCharsetInfo" to "false" now causes driver to use = static lookups for collations as well (makes = ResultSetMetadata.isCaseSensitive() much more efficient, which leads to = performance increase for ColdFusion, which calls this method for every = column on every table it sees, it appears). =20 * Driver detects when it is running in a ColdFusion MX server (tested = with version 7), and uses the configuration bundle "coldFusion", which = sets useDynamicCharsetInfo to "false" (see previous entry), and sets = useLocalSessionState and autoReconnect to "true". * Fixed BUG#28851 - parser in client-side prepared statements silently = consumes character following '/' if it's not a multi-line comment. =20 * Fixed BUG#28596 - parser in client-side prepared statements runs to = end of statement, rather than end-of-line for '#' comments. Also added = support for '--' single-line comments. Enjoy! -Mark - -- Mark Matthews, Architect (Client Connectivity)=20 MySQL, Inc. Chicago, USA - www.mysql.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (MingW32) iD8DBQFGiQkZtvXNTca6JD8RAiiyAJ0Ww4tH/oIgs0UJbz1kvNAPQIezHwCglLA0 J49ePyY0KDAfWPA7l+tiLHY=3D =3DmSRh -----END PGP SIGNATURE-----