> Tech > Etablir le dialogue

Etablir le dialogue

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

Maintenant que tous les éléments sont définis, il est possible d'initialiser une conversation au sens Service Broker. Pour mener à bien cette tâche le Transact SQL s'est enrichi des termes suivants : BEGIN DIALOG CONVERSATION, MOVE DIALOG, GET CONVERSATION GROUP, END CONVERSATION, SEND, RECEIVE, GET TRANSMISSION STATUS, BEGIN CONVERSATION TIMER.

Etablir le dialogue

La syntaxe détaillée de ces différentes instructions est disponible dans la documentation en ligne de SQL Server 2005, mais une utilisation de quelques une de ces instructions est illustrée avec les exemples qui suivent. Dans l e premier exemple, illustré ci-dessous, l’initiateur et la cible de la conversation, respectivement service 1 et service 2 sont exécutés sur la même base et depuis le même script. Le message au format xml est transmis à la cible qui le récupère depuis la file d’attente associée au service cible, c’est à dire dans ce cas la file 2 qui est la file d’attente associée à sevice 2.

Cet exemple simple, permet de valider simplement l’ensemble de la structure mise en place et d’illustrer les instructions spécifiques au dialogue entre les 2 services.

begin tran
— Exemple d’utilisation de service broker
DECLARE @identifiantConversation UNIQUEIDENTIFIER
— Initier le dialogue
BEGIN DIALOG CONVERSATION @identifiantConversation
FROM SERVICE service1 TO SERVICE ‘service2’
ON CONTRACT ContratExemple WITH ENCRYPTION=OFF;
— Envoyer un message
declare @messagePersonnalise xml;
set @messagePersonnalise=
N'<client><nom>DUPONT</nom><prenom>Jean</prenom></client>’;
SEND ON CONVERSATION @identifiantConversation
MESSAGE TYPE MResultat (@messagePersonnalise);
commit tran;

begin tran
— Lire le message depuis la file d’attente
declare @messageRecu TABLE(
NomService NVARCHAR(512),
NomContrat NVARCHAR(256),
TypeMessage          NVARCHAR(256),
msg          NVARCHAR(MAX));
WAITFOR(
RECEIVE TOP (1) service_name, service_contract_name,message_type_name, message_ body
FROM file2
INTO @messageRecu
),TIMEOUT 10;
select * from @messageRecu;
— Mettre fin a la conversation
END CONVERSATION @identifiantConversation;

commit tran;

Téléchargez gratuitement cette ressource

Sécurité Office 365 : 5 erreurs à ne pas commettre

Sécurité Office 365 : 5 erreurs à ne pas commettre

A l’heure où les données des solutions Microsoft de Digital Workplace sont devenues indispensables au bon fonctionnement de l’entreprise, êtes-vous certain de pouvoir compter sur votre plan de sécurité des données et de sauvegarde des identités Microsoft 365, Exchange et Teams ? Découvrez les 5 erreurs à ne pas commettre et les bonnes pratiques recommandées par les Experts DIB France.

Tech - Par iTPro - Publié le 24 juin 2010