Есть ли разница между количеством соединений jdbc, уничтоженных и выпущенных обратно в пул?

Я развернул веб-приложение на сервере приложений Glassfish. Я создал пул соединений в Glassfish и использую DataSource для получения от него соединения.

В моем пуле соединений у меня есть настройки:
начальный размер пула: 25
максимальный размер пула: 500
количество изменения размера пула: 2

В настоящее время клиенты используют мое приложение, и в мониторе ресурсов Glassfish я вижу следующие сведения:

NumConnUsed:118
NumConnDestroyed: 3664
NumConnReleased: 391
NumConnFree: 1
NumConnCreated: 3784
NumConnAcquired: 509

Если бы кто-нибудь мог объяснить мне приведенную выше статистику с помощью математики.

И мой вопрос: когда мы закрываем соединение с помощью .close() в java, соединение отправляется обратно в пул. Так в чем же разница между NumConnReleased и NumConnDestroyed?

Спасибо


person mukund    schedule 23.08.2012    source источник
comment
Вы можете посмотреть эту ссылку   -  person big zero    schedule 23.08.2012


Ответы (1)


Из документации по Glassfish

numconndestroyed --> Количество физических подключений, которые были уничтожены с момента последнего сброса. numconnreleased --> Количество логических подключений, выпущенных к пулу.

Физическое соединение --> фактическое соединение с базой данных.

Логическое соединение --> соединение в пуле, поддерживаемое диспетчером пула соединений.

Последний сброс --> когда пул соединений был очищен/сброшен, это обычно происходит при повторном развертывании приложения.

Итак, вы можете видеть разницу в том, что один представляет физические соединения, а другой — логические соединения. Другое отличие состоит в том, что один показывает количество с момента последнего сброса, а другой показывает общее количество.

person gresdiplitude    schedule 23.08.2012
comment
NumConnUsed + NumConnDestroyed = NumConnCreated (все находится в физическом соединении) и NumConnUsed (логическое) + NumConnReleased (физическое) = NumConnAcquired (физическое), но в чем основная разница между ними... помимо логического и физического аспекта. - person big zero; 23.08.2012
comment
Спасибо gresdipllitude, но тогда почему так много физических подключений выполняется без подключения из пула? - person mukund; 23.08.2012
comment
@Mukund Ваше приложение повторно развертывается несколько раз, numconndestroyed отслеживает только количество подключений с момента последнего развертывания, numconnreleased, с другой стороны, отслеживает подключения с момента первого развертывания вашего приложения. По сути, при первом развертывании приложения в контейнере numconndestroyed всегда должно быть равно numconnreleased. - person gresdiplitude; 23.08.2012
comment
хммм.. Я думаю, вы только что сказали обратное, потому что, если NumConnDestroyed --›последнее развертывание и NumConnReleased --›первое развертывание, то как в моем приложении NumConnDestroyed › NumConnReleased ? не так ли? - person mukund; 23.08.2012