Find which databases have a particular service in SQL Server Service Broker
you can have the same service in different databases on the same instance and in that case, you should use the service_broker_guid to distinguish them when you BEGIN DIALOG CONVERSATION


No.  Typically you should let Service Broker Routing to find the correct target service for the new conversation.  If you have multiple services with the same name on a SQL Instance, the default behavior is to round-robin new conversations across the matching broker instances.  If you want all the conversations initiated by from a database targeting a service b to route to a specific database, then add a route in the initiating database specifying the broker_id of the target database.  EG

CREATE ROUTE b_route  
    WITH   
    SERVICE_NAME = 'b',  
    BROKER_INSTANCE = 'EF782150-7F7B-4544-937E-B03CF2A3248C',  
    ADDRESS = 'LOCAL' ;  


This allows you to specify the routing at deployment time, and your service broker code does not need to specify the target broker instance.