08. februar 2007 - 12:48Der er
7 kommentarer og 2 løsninger
Trigge service på server
Jeg ved ikke hvilke ord jeg skal søge efter ude på nettet så jeg spørger direkte her:
Jeg har en applikation hvor der skal gemmes billeder. I stedet for at fylde dem ind i et image-felt vil jeg have billederne liggende som filer i en katalogstruktur.
I databasen gemmes filens navn, samt det MD5-navn det har fået.
Når min applikation skal se billedet vil jeg kalde en Stored Procedure der trigger en service (program/service) på serveren der finder filen, indsætter den i en billedecache og returnerer nøglen til recorden til SP'en, som sender den eller billedet (kan man have en output variabel af typen image?) videre til klient-programmet.
Kan man det?
- Via stored procedure kalde et program på serveren - Returnere image i en stored procedure
N.B. Billederne er naturligvis på/synlig fra serveren.
Tanken med det hele er at al kommunikation går gennem database-forbindelsen. Der skal ikke åbnes for adgang til kataloger, hvilket ville grille muligheden for at lave en web-applikation.
Søg på ordet SqlDependency i google så får du dit svar. Det er en klasse man bruger til at lave triggers helt ud i applikationer via 2005 notifikations lag.
OK, I nævner 2005'eren og .NET; det kan jeg godt kapere. En lille detalje som jeg helt glemte at fortælle om er: Hvad nu hvis jeg udvikler på en 2000? Jeg tror nok kunderne er med på en 2005'er, men så længe de ikke har spyttet penge i projektet er det uvist.
En alternativ løsning er at have et program kiggende i en request-tabel 2-3 gange i sekundet, men den slags er ikke vidre elegant og vil måske give ventetider hvis den ikke skal belaste databasen med polls.
Problemmet er at det kun er 2005 som har en service broker, som blandt andet giver dig mulighed for at sende notificationer ud, via message queing. Hvis du er på ældre versioner skal du som du selv siger, lave en lille service der poller databasen. Der findes desværre ikke andre muligheder. Du skal dog være opmærksom på at på en 2005 skal du ikke abonnere på alt for mange events, da den hurtig bliver trykket i bund. Så hvis du har mange brugere der skal fange et event, skal du igen lave en service der abbonere på eventet og fører eventet videre til de andre abonnenter. Men service brokeren er genial til f.eks. caching.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.