Skip to content

Bridging audits from Sql to Msmq does not seem to work #695

@carl-berg

Description

@carl-berg

Describe the bug

Description

I'm not sure if this is supposed to work, but it's showcased in the documentation:

var msmqBridgeTransport = new BridgeTransport(new MsmqTransport())
{
    AutoCreateQueues = true
};

/* ... some other endpoints configured */

msmqBridgeTransport.HasEndpoint("Particular.ServiceControl");
msmqBridgeTransport.HasEndpoint("error");
msmqBridgeTransport.HasEndpoint("audit");

Expected behavior

To not get an exception i guess 😄

Actual behavior

Bridge does not seem to be able to handle the audit messages

Versions

  • NServiceBus 9.2.7
  • NServiceBus.MessagingBridge 4.0.3
  • NServiceBus.MessagingBridge.Msmq 4.0.3
  • NServiceBus.Transport.SqlServer 8.1.9

Steps to reproduce

Sending a message from an sql transport endpoint to an msmq endpoint where the sending endpoint has audit enabled, the bridge will then fail to handle the audit message.

Relevant log output

Message shovel operation failed, message will be moved to bridge. Error@[dbo]@[MyDatabase]

Exception: 
System.Exception: Failed to shovel message for endpoint audit with id 274ba0c7-9302-4d37-baa8-49fa47765e92 from sqlserver to msmq ---> System.Exception: Failed to send message to address: audit@MyServerName ---> System.ArgumentException: Address contains multiple @ characters. Address supplied: 'MyEndpoint@[dbo]@[MyDatabase]'
Parameter name: address
   at NServiceBus.Transport.Msmq.MsmqAddress.Parse(String address) in /_/src/NServiceBus.Transport.Msmq/MsmqAddress.cs:line 23
   at NServiceBus.Transport.Msmq.MsmqMessageDispatcher.SendToDestination(TransportTransaction transaction, UnicastTransportOperation transportOperation) in /_/src/NServiceBus.Transport.Msmq/MsmqMessageDispatcher.cs:line 210
   --- End of inner exception stack trace ---
   at NServiceBus.Transport.Msmq.MsmqMessageDispatcher.ThrowFailedToSendException(String address, Exception ex) in /_/src/NServiceBus.Transport.Msmq/MsmqMessageDispatcher.cs:line 320
   at NServiceBus.Transport.Msmq.MsmqMessageDispatcher.SendToDestination(TransportTransaction transaction, UnicastTransportOperation transportOperation) in /_/src/NServiceBus.Transport.Msmq/MsmqMessageDispatcher.cs:line 246
   at NServiceBus.Transport.Msmq.MsmqMessageDispatcher.Dispatch(TransportOperations outgoingMessages, TransportTransaction transaction, CancellationToken cancellationToken) in /_/src/NServiceBus.Transport.Msmq/MsmqMessageDispatcher.cs:line 38
   at NServiceBus.Raw.StartableRawEndpoint.Dispatch(TransportOperations outgoingMessages, TransportTransaction transaction, CancellationToken cancellationToken) in /_/src/NServiceBus.MessagingBridge/RawEndpoints/StartableRawEndpoint.cs:line 79
   at TargetEndpointDispatcher.Dispatch(OutgoingMessage outgoingMessage, TransportTransaction transaction, CancellationToken cancellationToken) in /_/src/NServiceBus.MessagingBridge/TargetEndpointDispatcher.cs:line 30
   at MessageShovel.<TransferMessage>d__1.MoveNext() in /_/src/NServiceBus.MessagingBridge/MessageShovel.cs:line 61
   --- End of inner exception stack trace ---

Additional Information

Workarounds

Possible solutions

Additional information

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugSomething isn't workingTriaged

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions