Пример #1
0
        public void LogRollbackToRetryFailed_Logged()
        {
            var envelope = new RawInboundEnvelope(
                Stream.Null,
                new MessageHeaderCollection
            {
                { DefaultMessageHeaders.MessageType, "Message.Type" },
                { DefaultMessageHeaders.MessageId, "1234" }
            },
                new TestConsumerEndpoint("test1, test2"),
                "test1",
                new TestOffset("a", "42"));

            var expectedMessage =
                "Error occurred while rolling back, the retry error policy cannot be applied. " +
                "The consumer will be reconnected. | " +
                "endpointName: test1, " +
                "messageType: Message.Type, " +
                "messageId: 1234, " +
                "unused1: (null), " +
                "unused2: (null)";

            _inboundLogger.LogRollbackToRetryFailed(envelope, new TimeoutException());

            _loggerSubstitute.Received(LogLevel.Warning, typeof(TimeoutException), expectedMessage, 1051);
        }
Пример #2
0
            private async Task <bool> TryRollbackAsync(ConsumerPipelineContext context, Exception exception)
            {
                try
                {
                    await context.TransactionManager.RollbackAsync(exception, stopConsuming : false)
                    .ConfigureAwait(false);

                    return(true);
                }
                catch (Exception ex)
                {
                    _logger.LogRollbackToRetryFailed(context.Envelope, ex);
                    return(false);
                }
            }