Re: Communications link failure due to underlying exception...various network exceptions
Posted by: Mark Matthews
Date: February 13, 2007 02:47PM

mreichman Wrote:
[snip]
> I'll try that out, thanks. We have a mix of both
> of those types, so it's worth looking at.
> Side note: This machine was on public net and had
> MySQL exposed. I firewalled it better yesterday,
> and so far things are smooth. It's hard to tell
> with one day, but could attempted malicious
> traffic knock it offline?

If they got the server to crash, maybe. It's hard to say.

[snip]
> That's great news. Besides the hibernate fix
> mentioned on the changes page and the option
> default change, are there any other major changes?

The changes page in the manual gets updated at the release of 5.0.5, here's the current changelog (or you could look at it in the Subversion repository at svn.mysql.com/connector-j/branches/branch_5_0):

02-nn-07 - Version 5.0.5

- Fixed BUG#23645 - Some collations/character sets reported as "unknown"
(specifically cias variants of existing character sets), and inability to override
the detected server character set.

- Performance enhancement of initial character set configuration, driver
will only send commands required to configure connection character set
session variables if the current values on the server do not match
what is required.

- Usage advisor now detects "empty" result sets and doesn't report on
columns not referenced in them.

- Fixed BUG#24360 .setFetchSize() breaks prepared SHOW and other commands.

- Fixed BUG#24344 - useJDBCCompliantTimezoneShift with server-side prepared
statements gives different behavior than when using client-side prepared
statements. (this is now fixed if moving from server-side prepared statements
to client-side prepared statements by setting "useSSPSCompatibleTimezoneShift" to
true", as the driver can't tell if this is a new deployment that never used
server-side prepared statements, or if it is an existing deployment that is
switching to client-side prepared statements from server-side prepared statements.

- Fixed BUG#23304 - DBMD using "show" and DBMD using information_schema do
not return results consistent with each other. (note this fix only
addresses the inconsistencies, not the issue that the driver is
treating schemas differently than some users expect. We will revisit
this behavior when there is full support for schemas in MySQL).

- Fixed BUG#25073 - rewriting batched statements leaks internal statement
instances, and causes a memory leak.

- Fixed issue where field-level for metadata from DatabaseMetaData when using
INFORMATION_SCHEMA didn't have references to current connections,
sometimes leading to NullPointerExceptions when intropsecting them via
ResultSetMetaData.

- Fixed BUG#25025 - Client-side prepared statement parser gets confused by
in-line (/* ... */) comments and therefore can't rewrite batched statements
or reliably detect type of statements when they're used.

- Fixed BUG#24065 - Better error message when server doesn't return enough
information to determine stored procedure/function parameter types.

- Fixed BUG#21438 - Driver sending nanoseconds to server for timestamps when
using server-side prepared statements, when server expects microseconds.

- Fixed BUG#25514 - Timer instance used for Statement.setQueryTimeout()
created per-connection, rather than per-VM, causing memory leak.

- Fixed BUG#25009 - Results from updates not handled correctly in
multi-statement queries, leading to erroneous "Result is from UPDATE"
exceptions.

- Fixed BUG#25047 - StringUtils.indexOfIgnoreCaseRespectQuotes() isn't
case-insensitive on the first character of the target. This bug broke
rewriteBatchedStatements functionality when prepared statements don't
use upper-case for the VALUES clause in their statements.

- Fixed BUG#21480 - Some exceptions thrown out of StandardSocketFactory
were needlessly wrapped, obscurring their true cause, especially when
using socket timeouts.

- Fixed BUG#23303 - DatabaseMetaData.getSchemas() doesn't return a
TABLE_CATALOG column.

- Fixed BUG#25399 - EscapeProcessor gets confused by multiple
backslashes. We now push the responsibility of syntax errors back
on to the server for most escape sequences.

- Fixed BUG#25379 - INOUT parameters in CallableStatements get
doubly-escaped.

- Removed non-short-circuited logical ORs from "if" statements.

- Re-worked stored procedure parameter parser to be more robust. Driver no
longer requires "BEGIN" in stored procedure definition, but does have
requirement that if a stored function begins with a label directly after the
"returns" clause, that the label is not a quoted identifier.

- Reverted back to internal character conversion routines for single-byte
character sets, as the ones internal to the JVM are using much more CPU
time than our internal implementation.

- Changed cached result set metadata (when using
"cacheResultSetMetadata=true") to be cached per-connection rather
than per-statement as previously implemented.

- Use a java.util.TreeMap to map column names to ordinal indexes for
ResultSet.findColumn() instead of a HashMap. This allows us to have
case-insensitive lookups (required by the JDBC specification) without
resorting to the many transient object instances needed to support this
requirement with a normal HashMap with either case-adjusted keys, or
case-insensitive keys. (In the worst case scenario for lookups of a 1000
column result set, TreeMaps are about half as fast wall-clock time as
a HashMap, however in normal applications their use gives many orders
of magnitude reduction in transient object instance creation which pays
off later for CPU usage in garbage collection).

- Avoid static synchronized code in JVM class libraries for dealing with
default timezones.

- Fixed cases where ServerPreparedStatements weren't using cached metadata
when "cacheResultSetMetadata=true" was configured.

- Use faster datetime parsing for ResultSets that come from plain or
non-server-side prepared statements. (Enable old implementation with
"useFastDateParsing=false" as a configuration parameter).

- Fixed BUG#24794 - DatabaseMetaData.getSQLKeywords() doesn't return
all reserved words for current MySQL version. The current fix/implementation
returns keywords for MySQL-5.1, and doesn't distinguish between different
versions of the server.

- When using cached metadata, skip field-level metadata packets coming from
the server, rather than reading them and discarding them without creating
com.mysql.jdbc.Field instances.

- Fixed BUG#25836 - Statement execution which timed out doesn't always
throw MySQLTimeoutException.

- Throw exceptions encountered during timeout to thread
calling Statement.execute*(), rather than RuntimeException.

- Added configuration property "localSocketAddress",which is the hostname or
IP address given to explicitly configure the interface that the driver will
bind the client side of the TCP/IP connection to when connecting.

- Take "localSocketAddress" property into account when creating instances
of CommunicationsException when the underyling exception is a
java.net.BindException, so that a friendlier error message is given with
a little internal diagnostics.

- Fixed some NPEs when cached metadata was used with UpdatableResultSets.

- The "rewriteBatchedStatements" feature can now be used with server-side
prepared statements.

- Fixed BUG#26326 - Connection property "socketFactory" wasn't exposed via
correctly named mutator/accessor, causing data source implementations that
use JavaBean naming conventions to set properties to fail to set the property
(and in the case of SJAS, fail silently when trying to set this parameter).

- Fixed BUG#25787 - java.util.Date should be serialized for
PreparedStatement.setObject().

We've added a new configuration option "treatUtilDateAsTimestamp", which is
false by default, as (1) We already had specific behavior to treat
java.util.Date as a java.sql.Timestamp because it's useful to many folks,
and (2) that behavior will very likely be required for drivers JDBC-post-4.0.

Mark Matthews
Consulting Member Technical Staff - MySQL Enterprise Tools
Oracle
http://www.mysql.com/products/enterprise/monitor.html

Options: ReplyQuote


Subject
Written By
Posted
Re: Communications link failure due to underlying exception...various network exceptions
February 13, 2007 02:47PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.