얼마 전에 우리는 웹 애플 리케이션 중 하나를 Resin 및 Java 6에서 VMware vFabric tc Server 및 Java 7로 이동했습니다. 또한 Resin 구현에서 모든 JNDI 데이터 소스 이동 Oracle UCP. 나는 내가 로컬에서 응용 프로그램을 실행할 때 내 CPU 사용량이 매우 높다는 것을 알고 있습니다.자바 1.7 + TC 서버에서 오라클 UCP 높은 CPU 사용량
내 로컬 구성은 다음과 같습니다 : 윈도우 7x64, 자바 1.7.0_25x32 (JDK) 및 표준 vFabric tc를 서버 2.7 I를 TC에 따라 VisualVM과를 부착 한 후 내 CPU를 소모 오라클 UCP 것으로 나타났습니다 .0. 릴리스. 여기에 내가 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"/>
자극 상자에 모든 것이 잘 작동하는 것이 재미있다. 나는 정확한 설정을 모르지만 그들과 핫스팟 7에 Fedora 또는 CentOS가 설치되어있다.
필자는 표준 Tomcat 데이터 소스 구현을 시도했지만 내 경우에는 제대로 작동하지 않는다. 로컬 컴퓨터와 DB 클러스터 간의 연결 매우 불안정하기 때문에 자동 복구 및로드 밸런싱이 중요합니다. 또한, 내 로컬 설정을 prod와 비슷하게 설정하면 다른 풀을 사용하는 것이 바람직하지 않습니다.
어쩌면 누군가가 똑같은 문제에 직면하고 해결책을 알고 있을까요? 어쩌면 일부 JVM arg 또는 기본 라이브러리가 누락되었을 수 있습니까? 그것은 기여 중 하나가 될 수 있기 때문에
디 컴파일러와 UCP 소스 코드에 파고 후 자세한 내용은 아래의 링크를 찾아주세요, 우리는 원인이 잠재적 인 문제 및 무한 루프를 발견했습니다. 젠장, 오라클! – madhead