2009-08-03 5 views
0

J'ai un tcp \ server (.NET 3.5) qui notifie aux clients connectés des événements intéressants aah. Ces événements se produisent parce qu'un site Web aspx écrit des choses dans une base de données (SQL 2005) Ce qui serait un bon moyen pour ce serveur de surveiller la base de données pour ainsi dire Est-ce que le db peut envoyer des informations au serveur?tcp changements de base de données de suivi de serveur ip

toutes pensées suggestions bienvenues grâce

Répondre

1

Jetez un oeil à SQL Service Broker - http://msdn.microsoft.com/en-us/library/ms345108(SQL.90).aspx.

Pour aller plus loin, vous pouvez utiliser SqlDependency. Il y a un joli petit article sur CodeProject - http://www.codeproject.com/KB/database/chatter.aspx.

Il y a quelques mises en garde qui l'utilisent mais beaucoup d'entre elles sont déjà décrites sur le web. Utilisez les ressources suivantes:

  1. http://www.wintellect.com/CS/blogs/jprosise/archive/2005/12/06/sqlcachedependency-hell.aspx
  2. http://davidhayden.com/blog/dave/archive/2006/04/29/2929.aspx

services Broker SQL est assez vaste pour entrer en détails avec, mais j'espère que je vous ai donné de bonnes ressources pour démarrer avec.

+0

um courtier met essentiellement des données d'une table à une autre table? ou est-ce que je le comprends mal J'ai besoin d'un service en cours d'exécution \ .exe pour être averti quand le db change merci – Rahul

+0

Ce que vous devez regarder plus loin est SqlDependency. Je vais mettre à jour ma réponse dans un peu. –

0

J'ai eu un problème similaire. Notification instantanée nécessaire de l'insertion de données. J'ai utilisé SQL Broker Service et procédure stockée CLR (écrit en C#). La procédure informe sur les données insérées à une autre application en utilisant socket.

Vous pouvez écrire CLR similaire stocké proc ou CLR Trigger (asynchrone Offcource lorsque vous utilisez un service de courtier)

Questions connexes