해결책
그것은 당신이 어떻게 보내는지에 달려 있습니다.
당신의 첫 번째 질문은 곧되었습니다 첫째, JMS에서 제작자가 대기열의 존재를 확인하기 때문에 유효하지 않은 대기열로 보내기를 원할 수 있습니다. Hornetq 코어 API에서 주소 (대기열이 아님)로 보내면 언 바운드 대기열이있을 수 있습니다. 주소가 대기열이 있거나 아닌 경우 쿼리해야합니다.
이제 메시지가 수신 된 확인을 위해 다음과 같습니다.
- 시나리오 I, 지속성 메시지, 트랜잭션 별
모든 메시지가 전송됩니다. 클라이언트는 서버를 수신 한 서버가 메시지를 수신하면 즉시 클라이언트가 차단 해제됩니다. 이것은 자동으로 수행됩니다. 아무 것도 할 필요가 없습니다.
- 시나리오 II, 비 지속성 메시지, 트랜잭션이 아닌
기본적으로 확인이 없습니다. 메시지가 비동기 적으로 전송됩니다. 우리는 메시지가 일시적이며 잃어버린다면 큰 문제가 아닙니다. ServerLocator에서 블록 - on-persistent-send를 설정하여 변경할 수 있습니다.
- 시나리오 III, 거래 (지속적이거나 아닌).
커밋을 호출하는 즉시 메시지가 대기열에 있습니다.
- 시나리오 IV, 확인 메시지 보내기
콜백을 설정하고 서버가 대기열에 ACKED로 해시 자마자 메소드 호출을 가져옵니다. 확인 콜백을 위해 설명서를 살펴보십시오. JMS2에는 동일한 기능이 있습니다.
제휴하지 않습니다 StackOverflow