2016-10-20 7 views
1

4 명의 가입자가있는 메시지에 메시지 (특정 상관 ID)가 배치되는 응용 프로그램이 있습니다. 메시지가 배치되면 메시지가 4 명의 가입자에 의해 소비되고 응답을 보냅니다 대기열 (reply = 4messages)에 동일한 상관 ID가 있습니다. 이제 메시지에 중복 상관 ID이있을 때 의심 스럽습니다. 요청에 상관 ID가있는 메시지를 검색 할 때 소비자가 소비 할 메시지를 어떻게 알 수 있습니까?동일한 JMS 상관 ID를 사용하는 중복 메시지

+0

흥미로운 시나리오. 모든 가입자가 동일한 메시지를 처리하고 응답을 제공하는 이유는 무엇입니까? 각 가입자가 메시지를 다르게 처리합니까? – Shashi

+0

아니요, 그들은 메시지를 다르게 처리하지 않습니다. 동일한 방식으로 처리합니다 (즉,이 질문을 게시 한 문제입니다). 확실하지 않은 이유는 주제로 브로드 캐스트하기 위해 작성된 이유입니다. – priya

+0

아이디어가 마치 여러 구독자 중 하나만 구독자가 메시지를 처리하고 응답하는 부하 분산을 수행하는 것처럼 보입니다. – Shashi

답변

1

중복 된 JMSCorrelationID에 고유 한 문제가 없습니다. 응답에 관심이있는 소비자는 일반적으로 선택자 (즉, JMSCorrelationID = 'ID-XXX ...')를 사용하여 소비자를 생성합니다. 해당 소비자는 메시지를 포함하는 모든 메시지를 지정된 상관 ID와 일치시킵니다.

각 네 개의 응답을 별도로 처리해야하는 경우 맞춤 메시지 속성이 어떤 메시지가 원래 주제 구독자의 메시지인지 결정해야하는 규칙을 정의해야합니다.

+0

답장을 보내 주신 Matt 감사합니다. 그러나 4 개의 메시지 중 하나만 사용 중이라는 사실을 확인했습니다. 나머지 3 개는 영원히 대기열에 있습니다. 메시지가 소비되는 FCFS 방식입니까? – priya

+0

모든 구독자가 회신 중이므로 회신 대기열에 4 개의 회신이 있습니다. 응답 메시지를 처리하는 응용 프로그램은 첫 번째 응답을 처리하고 다른 응답을 대기열에 남기지 않고 있습니다. – Shashi

+0

예 Shashi, 내 응용 프로그램에서이를 관찰했습니다.이 구현을 언급하는 기술적 인 술집이 있는지 알고 싶습니다. – priya