2014-12-01 2 views
0

JMS 전송 포트를 통해 웹 서비스를 호출하는 간단한 스프링 MVC 애플리케이션을 개발하고있었습니다. Websphere Application Server에 배포해야합니다. 내 응용 프로그램에서 직접 원격 연결 팩토리를 참조 할 때 모든 것이 제대로 작동하고 심지어 내 WAS에서 로컬 JNDI 대기열 연결 팩토리를 사용할 때 제대로 작동하는 것처럼 보이지만 내 서버를 종료 할 수는 없습니다.서버에서 잠긴 JMS JNDI 풀

누군가가 연결 풀을 잠근 상태로 유지하는 것 같습니다. JMS 세션을 통해 Session.close를 호출하지 않습니다 (JAX-WS 서버 프레임 워크,이 경우 Apache Axis2에서 관리 함). 나는 더 단순한 봄 MVC 응용 프로그램 (그냥 @Controller 및 views)에서도 동일한 작업을 수행하고 중단되었습니다. 풀을 잠그도록 만드는 응용 프로그램에는 지속성 및 트랜잭션 관리 (주석 중심)가 포함 된보다 복잡한 컨텍스트가 포함됩니다.

이 트랜잭션 관리가 JMS 세션 관리에 영향을 미칠 수 있다고 생각하십니까? 누군가가 스프링 응용 프로그램에 의해 잠긴 JMS 연결 풀을 찾았습니까? 감사합니다. . 감사합니다.

+0

이 질문은 다소 광범위하며 경쟁 조건처럼 들리지만 자세한 정보가 없으면 진단하기가 어렵습니다. –

+0

나는 그것이 일어난 이유를 발견했다고 생각한다. 우리는 ServletContext.close를 아키텍처 클래스에서 사용한다 (web.xml의 리스너 사용). Web Server에서 수행해야하기 때문에 Servlet 컨텍스트를 프로그램 적으로 닫을 수 없다고 생각합니다. 그렇지 않으면 참조가 손실되고 연결 풀이 잠길 수 있습니다. 감사. –

답변

0

잠금을 피하는 해결책이되었습니다. 우리는 ServletContext.close를 제거 했으므로 우리 서버는 사용 된 리소스에 대한 참조를 찾고 풀에서 연결을 해제 할 수 있습니다.