Вопросы по C3P0 Pooled Data Source - PullRequest
       2

Вопросы по C3P0 Pooled Data Source

5 голосов
/ 23 сентября 2011

Я пытался использовать источник данных пула для записи информации о пуле соединений с базой данных, т. Е. Максимальный размер пула, текущий номер.используемых соединений, занятых соединений и т. д. Я использую C3P0Registry , чтобы получить объединенный источник данных.

PooledDataSource dataSource =null;
    try{
        C3P0Registry.getNumPooledDataSources();
        //I am sure that I am using only one data source
        Iterator<Set> connectionIterator = C3P0Registry.getPooledDataSources().iterator();
        dataSource = (PooledDataSource)connectionIterator.next();
    }catch (Exception e) {
    }

и затем я записываю требуемую информацию как:

Logger.write(LoggerConstant.DEBUG, " Connections in use: "+dataSource.getNumConnectionsAllUsers()+" , Busy Connections: "+dataSource.getNumBusyConnectionsAllUsers() +" , Idle Connections: "+ dataSource.getNumIdleConnectionsAllUsers()+" , Unclosed Orphaned Connections: "+ dataSource.getNumUnclosedOrphanedConnectionsAllUsers(), methodName);

Я хочу знать, что если это правильный путь для достижения моей цели ?.
Плюс у меня путаница в отношении того, что dataSource.getNumConnectionsAllUsers () и другие функции (я использую) точно возвращают.В javadoc нет описания.

Есть ли какое-либо описание или учебное пособие, доступное в Интернете, где я могу узнать больше об этих конкретных функциях?

Среда : Java, Hibernate, C3P0, MySQL

1 Ответ

2 голосов
/ 26 сентября 2011

попробуйте прочитать PooledDataSource Java документ.http://www.mchange.com/projects/c3p0/apidocs/com/mchange/v2/c3p0/PooledDataSource.html

PooledDataSource.getXXXXUser () является правильным способом мониторинга и управления источником данных

Функциональность этого интерфейса будет интересна только в том случае, если

  1. по административным причинам вы хотите внимательно следить за количеством и состоянием всех подключений, которые использует ваше приложение;

  2. дляобойти проблемы, возникающие при управлении источником данных, чьи клиенты являются плохо закодированными приложениями, которые пропускают соединения, но которые вы не можете исправить;

  3. , чтобы обойти проблемы, которые могут возникнуть, если базовый драйвер jdbc / система СУБД ненадежны..

также Описание имен методов доступно в javadoc.

см. Имена методов ... раздел

Многие методы в этом интерфейсе имеют три варианта:

  1. <имя-метода> DefaultUser ()
  2. <имя-метода> (имя пользователя строки, пароль строки)
  3. AllUsers ()

В первом варианте используется пул, поддерживаемый для пользователя по умолчанию - Соединения, созданные с помощью вызовов без аргумента getConnection (), второй вариант позволяетвы отслеживаете пулы, созданные с помощью вызова getConnection (имя пользователя, пароль), а третий вариант предоставляет сводную информацию или выполняет операции со всеми пулами.

...