저는 기본적으로 웹 서비스에서 메시지를 받고이 메시지 내용을 기반으로 다운로드 프로세스를 시작하기로되어있는 새로운 EJB 응용 프로그램을 작성하고 있습니다. 이 응용 프로그램은 Glassfish 3.1.1에서 실행됩니다.EJB - 건축 문제
첫 번째 아이디어는 웹 서비스에서 메시지를 읽고 stateful 세션 빈을 사용하여 다운로드 자체를 시작하고 처리하는 싱글 톤 빈을 만드는 것이 었습니다. 싱글 톤과 스테이트 풀 빈 (stateful bean) 사이에 변환 상태가 필요하기 때문에 스테이트 풀 빈을 사용해야합니다. (다운로드 상태 등)
웹 서비스에서 여러 메시지를 받으면 "문제"가 있습니다. 여러 다운로드를 병렬로 시작하십시오. 물론 각 다운로드는 자체 컨텍스트로 진행됩니다. 내 싱글 톤에서 상태있는 세션 빈을 호출하는 것처럼 이것을 달성해야하는 것은 무엇입니까? 항상 동일한 bean을 얻습니다. 맞습니까? 볼 수있는 유일한 해결책은 내 싱글 톤에서 생성되고 시작될 스레드를 사용하는 것이지만 EJB 사양에서는 허용되지 않습니다.
도움을 주셔서 감사합니다!
안녕하세요. 싱글 톤은 애플리케이션의 "진입 점"이 될 것이며 모든 다운로드를 관리 할 책임이 있습니다. 즉, 각 빈의 다운로드 상태를 확인하고, 웹 서비스를 통해 상태를 전송하며, 모든 다운로드를 중단/취소합니다. 계속 진행할 다른 방법이 있습니까? 감사합니다 – Mehdi
예, 알지만, 여전히 당신이 여기에 싱글 톤이 필요하다는 것을 납득시키지 못합니다. 내 말은, SFSB가 단일 클라이언트와의 상호 연결, 다운로드/취소/상태 가져 오기 등을 관리하게하십시오. 왜 이것을 "중앙화"해야합니까? –
(내 의견으로는) 나는 집중해야하기 때문에. 취소/인터럽트 다운로드와 같은 명령은 예를 들어 WS에서 발생하기 때문입니다. 그래서 어떤 SFSB를 중단/취소 할 필요가 있는지 알아야합니다 ... 더 명확합니까? – Mehdi