2

Est-il possible d'écouter la mise à jour de la base de données de relation? Par exemple, mon application Web souhaite envoyer des données de mise à jour au client via la technologie Comet. Je peux avoir le programme pour interroger la base de données périodiquement, mais ce ne serait pas performant et évolutif. Si l'application peut capter un "gestionnaire d'événements" de la base de données, l'application peut recevoir une notification à chaque fois que les données de la table de base de données sont mises à jour. Cela semble plus prometteur, mais je n'ai trouvé aucun exemple concret pour cela. C'est un modèle d'écouteur.Est-il possible d'écouter la mise à jour de la base de données relationnelle?

Est-ce qu'une base de données relationnelle commune prend en charge cette fonctionnalité?

Répondre

1

Il est définitivement non-standard donc en général la réponse est NON. Certaines bases de données (Oracle, SQL Server) ont proposé des solutions propriétaires (comme pour beaucoup d'autres cas - le standard SQL est sérieusement limité dans certains scénarios). À la fin, cependant, il interroge toujours. Pardon. La base de données ne peut pas transférer l'événement à l'application.

Dans le cas de SQL Server, la notification de modification sera une entrée dans une file d'attente de messages sur SQL SERVER (à l'aide du courtier de messages SQL Server) et vous devez toujours interroger la file d'attente. Cela dit, un "sondage long" peut être utilisé - vous démarrez un thread séparé qui demande à la base de données pour le prochain changement .... blocage (attente) jusqu'à ce qu'il se produise.

Utilisation du

WAITFOR (RECEIVE * FROM MyQueue); 

style de syntaxe. la demande bloquera jusqu'à ce que quelque chose de fondamentalement soit reçu. Maintenant, si vous utilisez des bases de données "communes" comme MySQL, je pense que vous avez terminé. Comme dans: pas de support. C'est certainement une entreprise haut de gamme.

Questions connexes