Cette fois-ci la mise en place est un peu plus complexe. En effet, Service Broker doit être capable d'accéder au service distant avec un certain contexte de sécurité. Pour cela, il lui est nécessaire de se connecter au serveur. Il n'est pas possible ni même envisageable de coder en "dur"
Service Broker entre 2 bases distinctes
![Service Broker entre 2 bases distinctes Service Broker entre 2 bases distinctes](https://www.itpro.fr/wp-content/uploads/2015/09/aa623782050b639682f44130ce4c762a.jpg)
le mot de passe à utiliser pour se connecter au serveur.
C’est pourquoi la connexion utilisée par service Broker sera basée sur un certificat. Il est également nécessaire de définir une route au niveau Service Broker afin que le service initiateur soit capable de localiser le service route. Ces routes sont tout à fait comparables aux routes qui peuvent être mises en place au niveau du réseau.
La mise en place de ce dialogue entre 2 bases distinctes de la même instance SQL Server est illustrée tout au long des étapes suivantes Pour mettre en place le dialogue Service Broker entre 2 bases, il est nécessaire de respecter les étapes suivantes :
Créer les objets spécifiques à Service Broker : type de messages, contrat, file d’attente, service
create database bd1;
create database bd2;
go
use bd1;
— Définir les types de messages
CREATE MESSAGE TYPE MResultat VALIDATION=WELL_FORMED_XML;
— Définir le contrat
CREATE CONTRACT ContratExemple ( MResultat SENT BY INITIATOR);
— Définir la file d’attente
CREATE QUEUE file1 WITH STATUS=ON;
— Définir le service
CREATE SERVICE service1 ON QUEUE file1([ContratExemple]);
go
use bd2;
— Définir les types de messages
CREATE MESSAGE TYPE MResultat VALIDATION=WELL_FORMED_XML;
— Définir le contrat
CREATE CONTRACT ContratExemple ( MResultat SENT BY INITIATOR);
— Définir la file d’attente
CREATE QUEUE file2 WITH STATUS=ON;
— Définir le service
CREATE SERVICE service2 ON QUEUE file2([ContratExemple]);
Définir les routes pour que chaque service puisse localiser le service distant
Rechercher les identifiants service broker
use master;
go
select name,service_broker_guid from sys.databases where name in (‘bd1′,’bd2’);
Mettre en place les routes
use bd2;
CREATE ROUTE routeVersService1
WITH SERVICE_NAME=’service1′,
BROKER_INSTANCE=’EEC08800-72B7-4543-B451-9253EF17EADB’,
ADDRESS=’LOCAL’;
use bd1;
CREATE ROUTE routeVersService2
WITH SERVICE_NAME=’service2′,
BROKER_INSTANCE=’1122146E-EEE1-4E60-9011-D2355EC5C1B4′,
ADDRESS=’LOCAL’;
Téléchargez cette ressource
![Guide inmac wstore pour l’équipement IT de l’entreprise](https://www.itpro.fr/wp-content/uploads/2024/04/Guide-inmac-wstore-Juillet-2024.jpg)
Guide inmac wstore pour l’équipement IT de l’entreprise
Découvrez les dernières tendances et solutions IT autour des univers de Poste de travail, Affichage et Collaboration, Impression et Infrastructure, et notre nouveau dossier thématique sur l’éco-conception et les bonnes pratiques à adopter pour réduire votre impact environnemental.