Некоторое время назад мы переместили одно из наших веб-приложений с Resin и Java 6 на VMware vFabric tc Server и Java 7. Это также включало перемещение всех источников данных JNDI из реализации Resin для Oracle UCP. Я заметил, что использование моего процессора чрезвычайно велико, когда я запускаю приложение локально. После присоединения VisualVM к Тк я обнаружил, что это Oracle UCP, который потребляет мой процессор:Использование высокопроизводительного процессора Oracle UCP на сервере Java 1.7 + TC
Моя локальная конфигурация является: Windows 7х64, Java 1.7.0_25x32 (JDK) и VFabric дц Server Standard 2.7 .0.RELEASE. Вот как настроить источники данных в context.xml
:
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/oracle"
auth="Container"
factory="oracle.ucp.jdbc.PoolDataSourceImpl"
type="oracle.ucp.jdbc.PoolDataSourceImpl"
connectionFactoryClassName="oracle.jdbc.pool.OracleDataSource"
url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=h1.com)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=h2.com)(PORT=1521))(LOAD_BALANCE=yes)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=SERVICENAME)))"
user="user"
password="password"
minPoolSize="0"
initialPoolSize="1"
maxPoolSize="50"
ONSConfiguration="nodes=h1:6200,h2:6200"
connectionWaitTimeout="60"
inactiveConnectionTimeout="900"
abandonedConnectionTimeout="900"
fastConnectionFailoverEnabled="false"
validateConnectionOnBorrow="true"
connectionPoolName="NAME"/>
Интересно, что на Prod коробки все работает отлично. Я не знаю точную конфигурацию, но на них установлены Fedora или CentOS. Hotspot 7.
Я пробовал стандартную реализацию данных Tomcat, но в моем случае это не работает: соединение между моей локальной машиной и кластером DB очень неустойчив, поэтому для меня жизненно важно иметь автоматическое восстановление и балансировку нагрузки. Кроме того, я хочу, чтобы моя локальная конфигурация была похожа на prod, поэтому использование другого пула нежелательно.
Возможно, кто-то столкнулся с той же проблемой и знает решение? Может быть, некоторая JVM arg или родная библиотека пропущена?
После копания в ОГП исходного кода с декомпилятор, мы обнаружили потенциальную проблему, которая вызывает и бесконечный цикл. Черт побери! – madhead