c3p0 ComboPooledDataSource сообщает, самый большой размер пула? - PullRequest
1 голос
/ 14 августа 2011

Я реализую некоторые отчеты по времени выполнения для моего веб-приложения, которое использует c3p0 ComboPooledDataSource. Мне интересно, есть ли способ программно получить наибольшее количество соединений, которые когда-либо были в пуле до сих пор. Что-то с тем же эффектом, что и ThreadPoolExecutor.getLargestPoolSize () .

Я вижу несколько способов создания отчетов на ComboPooledDataSource, но мне не удалось найти что-то подобное. Не помогло, что нет никаких (значимых) javadocs c3p0.

1 Ответ

0 голосов
/ 15 августа 2011

Я искал API и ничего не смог найти.Вот мой простой обходной путь:

static final ComboPooledDataSource dataSource = new ComboPooledDataSource();

static volatile int largestPoolSize = 0;

public static Connection getConnection() throws SQLException {
    Connection connection = dataSource.getConnection();
    updateLargestPoolSize();
    return connection;
}

private static void updateLargestPoolSize() throws SQLException {
    int numConnections = dataSource.getNumConnections();
    if (numConnections > largestPoolSize) {
        largestPoolSize = numConnections;
    }
}

Если кто-то может предложить что-то более сложное, пожалуйста, напишите.

...