2016-06-17 3 views
1

유스 케이스가 SMTP 아웃 바운드 엔드 포인트를 통해 메일을 발송 중입니다.Mule ESB에서 메시지 거부 및 다시 대기 ackMode가있는 AMQP 커넥터 MULE_AUTO

    모든 것이 확인되면, 메시지가 인정
  • ,
  • 유효성 검사 오류 (예 : 잘못된 이메일), I는 메시지를 거부 할
  • ,
  • SMTP 서버에 ConnectionException가, I 1 분을 기다리면서 메시지를 거부하고 다시 시도하여 다시 시도해보십시오.

나는 뮬 AMQP 커넥터를 ackMode="MULE_AUTO"과 함께 사용합니다.

  • 흐름이 올바르게 처리되면 Mule은 자동으로 메시지를 확인합니다.
  • catch 예외 전략에 오류가 발생하면 메시지가 거부되고 데드 레터 교환 (재귀 없음)으로 전송됩니다.

롤백 예외 전략을 사용해 보았지만 작동하지 않는 것 같습니다.

메시지 거부 및 재구성이 가능한지 알고있는 사람이 있습니까?

(뮬 ESB CE 3.7.0 - 뮬 AMQP 운송은 3.6.2.20150520)

+0

답장 및 의견을 보내 주셔서 감사합니다. 나는 'ackMode = "MULE_AUTO"로 불가능한 것처럼 보이는 동일한 해결책을 찾았다. –

답변

1

예 것이 가능하다.

당신은 성공 시나리오) ackMode=Manual

1을 사용합니다 : 수동 흐름의 끝에 <amqp:acknowledge-message />을 사용하거나 당신이 당신의 논리 메시지에서 느낄 경우 인정 될 수있다하여 메시지를 확인해야합니다.

2) 실패 시나리오 : 유효성 검사 오류 등 예외가 throw되면 catch 예외 전략에 걸릴 것입니다 - <amqp:reject-message />을 사용하십시오. 메시지를 거부하는 데 도움이됩니다.

3) 연결 예외의 경우 : 캐치 예외 전략에서 <amqp:reject-message requeue="true" />을 사용하면 원본 메시지가 동일한 큐로 다시 푸시됩니다. 참조 : https://github.com/mulesoft/mule-transport-amqp/blob/master/GUIDE.md#manual-message-acknowledgement-and-rejection

둘째 시나리오와 세 번째 시나리오 모두 예외 전략에서 처리해야합니다. 그러므로 ChoiceException strategy을 사용하십시오. 2 catch exception strategy을 '유효성 검사 오류'로 정의하고 '연결 예외'로 정의하십시오. 참조 : https://docs.mulesoft.com/mule-user-guide/v/3.7/choice-exception-strategy

참고 : 을 사용하는 경우 성공/실패 시나리오와 관계없이 수동으로 외부에서 메시지를 확인하거나 거부해야합니다. 대기열에있는 메시지를 보관하지 않습니다.