서버 웨이팅 현상
- 작성자 :
- 이*민
- 작성일 :
- 2013-07-06 11:13:36
- 조회수 :
- 1,043
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
스레드 덤프중 문제가 되는 스레드의 단면입니다.
egovframework.rte.fdl.idgnr.impl.AbstractIdGnrService.getNextBigDecimalId(AbstractIdGnrService.java:195)
- locked <0x0000000780d11db8> (a java.lang.Object)
그리고 이줄에서는 락이 걸렸다고 하는데요. 이를 해결해 주기 위한 방법이 있나요?
현재 사이트는 톰켓 6.0 공통프레임워크를 사용해 개발된 설문조사 사이트입니다
첨부는 로그파일 전체입니다.
egovframework.rte.fdl.idgnr.impl.AbstractIdGnrService.getNextBigDecimalId(AbstractIdGnrService.java:195)
- locked <0x0000000780d11db8> (a java.lang.Object)
그리고 이줄에서는 락이 걸렸다고 하는데요. 이를 해결해 주기 위한 방법이 있나요?
현재 사이트는 톰켓 6.0 공통프레임워크를 사용해 개발된 설문조사 사이트입니다
첨부는 로그파일 전체입니다.
첨부파일
A
안녕하세요. 이주민님.
내부적으로 synchronized 처리가 되어 있어서 실행되는 시점에 lock이 걸린 상태에서 실행되는 것은 정상입니다. 문제는 그 안쪽 처리(trace 상 위쪽)의 waiting 부분입니다.
즉, DBCP 상에서 DB Connection을 가져오는 borrowObject 부분 상에 waiting이 걸려 있는 상태로 DB Pool 상의 connection 개수가 적어서 발생된 문제 같습니다. (이 waiting 때문에 AbstractIdGnrService 처리도 lock된 상태로 대기 중)
DBCP 상의 connection pool의 max 개수를 tomcat의 thread pool 상의 개수만큼 지정하셨는지 확인해 보시면 되실 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.
내부적으로 synchronized 처리가 되어 있어서 실행되는 시점에 lock이 걸린 상태에서 실행되는 것은 정상입니다. 문제는 그 안쪽 처리(trace 상 위쪽)의 waiting 부분입니다.
즉, DBCP 상에서 DB Connection을 가져오는 borrowObject 부분 상에 waiting이 걸려 있는 상태로 DB Pool 상의 connection 개수가 적어서 발생된 문제 같습니다. (이 waiting 때문에 AbstractIdGnrService 처리도 lock된 상태로 대기 중)
DBCP 상의 connection pool의 max 개수를 tomcat의 thread pool 상의 개수만큼 지정하셨는지 확인해 보시면 되실 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.