우리는 NServiceBus를 사용하여 한 시스템의 데이터 변경에 관한 메시지를 우리 환경의 다른 시스템에 전파합니다.NServiceBus 치명적인 오류시 중지
클라이언트 (수신) 시스템에서 예외가 발생했을 때 대기열에서 실패한 메시지를 제거하지 않고 메시지 처리를 중단하고 문제를 조사하고 열.
이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
편집 : 당신은 아마 IManageMessageFailures 인터페이스를 구현하는 것이 좋습니다
Configure.With()
.DefiningCommandsAs(t => typeof(ICommand).IsAssignableFrom(t))
.DefiningEventsAs(t => typeof(IEvent).IsAssignableFrom(t))
.DefiningMessagesAs(t => typeof(IMessage).IsAssignableFrom(t))
.Log4Net<NlogAppenderForLog4Net>(a => { })
.NinjectBuilder(Kernel)
.XmlSerializer()
.MsmqTransport()
.DefineEndpointName("consumer.input")
.IsTransactional(true)
.PurgeOnStartup(false)
.MsmqSubscriptionStorage("consumer")
.UnicastBus()
.LoadMessageHandlers()
.ImpersonateSender(false)
.CreateBus().Start(() => Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install());
어떻게 호스팅하고 있습니까? –
@JoachimIsaksson Windows 서비스에서 내 NServiceBus 구성에 ive가 추가되었습니다 –
사가에서 상태를 변경 한 다음 모든 후속 메시지를 시간 초과 서비스로 푸시하면 사가에서이 작업을 수행 할 수 있습니다. 큰 어쩌면? 그것은 나를 괴롭히는 '대기열의 같은 장소'입니다. 정기적 인 처리 과정에서 모든 메시지가 일관된 순서로 수신되고 처리되는 것이 확실합니까? –