c3p0 для тестирования соединений, занимающих слишком много времени

#jdbc #c3p0

#jdbc #c3p0

Вопрос:

В моем случае для тестирования соединения c3p0 требуется слишком много времени при выполнении запроса

 SHOW FULL TABLES FROM `xyz` LIKE 'PROBABLYNOT'
  

пока я использую mysql connector версии 5.1.25. есть драйвер, поддерживающий JDBC 4.
поскольку я ссылался на одну ссылку
http://www.mchange.com/projects/c3p0/#configuring_connection_testing

где упоминается, что

Если вы используете драйвер JDBC, который, как вы уверены, поддерживает новый (ish) API JDBC 4, ничего не делайте. Соединения JDBC 4 включают метод с именем isValid(), который должен быть реализован как быстрый и надежный тест соединения. По умолчанию c3p0 будет использовать этот метод, если он присутствует.

итак, мой вопрос в том, как я узнал, что используется именно метод isvalid () и какой запрос выполняется, когда c3p0 вызывает этот метод.

Ответ №1:

Показанный вами запрос определенно вытекает из теста медленного соединения c3p0 по умолчанию.

Документы, которые вы используете, предназначены для последней версии c3p0, 0.9.5-pre8. Возможно, вы используете недостаточно свежую версию. (Я должен поместить примечание в документы, указывающее на это.)

Итак … либо обновитесь до 0.9.5-pre8 (это высококачественное решение, очень близкое к выпуску), либо укажите эффективный preferredTestQuery параметр конфигурации ( SELECT 1 кажется, работает для MySQL.)

Комментарии:

1. спасибо. я обновил его до 0.9.5-pre8, и он работает. 🙂