void SendToErrorQueue(TransportMessage message) { Logger.InfoFormat("Send message to error queue, {0}", FaultManager.ErrorQueue); message.ReplyToAddress = TransportMessageHelpers.GetReplyToAddress(message); MessageSender.Send(message, FaultManager.ErrorQueue); }
protected override void Send(Unicast.Transport.TransportMessage message, Address errorQueue) { var failedQ = TransportMessageHelpers.GetReplyToAddress(message); var sat = Configure.Instance.Builder.Build <SecondLevelRetries>(); if (failedQ == sat.InputAddress) { Logger.InfoFormat("The message was sent from the SecondLevelRetries satellite. Sending the message direct to the error queue!"); base.Send(message, sat.ErrorQueue); return; } base.Send(message, errorQueue); }
void Defer(TimeSpan defer, TransportMessage message) { message.ReplyToAddress = TransportMessageHelpers.GetReplyToAddress(message); TransportMessageHelpers.SetHeader(message, Headers.Expire, (DateTime.UtcNow + defer).ToWireFormattedString()); TransportMessageHelpers.SetHeader(message, SecondLevelRetriesHeaders.Retries, (TransportMessageHelpers.GetNumberOfRetries(message) + 1).ToString()); if (!TransportMessageHelpers.HeaderExists(message, SecondLevelRetriesHeaders.RetriesTimestamp)) { TransportMessageHelpers.SetHeader(message, SecondLevelRetriesHeaders.RetriesTimestamp, DateTime.UtcNow.ToWireFormattedString()); } Logger.InfoFormat("Defer message and send it to {0} using the timeout manager at {1}", message.ReplyToAddress, TimeoutManagerAddress); MessageSender.Send(message, TimeoutManagerAddress); }