В одной из наших сред есть tomcat 8 со следующей конфигурацией источника данных JDBC:
<Resource name="jdbc/mydatasource"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@myhostname:1521:dbname"
username="username"
password="password"
removeAbandoned="false"
removeAbandonedTimeout="300"
logAbandoned="true"
initialSize="5"
maxActive="100"
maxIdle="100"
minIdle="5"
maxWait="120000"
/>
Команда Netstat возвращает следующие результаты:
netstat -anu | grep ${pid}| grep ESTABLISHED | grep ${myhostname}:1521 | wc -l
55
Thisрезультат остается стабильным в течение нескольких дней.
В то же время я отслеживаю атрибуты источника данных Tomcat через JMX:
numActive = 0
numIdle = 5
Этирезультаты также остаются стабильными в течение нескольких дней.
Похоже, tomcat создает пул соединений JDBC с начальным размером 5 соединений, сохраняет количество незанятых соединений на уровне 5, но по некоторым причинам количество установленных соединений, показанных с помощью netstat, равно 11в разы больше.
Когда minIdle = "5" в context.xml и JMX показывает numActive + numIdle = 5, netstat также должен показывать 5 установленных соединений, не так ли?
Полагаю, что покаПоддержка пула JDBC Tomcat постоянно открывает и закрывает соединения с базой данных, которые остаются в состоянии ESTABLISHED с точки зрения netstat до тех пор, пока не будут удалены.pped by database.
Мой вопрос: как изменить конфигурацию источника данных tomcat, чтобы вывод netstat соответствовал этой конфигурации?
Заранее большое спасибо.