protected void RestoreTransport(ITransport t)
{
Tracer.Info("Restoring previous transport connection.");
t.Start();
// Send information to the broker - informing it we are a fault tolerant client
t.Oneway(new ConnectionControl() { FaultTolerant = true });
stateTracker.DoRestore(t);
Tracer.Info("Sending queued commands...");
Dictionary<int, Command> tmpMap = null;
lock(((ICollection) requestMap).SyncRoot)
{
tmpMap = new Dictionary<int, Command>(requestMap);
}
foreach(Command command in tmpMap.Values)
{
if(command.IsMessageAck)
{
Tracer.Debug("Stored MessageAck being dropped as stale.");
OnCommand(this, new Response() { CorrelationId = command.CommandId });
continue;
}
t.Oneway(command);
}
}