서블릿이 계속 작동하는 동안 WebSphere가 연결을 끊습니다.

서블릿이 계속 작동하는 동안 WebSphere가 연결을 끊습니다.

우리는 WebSphere에서 실행되는 애플리케이션을 가지고 있습니다. 요청이 오랜 시간(수십 분) 동안 실행되는 경우가 많습니다. 사용자는 Internet Explorer가 잠시 기다린 후 연결이 끊어지고 빈 화면이 표시된다고 보고합니다. 애플리케이션 로그에는 요청이 서블릿 수준에서 정상적으로 완료되었다고 나와 있지만 다음과 같은 오류가 많이 표시됩니다.

[4/24/15 11:31:19:253 MSK] 0000001f ThreadMonitor W WSVR0605W: 스레드 "WebContainer: 2"(00000027)가 750529밀리초 동안 활성화되었으며 정지되었을 수 있습니다. 서버에 정지될 수 있는 스레드가 총 1개 있습니다.

문제를 해결하는 동안 고려해야 할 WebSphere 또는 Internet Explorer의 구성 옵션은 무엇입니까?

답변1

우선, 앱이 매우 긴 트랜잭션을 실행하는 경우 이를 처리할 비동기식 방법을 찾아야 한다는 점을 지적하고 싶습니다.

애플리케이션 디자인에 대한 책임이 없다면 다음 두 가지(정말 지저분한) 작업을 수행할 수 있습니다.

  • 중단된 스레드에 대한 경고를 수정합니다. 이는 컨테이너의 모든 스레드에 영향을 미칠 수 있고 필요한 경고를 놓칠 수 있으므로 더러워집니다.여기그렇게 하는 방법입니다.
  • 웹 컨테이너의 사용자 정의 속성에서 연결 시간 제한을 늘립니다. 이는 스레드 풀과 메모리 등을 늘려야 할 수 있으므로 성능 및 기타 구성에 영향을 미치기 때문에 지저분합니다.

그러나 백엔드 및/또는 구현의 문제점을 확실히 수정해야 합니다(또는 개발자를 위한 코어 덤프를 만들어야 합니다).

관련 정보