HornetQ 기반 JMS 공급자가 있고 소비자가 CLIENT_ACKNOWLEDGE_MODE에서 공급자에 연결되어 있습니다. message.acknowledge() 스 니펫은 if else 아래에 있습니다. 따라서 소비자는 메시지 처리에 응용 프로그램 계층에 오류가있는 경우 서버에 승인을 보내지 않을 것입니다. 여기에 두 가지 질문이 있습니다.HornetQ 비 승인 메시지의 동작
1) 서버에 대기중인 메시지가 더 많이 남아있게됩니까? 에 이전
2) 확인되지 않은 메시지가 소비자를 다시 시작 다시 아래로 흘러 언급 한 바와 같이 소비자가 메시지에 을 인정하지 않았다하더라도 소비자에게 흐르는.
이 내가
1
을 요구했다 질문)가에 메시지 중 하나를 인정하지 않은 경우에도 메시지가 소비자 로그에 따라 소비자에게 아래로 흐르는 계속 내 관찰의 일부입니다 (예 : 은 캐치되지 않은 예외가 없으므로 소비자가 인지를 알 수 없음).2) 두 번째로, 소비자에게 다시 메시지를 보내면 메시지가 서버에서 다시 흐르지 않습니다. 놀라운 결과입니다.
누군가가이 동작을 명확히 할 수 있습니까?
- "문제의 메시지를 확인하지 못한 후에도 메시지를 계속 확인합니다."- 예 : 다른 메시지가 서버에서 내려져 소비자가 성공적으로 처리 한 후 메시지를 승인하지 않은 경우 예. 확인을 보냅니다. (참고 - 동의하지 않는 소비자는 응용 프로그램 계층의 일부 오류 상태로 인해 의도적으로 인정하지 않았습니다. 왜 내가 레거시 코드로 작업하는지 알지 못합니다). – aashish
그 이유는 내가 원래의 질문에 그 질문에 매우 명확한 질문 - 1) 1) 1 서버에서 대기중인 메시지는 소비자가 메시지 중 하나를 확인하지 않았더라도 소비자에게 계속 흐를 것인가? 앞에서 언급했듯이 메시지 중 하나가 수신 확인되지 않은 경우 서버에서 더 많은 메시지가 전송되는 이유를 설명해주십시오. 또한 올바른 동작으로 인해 소비자가 메시지 중 하나를 확인하지 못하면 더 많은 메시지를 보내지 않도록 서버를 구성 할 수 있습니다. – aashish
더 큰 질문에 답하지 못했습니다. 즉,이 메시지 이후에 다른 메시지가 ACK되었습니다. –