private void ResendMessageImpl(Message message, ActivationAddress forwardingAddress = null) { if (logger.IsVerbose) { logger.Verbose("Resend {0}", message); } message.SetMetadata(Message.Metadata.TARGET_HISTORY, message.GetTargetHistory()); if (message.TargetGrain.IsSystemTarget) { dispatcher.SendSystemTargetMessage(message); } else if (forwardingAddress != null) { message.TargetAddress = forwardingAddress; message.RemoveHeader(Message.Header.IS_NEW_PLACEMENT); dispatcher.Transport.SendMessage(message); } else { message.RemoveHeader(Message.Header.TARGET_ACTIVATION); message.RemoveHeader(Message.Header.TARGET_SILO); dispatcher.SendMessage(message); } }
private bool TryResendMessage(Message message) { if (!message.MayResend(config)) { return false; } if (logger.IsVerbose) logger.Verbose("Resend {0}", message); message.ResendCount = message.ResendCount + 1; message.SetMetadata(Message.Metadata.TARGET_HISTORY, message.GetTargetHistory()); if (!message.TargetGrain.IsSystemTarget) { message.RemoveHeader(Message.Header.TARGET_ACTIVATION); message.RemoveHeader(Message.Header.TARGET_SILO); } transport.SendMessage(message); return true; }