Ik heb een web applicatie gebouwd die op basis van SQL Notificitions en SignalR berichten kan versturen naar alle web clients, een soort webchat. Er wordt gekeken naar een tabel met daarin berichten. Zodra er een update van deze tabel plaatst vind door bijvoorbeeld een insert stuurt sql een notificatie die door middel van SignalR wordt verzonden naar de web clients. Door middel van jQuery worden de berichten gepresenteerd naar de bezoekers.
Nu loop ik tegen de limieten van SqlDependency aan. SQL stuurt namelijk een notificatie die de OnChange event triggerd. De SqlDependency query moet voldoen aan de volgende eisen: MSDN: Creating a Query for Notification om ook daadwerkelijk de OnChange event te triggeren.
Het probleem is dat mijn tabel behoorlijk groot is en voor mijn basis query die SqlDependency gebruikt kan ik moeilijk een select doen op de volledige tabel. Daarbij komt dat ik alleen geïnteresseerd ben in de laatste 10 berichten(als soort van historie wanneer je de pagina eerste keer bezoekt) en alle nieuwe berichten die vervolgens toegevoegd worden.
De vraag is of deze oplossing uberhaupt gaat werken of dat ik wellicht naar een andere manier moet gaan zoeken om dit voor elkaar te krijgen. Ik heb geen ervaring op dit gebied en zoek dus een goeie manier om een trigger te krijgen van de database op het moment dat er wat gebeurt in mijn tabel.
Ter info:
De tabel met berichten wordt gevuld door een externe applicatie en daar heb ik verder geen invloed op.
Mijn oplossing is gebasseerd op:
signalr - http://signalr.net/
database change notification - http://techbrij.com/datab...net-signalr-sqldependency
Nu loop ik tegen de limieten van SqlDependency aan. SQL stuurt namelijk een notificatie die de OnChange event triggerd. De SqlDependency query moet voldoen aan de volgende eisen: MSDN: Creating a Query for Notification om ook daadwerkelijk de OnChange event te triggeren.
Het probleem is dat mijn tabel behoorlijk groot is en voor mijn basis query die SqlDependency gebruikt kan ik moeilijk een select doen op de volledige tabel. Daarbij komt dat ik alleen geïnteresseerd ben in de laatste 10 berichten(als soort van historie wanneer je de pagina eerste keer bezoekt) en alle nieuwe berichten die vervolgens toegevoegd worden.
De vraag is of deze oplossing uberhaupt gaat werken of dat ik wellicht naar een andere manier moet gaan zoeken om dit voor elkaar te krijgen. Ik heb geen ervaring op dit gebied en zoek dus een goeie manier om een trigger te krijgen van de database op het moment dat er wat gebeurt in mijn tabel.
Ter info:
De tabel met berichten wordt gevuld door een externe applicatie en daar heb ik verder geen invloed op.
Mijn oplossing is gebasseerd op:
signalr - http://signalr.net/
database change notification - http://techbrij.com/datab...net-signalr-sqldependency
Dying is God's way of telling you, you've been FIRED.