> Tech > Service Broker entre 2 bases distinctes

Service Broker entre 2 bases distinctes

Tech - Par iTPro - Publié le 24 juin 2010
email

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

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 gratuitement cette ressource

Guide de Services Cloud Managés

Guide de Services Cloud Managés

Accélérer votre transformation digitale, protéger et sécuriser vos environnements Cloud avec les offres de support, d'accompagnement et de services managés. Découvrez le TOP 3 des Services Managés pour accompagner la transformation de vos environnements Cloud, gagner en agilité et en sécurité dans un monde d'incertitudes.

Tech - Par iTPro - Publié le 24 juin 2010