We're updating the issue view to help you get more done. 

Support optimized "/* ping */" queries as in Connector/J

Description

Connector/J supports an optimized "/* ping */" query for validating a
connection when you retrieve a connection out of a connection
pool. This allows you to perform a ping operation at the mysql
protocol layer, without having to actually execute a query like
"select 1" (which in heavy applications may be too much
overhead). This is also documented in a presentation that Mark
Matthews once gave about high-performance with Connector/J, but I
can't seem to find that presentation right now.

This is documented in:

http://dev.mysql.com/doc/refman/5.5/en/connector-j-usagenotes-j2ee-concepts-connection-pooling.html

This is something that you would typically use in validationQuery
parameter in a Tomcat DataSource, but unfortunately, they didn't put
it like that in the Connector/J manual

http://dev.mysql.com/doc/refman/5.5/en/connector-j-usagenotes-tomcat.html

The attached patch implements this also in the MariaDB Java
Client. The patch is sufficient to make this work for the data sources
that I use:

  • JBoss 4.0.5

  • Apache Commons Database Pool (DBCP) 1.4. DBCP is also the underlying
    connection pool library in Tomcat.

The patch does not implement this optimization for prepared
statements, only for normal statements.

Environment

None

Status

Assignee

Diego Dupin

Reporter

Davy Davy

Components

Fix versions

Affects versions

1.1.3

Priority

Minor