2013-02-18 2 views
2

나는 지금까지 hornetq을 사용하고 있으며 최근까지는 괜찮 았어. 다음과 같은 문제가 있습니다. 큐에 "붙어있는"메시지가 있습니다 (클라이언트 확인 모드에서 작업 중입니다. 따라서 일부 소비자가 메시지를 보유하고 승인을 보내지 못하는 것일 수 있습니다.)). JConsole을 사용하여 대기열을 살펴본 결과 메시지 카운터가 상승하고 있지만 "listMessagesAsJson"을 시도 할 때 참조 용으로 을 얻었을 때 나중에 죽은 대기열로 보내려고했습니다 (트랜잭션 모드 및 RuntimeExceptions을 목적으로 던짐) 그리고 DLQ에서 실제로 messageCounter와 "listMessagesAsJson"이 실제로 DLQ에서 작동하는 것을 볼 수 있습니다. (메시지 목록을 얻습니다) 그러나 DLQ와 내 평범한 것의 차이를 짐작할 수는 없습니다 열. 누구나 나를 도울 수 있습니까? 미리 감사드립니다.hornetq "listMessagesAsJson"not working

+0

사용중인 버전을 질문에 추가 할 수 있습니까? –

+0

당신은 또한이 같은 질문을 여기에 요청했습니다 : https://community.jboss.org/thread/221387?tstart=0 –

답변

2

listDeliveringMessages라는 또 다른 메소드를 추가했습니다.이 메소드는 기내 메시지를주고 진행 상황에 대한 아이디어를 줄 수 있습니다.

이것은 당신은 2.2.14을 사용하는 https://issues.jboss.org/browse/HORNETQ-763

의 일부로 수행 된 수정 프로그램이 포함되어 있지 않습니다 .. 당신이 참조 할 수 있습니다 자세한 내용은

합니다 (hornetq의 포럼에서 논의 당) 이 github 커밋에 : https://github.com/hornetq/hornetq/commit/3812ee77100c473489f72f36e5078a56d37e5c19

1

나는 당신이 클라이언트가 메시지를받지 않는 것이 맞다고 생각합니다. 소비자에게 전달되었지만 아직 확인되지 않은 (또는 TX 커밋 된) 대기열의 메시지는 클라이언트가 롤백되고 메시지를 재전송해야하는 경우 보관해야하는이 회색 상태로 존재하지만 동시에 본질적으로 한 소비자에게만 전달 될 수 있기 때문에 다른 사람에게는 본질적으로 사용할 수 없습니다. n 메시지를 대기열에 있지만 활성화 된 사용자가없는 경우, listMessagesAsJson 작업은 문제없이 나열합니다.

런타임 예외가 터미널이기 때문에 DLQ가 작동하고 브로커는 메시지가 소비자에 의해 거부되어 "회색"영역에 있지 않음을 알고 있기 때문에 작동합니다.

+0

"listScheduledMessages"에 대한 API를 사용하면 좀 더 놀고 예외적으로는 재생할 수 없다는 논리는 들리 겠지만 대기열. 또한 JMX 인터페이스가 모니터링하는 리소스와 완전히 독립적이기 때문에 서버에 다른 소비자로 보이지 않아야합니다. – ShinySpiderdude