static ImmediateConfig GetImmediateRetryConfig(ReadOnlySettings settings, bool transactionsOn)
{
if (!transactionsOn)
{
Logger.Warn("Immediate Retries will be disabled. Immediate Retries are not supported when running with TransportTransactionMode.None. Failed messages will be moved to the error queue instead.");
//Transactions must be enabled since Immediate Retries requires the transport to be able to rollback
return new ImmediateConfig(0);
}
var retriesConfig = settings.GetConfigSection<TransportConfig>();
var maxImmediateRetries = retriesConfig?.MaxRetries ?? settings.Get<int>(NumberOfImmediateRetries);
return new ImmediateConfig(maxImmediateRetries);
}