IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

Notifier les changements d'une base de donn�es SQL Server � son application .Net


Sujet :

Dotnet

  1. #1
    Expert confirm�

    Avatar de Francis Walter
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2012
    Messages
    2 315
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : B�nin

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2012
    Messages : 2 315
    Par d�faut Notifier les changements d'une base de donn�es SQL Server � son application .Net
    Bonsoir,

    Je vous pr�sente un nouveau tutoriel : Comment notifier les changements d'une base de donn�es SQL Server � son application .Net par Loick DESTIN de Soat.

    SQL Server est un syst�me de gestion de base de donn�es � Made In Microsoft � tr�s complet qui offre l'acc�s � plusieurs services. Ceux qui vont nous int�resser ici, sont ceux qui vont permettre � notre base de donn�es de notifier nos applications de ses changements.

    En effet, gr�ce � certains services dont on va parler dans cet article, il est possible d'envoyer des messages � nos applications, mais aussi de cr�er des requ�tes de notification, on y reviendra plus tard. Commen�ons par le � Service Broker �.


    Retrouvez tous les meilleurs cours et tutoriels pour apprendre Microsoft SQL Server

  2. #2
    R�dacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par d�faut
    J'ai essay� la technique d�crite dans cet article (notifications SQL Server) il y a pas mal d'ann�es (fin 2006) sous SQL Server 2005.

    L'environnement en question nous a permis de voir comment l'outil se comporte sous la charge (donn�es qui changent tr�s souvent, nombre d'applications clientes qui est rapidement pass� de 2 � une petite dizaine...).

    ---

    Nous avons �t� confront�s � un certains nombre de probl�mes :

    - une fois que l'�v�nement OnChange est lev�, il est n�cessaire de se r�abonner. Le probl�me, c'est que si l'abonnement �choue pour une raison ou une autre (ex.: base surcharg�e) et qu'on ne le d�tecte pas correctement, alors on perd toute notification, plus rien n'est mis � jour et on ne s'en rend pas forc�ment compte tout de suite

    - plus emb�tant : dans certains cas (je n'ai pas pu v�rifier mais je pense que �a arrive quand on perd la communication client-serveur ou quand le client crash, et donc on n'a pas pu appeler � la m�thode SqlDependency.Stop() correctement), on se retrouve avec des transactions en suspens, ce qui n'est pas bon du tout. �a a pos� tout un tas de probl�mes au niveau de la maintenance de la base (backups qui �chouent, fichiers de log transactionnels extr�mement volumineux...)


    Vu les probl�mes recontr�s, nous avons pr�f�r� faire machine arri�re et trouver d'autres solutions (m�me un simple pooling de base, �a posait moins de probl�mes !)

    ---

    J'avais bien pens� � �crire un article dessus � l'�poque (vers 2007), mais j'ai pr�f�r� m'abstenir.

    � mon sens, cet outil n'est pas � mettre entre toutes les mains :

    - il est tr�s facile de se retrouver avec des cas � probl�mes (m�canisme de notification qui s'arr�te subitement, transactions qui restent en suspens suite � un dysfonctionnement logiciel...)

    - si on est capable d'impl�menter les notifications correctement, alors on est tout aussi capable de trouver d'autres solutions beaucoup plus sures (ex: notifications g�r�es au niveau du logiciel et non pas par la base elle-m�me)


    Ce qu'il faut retenir : il ne faut pas multiplier les notifications SQL � outrance, car au-del� d'une certaine charge �a devient vite dangereux. Votre DBA vous dira merci.
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pyd�velop

    Derniers articles:

    (SQL Server) Introduction � la gestion des droits
    (UML) Souplesse et modularit� gr�ce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  3. #3
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de donn�es
    Inscrit en
    Novembre 2004
    Messages
    1 795
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : Architecte de base de donn�es
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par d�faut
    Assez daccord avec Pierre, j'ai personnellement r� impl�ment� pour mes d�veloppeurs un syst�me de notification perso inspir� de SQlCacheDependency...

  4. #4
    Membre tr�s actif
    Avatar de landry161
    Homme Profil pro
    C#,PHP,MySQL,Android...
    Inscrit en
    Juillet 2010
    Messages
    423
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : C�te d'Ivoire

    Informations professionnelles :
    Activit� : C#,PHP,MySQL,Android...

    Informations forums :
    Inscription : Juillet 2010
    Messages : 423
    Billets dans le blog
    1
    Par d�faut
    Tr�s bon tutoriel

Discussions similaires

  1. R�ponses: 1
    Dernier message: 04/01/2012, 18h08
  2. R�ponses: 1
    Dernier message: 18/09/2011, 01h55
  3. R�ponses: 3
    Dernier message: 28/01/2010, 14h22
  4. R�ponses: 3
    Dernier message: 01/09/2005, 16h24
  5. R�ponses: 3
    Dernier message: 29/03/2004, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo