> Tech > Envoyer et recevoir des messages

Envoyer et recevoir des messages

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

Il ne reste plus, maintenant qu'à tester le fonctionnement de l'architecture Service Broker ainsi mise en place. Ainsi, depuis la base bd1 le dialogue est initié.

use bd1;
go
begin tran
DECLARE @identifiantConversation UNIQUEIDENTIFIER
-- Initier le dialogue

Envoyer et recevoir des messages

/>
BEGIN DIALOG CONVERSATION @identifiantConversation
FROM SERVICE service1 TO SERVICE ‘service2’
ON CONTRACT [ContratExemple]; declare @messagePersonnalise xml;
set @messagePersonnalise=
N'<client><nom>DUPONT</nom><prenom>Jean</prenom></client>’;
SEND ON CONVERSATION @identifiantConversation
MESSAGE TYPE MResultat (@messagePersonnalise);
commit tran;
go

Depuis la base de données cible, il est possible de lire est de traiter le message reçu de la façon suivante :

use bd2
go
begin tran
DECLARE @identifiantConversation UNIQUEIDENTIFIER
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, conversation_handle
FROM file2
INTO @messageRecu,@identifiantConversation ),
TIMEOUT 10;
select * from @messageRecu;
— Lire le message
declare @message nvarchar(4000);
select @message=substring(msg, 1, 4000) from @messageRecu
— lire le message et récupérer les informations
if (@message is not null)
begin
declare @identifiantDocumentXML int;
declare @nom nvarchar(80);
declare @prenom nvarchar(80);
exec sp_xml_preparedocument @identifiantDocumentXML output, @message;
select @nom=text from openxml(@identifiantDocumentXML,’/client/nom’) where nodetype=3;
select @prenom=text from openxml(@identifiantDocumentXML,’/client/prenom’) where nodetype=3;
— Ajouter le nouveau client
INSERT INTO exemple.clients(nom, prenom) VALUES (@nom, @prenom); end;
— Mettre fin a la conversation
END CONVERSATION @identifiantConversation;
commit tran;


Téléchargez gratuitement cette ressource

*** SMART DSI *** VERSION NUMÉRIQUE

*** SMART DSI *** VERSION NUMÉRIQUE

Découvrez SMART DSI, la nouvelle revue du Décideur IT en version numérique. Analyses et dossiers experts pour les acteurs de la transformation numérique de l'entreprise, Gagnez en compétences et expertise IT Professionnelle avec le contenu éditorial premium de SMART DSI.

Tech - Par iTPro - Publié le 24 juin 2010