Vous devez avoir un compte et tre connect pour pouvoir participer aux discussions.

Vous navez pas encore de compte m ? Linscription est gratuite et ne vous prendra que quelques instants !

Lobjet de Service Broker, intgr partir de SQL Server 2005, est de fournir un outil de messagerie de base de donnes permettant de grer des flux de donnes entre serveurs SQL de manire asynchrone, srialis et transactionns.

Lutilisation de Service Broker est assez vaste et repose sur le principe des bases de donnes distribues

Au niveau politique, le but de Service Broker est de replacer le PC au centre de lentreprise. Les serveurs ayant tendance grossir tellement que le mot PC (Personal Computer) devient obsolte et les serveurs daujourdhui ressemble de plus en plus aux mainframes dantan.

Au niveau technique, Service Broker est constitu dun ensemble doutils bas sur un principe de Service HTTP et de files dattente de message. On aura compris que Service Broker permet de vhiculer des informations entres serveurs SQL quelque soit la distance (sur la couche http dInternet).

Informatique dpartementalise : un serveur de base de donnes par services (RH, comptabilit, commercial, production) communiquant leurs informations communes via Service Broker.

Rpartition de charge, lissage de traitements : une batterie de serveurs SQL consomment des messages et les traitent.

Fiabilisation de systme : chaque machine de production (chaîne de fabrication de vaccins humains) est dot dun serveur SQL qui empile ses message et les envois un serveur central pour consolidation. En cas dindisponibilit du serveur cible, comme en cas de panne de rseau, le systme continu produire en toute indpendance.

Laspect asynchrone se traduit par le fait que le message est plac en file dattente, ce qui permet au programme de continuer son travail sans attendre la rponse et vite ainsi les goulets dtranglement. En fait le message sera trait par Service Broker qui assure un vritable service de messagerie, avec la scurit en plus !

Voyons comment cela fonctionne avec un simple petit exemple que vous pouvez reproduire chez vous

* exemple basique du service broker (base de donnes distribues) *

* un change de message au sein de la mme base pour montrer *

* laspect transactionnel et asynchrone de la chose *

********************************************************************/

/*******************************************************

*******************************************************/

/*******************************************************

— ETAPE n1 : mise en place des objets de travail

*******************************************************/

— cration des services et initiation de la conversation

CREATE SERVICE SRV_1 ON QUEUE Q_1 ([DEFAULT]);

CREATE SERVICE SRV_2 ON QUEUE Q_2 ([DEFAULT]);

— AUTHORIZATION owner_name :: permet de crer le service pour un autre user SQL

— ( contract_name [DEFAULT] [ ,…n ] ) :: permet de dfinir des contrats associs au service

/*********************************************

*********************************************/

— interrogation de la file dattente côt reception (en fait une table dun type particulier)

–= Par dfaut on ne peut pas transmettre en clair ! Il faut crypter

— cration dune clef de cryptage pour la base

— LIFETIME = dure en sec par dfaut 2 milliards de secondes (en fait maxint, soit 68 ans)

/*********************************************

*********************************************/

SELECT TOP(1) @MSG = message_body, @HDL = conversation_handle

PRINT Le message transmis est : + CAST (@MSG AS VARCHAR(MAX));

— le message est toujours dans la file. Il na pas t dpil

/*********************************************

*********************************************/

–= Receive : nouvel ordre Transact SQL comparable au SELECT, mais : LECTURE UNIQUE (DESTRUCTRICE) !

— en fait dpile le message de la pile consititu par la table Q_2 ou le place dans un statut lu,

— en fonction des paramtres de rtention dfinit lors de la cration de la queue

— le message nest plus dans la file. Il a t consomm

–= le message envoy en retour et le message indiquant la fin du dialogue :

— message_type_name EndDialog (XML schma du Service Broker MS)

/*********************************************

*********************************************/

RECEIVE TOP(1) @MSG = message_body, @HDL = conversation_handle

— le message est reçut et son enveloppe dtruite

— affichage du message dacuittement côt expditeur

PRINT Le message est : + CAST (@MSG AS VARCHAR (max));

/*********************************************

*********************************************/

SELECT name, service_broker_guid, is_broker_enabled

— modification du service broker pour la base

Il nous faudrait encore parler des CONTRACT, des ROUTE et de bien dautres objets que lon trouve dans cet outil, mais l cest une autre affaire

Quelques liens intressantpour continuer vos investigations au sujet de Service Broker :

Pour les diffrents aspects de la scurit, voir : Mikaël M.).

Pro SQL Server 2005 Service Broker Klaus Aschenbrenner Apress 2007

The Rational Guide to SQL Server 2005 Service Broker Roger Wolter Rational Press 2006

SQL Server 2005 Practical Troubleshooting : The Database Engine Ken Henderson Addison-Wesley 2006

Frdric BROUARD, Spcialiste modlisation, bases de donnes, optimisation, langage SQL.

Le site sur le langage SQL et les S.G.B.D. relationnels :

Expert SQL Server : audit, optimisation, tuning, formation

* * * * * Enseignant au CNAM PACA et lISEN Toulon * * * * *

Cette entre a t publie dansLangage SQL (norme)MS SQL ServerSQL Server 2005SQL Server 2008le

Modification de ltat des jobs de lagent SQL dans le cadre dun basculement dtat du mirroring

Vous deveztre connect(e)pour rdiger un commentaire.

Une peste nomme NOLOCK et comment lviter

Comparer deux requtes aux rsultats identiques

SQL Server 2017 comparatif performances Linux vs Windows

dansGestion gnrique des tables de rfrence

dansFragmentation physique des fichiers et temps de rponse

dansFragmentation physique des fichiers et temps de rponse

Contacterle responsable de la rubrique Accueil