집 >데이터 베이스 >MySQL 튜토리얼 >c3p0으로 인한 교착 상태를 해결하는 방법
로컬에서 테스트한 코드가 맞아서 테스트용으로 외부 서버에 올려두었는데 이런 오류가 떴네요
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!