How do you create a the copy of the database
If I inderstand correctly, you have two machines, say A and B. On A you have a service SA and and on B you have a service SB, as well as a seond instance of the service SA, say SA'.
Whenever you are dealing with multiple copies of the same service, you must take into account the broker instance implications. SSB is able to distiguish two services based on the broker instance. If broker instance is not specified, then the first message sent by the initiatitor will pick at random one of the possible service instances and deliver the message to it. When the first reply comes back, it will carry with it the broker instance and the dialog becomes sticky to this very servic instance (subsequent messages will specify which broker instance they are targeting).
Also, your routes must specify the broker instance explictily, other wise we cannot determine which route is the correct one for a specific service instance. So in the example above:
- on machine A, is enough to specify a route to B for SB
- on machine B, in the SB database you must specify a route with a service instance to SA
- on machine B, in the SB database, specify a LOCAL route fro SA' , with a service instance
- the AutoCreateLocal route in SA' database is sufficient for SA' to reach SB
When SA or SA' begins a dialog with SB, then things should work w/o any problem.
When SB begins a dialog with "SA" w/o specifying a broker instance, then both SA and SA' are valid targets and one will be randomly picked
When SB whant to determine explicitly if it wants to talk with SA or SA', it needs to specify the broker instance in BEGIN DIALOG.
If SB never needs to talk with SA' but only with SA, then the route to SA' has to be dropped, including the AutoCreatedLocal route that exposes it automatically becaus eit is on the same SQL Instance.