>  기사  >  데이터 베이스  >  c3p0으로 인한 교착 상태를 해결하는 방법

c3p0으로 인한 교착 상태를 해결하는 방법

一个新手
一个新手원래의
2017-09-08 10:54:092126검색

로컬에서 테스트한 코드가 맞아서 테스트용으로 외부 서버에 올려두었는데 이런 오류가 떴네요

com.mchange.v2.async.ThreadPoolAsynchronousRunner -466510
78 [Timer-18] WARN  com.mchange.v2.async.ThreadPoolAsynchronousRunner  - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1c17bd4 -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!

이거 보고 헷갈렸는데 왜 이렇게 된걸까요?

내 대답은 다음과 같습니다.

데이터베이스 연결 수가 제한되어 있으므로 애플리케이션이 C3p0을 시작할 때마다 C3p0 연결 풀을 채우기 위해 데이터베이스 연결을 차지합니다. 리소스가 사용됩니다. 점유되면 공유 리소스를 얻을 수 없기 때문에 교착 상태가 보고됩니다.

해당 구성 파일에서 최대 연결 수와 초기 연결 수를 변경하세요.

변경되지 않음:

<property name="maxPoolSize" value="100" />  
<property name="initialPoolSize" value="2" />

수정 후:

rrre 에에

re 배포 및 실행, OK!

위 내용은 c3p0으로 인한 교착 상태를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Oracle의 AIO 분석다음 기사:Oracle의 AIO 분석