웹서비스와 다른 프로그램과의 소켓 연결 유지방법?
글쓴이: ckebabo / 작성시간: 금, 2008/07/11 - 5:22오후
클라이언트가 웹서비스를 요청하면 웹서비스를 다른 프로그램과 소켓연결을 하여 데이터를 송수신한 후 그 결과를 클라이언트에게 넘겨주게 됩니다. 이때 작업이 다 끝나지 않은 상황에서 웹서비스가 또 다시 호출되면 같은 (ip, port)로 소켓이 만들어져 결국엔 소켓이 닫혀게 되고 정상적인 동작이 안되는 현상이 발생하게 됩니다.
그래서 세션을 유지하는 것처럼 웹서비스가 다른프로그램과 항상 소켓 연결을 유지하고 있으면서 클라이언트가 요청을 처리할 수 있는지 궁금합니다.
웹서비스는 자바(Java Web Service Developer Pack 2.0)으로 작성하였고 Tomcat을 웹 컨테이너로 사용중입니다.
제가 알기로 웹 컨테이너가 웹요청을 받으면 쓰레드로 웹서비스를 구동하는 것으로 알고 있습니다. 그러면 매 요청이 각기 다른 쓰레드로 구동이 된다는 말인데, 과연 매 쓰레드(웹서비스)가 유지되고 있는 동일한 소켓을 공유할 수가 있는지조차 의심이 되기는 하지만 혹시나 방법이 있는지 하여 질문을 올립니다.
Forums:
서블릿은
멀티 쓰레드 기반으로 동작하도록 만들어 져야 합니다.
다른 서버로 접속하는 소켓의 인스턴스가 인스턴스 / 로컬(메소드) 변수이냐에 따라 문제가 될 수도 있고 아닐수도 있습니다.
생성하신 소켓은 어느쪽에 보관하고 계신가요?
-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.
댓글 달기