2013-08-02 3 views
0

Мы используем весну, jpa, hibernate, oracle и java для нашего веб-приложения. При развертывании нашего веб-приложения он использует определенное количество соединений из БД. Поэтому мне нужно найти следующиеЧисло соединений DB с использованием

  1. Общего количества доступного соединения
  2. количества соединения в настоящее время с помощью
  3. количества свободного соединения.

Возможно ли это? Любая помощь приветствуется. Заранее спасибо. Когда я смотрю в сети, у меня возникла идея найти выше в oracle db в качестве привилегированного администратора. Но мне нужно сделать это в нашем приложении или во внешней программе.

+1

Вы используете пул соединений? Если нет, количество соединений равно числу раз, когда Hibernate вызывает 'DataSource # getConnection()' и не закрывает результирующий объект 'Connection'. –

+1

мы используем ComboPooledDataSource – MGPJ

+0

Тогда количество подключений зависит от конфигурации. Какова максимальная настройка соединений? –

ответ

0

Вы используете пул соединений, поэтому максимальное количество подключений указано в настройках вашей конфигурации.

Предполагая, что все сеансы с использованием одного имени пользователя и что никакие другие сеансы не использовать то же имя пользователя

select count(*) 
    from gv$session 
where username = <<username your application is using>> 

покажет вам, сколько сеансов в настоящее время открыты.

Я не совсем уверен, что для вас означает, что соединение будет «бесплатным» в этом контексте. Мое предположение заключалось бы в том, чтобы вычесть количество открытых сеансов из настроенного максимального количества сеансов, но я не уверен, что это то, что вам нужно или нет.

Смежные вопросы