우리는 레거시 (jboss 4.2.3, ejb 3, jsp, jdk 1.6.45 64b) 응용 프로그램을 유지 관리합니다.Jboss 4.2.3 수많은 익명 스레드가있는 응용 프로그램
이 응용 프로그램은 데이터베이스의 무거운 사용을하고,
- 사용자의 HTTP 요청
- 웹 서비스 요청
- 일부 CORBA 연결 일부 외부 JSM 호출
- 일부 MDB 내부 프로세스에 대응
Http conn (표준 250 개가있는 tomcat 5.5) 데이터베이스 풀 연결이 300 (표준이 아닌)으로 증가합니다.
(기본 스레드 풀은 다음 IsDefined) JBoss의 service.xml는 고객의
<mbean code="org.jboss.util.threadpool.BasicThreadPool"name="jboss.system:service=ThreadPool">
<attribute name="Name">JBoss System Threads</attribute>
<attribute name="ThreadGroupName">System Threads</attribute>
<attribute name="KeepAliveTime">60000</attribute>
<attribute name="MaximumPoolSize">10</attribute>
<attribute name="MaximumQueueSize">1000</attribute>
<attribute name="BlockingMode">run</attribute>
하나는 일의 부분에서 나쁜 성능을 가지고있다.
사용자 활동과 관계없이 생성 된 많은 스레드가 있습니다. 카운트 스레드
정상 활동은 때때로 초 4 K로 성장하고 때로는 수 25 개 K 스레드로 성장 분
- 입니다 응용 프로그램이 응답하지 않게됩니다 (다시 시작해야 함)
스레드 덤프는 모든 스레드가 실행 가능하지만 스택 추적이 없음을 보여줍니다 (다른 "정상"스레드는 일반적인 스택 추적을 표시합니다).
그 모든 스레드는 "스레드-XXXXXX을"nammed과에 속한다 "보스 풀링 스레드"
우리는 그 스레드 응용 프로그램에 의해 생성되지 않도록하지만, 우리가 무엇을 할 수 찾을 수 없습니다 이 스레드 생성을 담당하십시오.
아이디어가 있으십니까?