Particular / NServiceBus.SqlServer

SQL Server Transport for NServiceBus
https://docs.particular.net/nservicebus/sqlserver/
Other
42 stars 36 forks source link

Remove the dependency on the DTC when using the multi schema feature #157

Closed mauroservienti closed 8 years ago

mauroservienti commented 8 years ago

Actually in V2 to enable multi-schema the user needs to define multiple connection strings causing the transport to require the DTC. When using multi-schema we should remove this requirement.

Inception: https://github.com/Particular/CustomerSuccess/issues/166

ramonsmits commented 8 years ago

Basically, make use of fully qualified table names containing catalog + schema to make use of connection sharing.

SzymonPobiega commented 8 years ago

I don't think this is true. When using code API you should be able to specify the schema name and this code: https://github.com/Particular/NServiceBus.SqlServer/blob/master/src%2FNServiceBus.SqlServer%2FSqlServerMessageSender.cs#L36 would get the connection used for receiving the message and use schema-qualified table name.

mauroservienti commented 8 years ago

@SzymonPobiega

I don't think this is true.

Sorry, what's not true?

SzymonPobiega commented 8 years ago

@mauroservienti

Actually in V2 to enable multi-schema the user needs to define multiple connection strings causing the transport to require the DTC

I think you can use a single connection string and configure schema in code in V2.

mauroservienti commented 8 years ago

@SzymonPobiega

I think you can use a single connection string and configure schema in code in V2.

Yes, correct, however it doesn't work in ServiceControl.

SzymonPobiega commented 8 years ago

True :-(

mauroservienti commented 8 years ago

Here is the issue related to ServiceControl, we appraciate your input.

SzymonPobiega commented 8 years ago

So if I understand V3 correctly (cc @tmasternak ), the address string in V3 contains the schema name so when we upgrade SC to NSB 6, it should work automatically. It would be hard to fix in NSB 5.

tmasternak commented 8 years ago

@SzymonPobiega correct.

tmasternak commented 8 years ago

I think that this one is closely related to #156. I think it's worth checking of the effort here. I can create a spike issue that will enable us to figure out how much work is needed and decide to do it or not. Thoughts?

mauroservienti commented 8 years ago

@tmasternak don't we support the legacy mode exactly to address @SzymonPobiega concern about wire compatibility?

tmasternak commented 8 years ago

don't we support the legacy mode exactly to address @SzymonPobiega concern about wire compatibility?

@mauroservienti Do you mean representing addresses with schema on the wire?

mauroservienti commented 8 years ago

No, say that we have a multi-schema based environment. Where V6 needs to talk to V5, V6 address is something like destination@schema V5 will use the old approach, even if V6 sends the reply address as sender@schema V5 can use it since the V5 transport will ignore the thing following the @. Correct?

tmasternak commented 8 years ago

@mauroservienti that is correct.

tmasternak commented 8 years ago

This is connected to #156. Should I close this one and we can track progress there? /cc: @mauroservienti

mauroservienti commented 8 years ago

yeah, replaced by #156