우리는 WebSphere에서 실행되는 애플리케이션을 가지고 있습니다. 요청이 오랜 시간(수십 분) 동안 실행되는 경우가 많습니다. 사용자는 Internet Explorer가 잠시 기다린 후 연결이 끊어지고 빈 화면이 표시된다고 보고합니다. 애플리케이션 로그에는 요청이 서블릿 수준에서 정상적으로 완료되었다고 나와 있지만 다음과 같은 오류가 많이 표시됩니다.
[4/24/15 11:31:19:253 MSK] 0000001f ThreadMonitor W WSVR0605W: 스레드 "WebContainer: 2"(00000027)가 750529밀리초 동안 활성화되었으며 정지되었을 수 있습니다. 서버에 정지될 수 있는 스레드가 총 1개 있습니다.
문제를 해결하는 동안 고려해야 할 WebSphere 또는 Internet Explorer의 구성 옵션은 무엇입니까?
답변1
우선, 앱이 매우 긴 트랜잭션을 실행하는 경우 이를 처리할 비동기식 방법을 찾아야 한다는 점을 지적하고 싶습니다.
애플리케이션 디자인에 대한 책임이 없다면 다음 두 가지(정말 지저분한) 작업을 수행할 수 있습니다.
- 중단된 스레드에 대한 경고를 수정합니다. 이는 컨테이너의 모든 스레드에 영향을 미칠 수 있고 필요한 경고를 놓칠 수 있으므로 더러워집니다.여기그렇게 하는 방법입니다.
- 웹 컨테이너의 사용자 정의 속성에서 연결 시간 제한을 늘립니다. 이는 스레드 풀과 메모리 등을 늘려야 할 수 있으므로 성능 및 기타 구성에 영향을 미치기 때문에 지저분합니다.
그러나 백엔드 및/또는 구현의 문제점을 확실히 수정해야 합니다(또는 개발자를 위한 코어 덤프를 만들어야 합니다).