Gladh skrev:
Nu hänger jag inte med, du vill ha en services som informerar dig om när något händer i databasen, men du har endast 1 program som skall vara kopplat mot den? Du missar nog att berätta hela sanningen här!!!
Jag kan se följande alternativ, du är inte ensam mot databasen och därför bör ditt program använda sig av connectionpooling när du vill kommunicera med databasen (det finns helt enkelt fler program som accessar din databas och de uppskattar säkert inte att du snor en av databasen kopplingar för "alltid".
Alternativ 2 är att du ensam om databasen och då finns det ju liksom ingen anledning att ditt program skall notificeras om något händer i databasen, eftersom ditt program garanterat är det som gör förändringar i databasen.
- Lite mer info hade varit bra, och speciellt då vilka andra program/tjänster är det som kan ändra på data i databasen, och skulle du kunna styra så att dessa alltid gör dessa via en "ändringsservices" eller accessar de ner till databasen direkt från sina respektive program?
- Vad är det för information som du efterlyser eftersom du är intresserad av att det går "blixtsnabbt" för din applikation att få information, är det viktigt att information kommer i "rätt ordning" eller spelar den någon roll om den kommer i en oordning till dig?
- Hur viktigt är det att du verkligen får information till din applikation, vad händer om något meddelanden försvinner på vägen?
- Kan du låsa protokollet till ett .NET förfarande, eller är det så att andra applikationer skrivna i andra språk även skall kunna abonnera på dina förändringar i databasen?
osv osv...
- M
Ok jag gör ett nytt försök.
En service för att hålla koll på konfigurationen mellan en gammal vb applikation och en databas. I Denna databasen kommer konfigurationsinstälningar för det som ska in i den riktiga databasen finnas. Den här servicen ska läsa av vb-applikationen kontinuerligt med hjälp av ocx som vi ej kan modifiera.
En service kommer konstant mata in massvis med data i databasen kontinuerligt och då hämta instälningar från inställningsdb'n och mata in rätt många rader i sekunden i informationsdatabasen.
Sedan har vi då vår winform aplikation som är kodad i C#. Denna håller koll på informationen i informationsdatabasen, sorterar, filtrerar, paketerar och skriver ut. Utskrifterna görs med hjälp av sql reports.
Undrar om jag missade något...?
Det är endast mina applikationer som gör ändringarna. VB-programet får datan, vi läser av datan och matar in den i databasen. Vi får givetvis inte missa någon information... då blir det fel och jag har faktiskt funderat på det där med i vilken ordning osv. Det är delvis därför jag är anställd :) Just nu har vi en
select top1 id
som med fördel kan bytas ut mot SCOPE_ IDENTITY. Jag har redan stött på problem när jag bug-fixat den aplikationen i nuvarande form där vi har problem med vilka trådar den hämtar information från. Detta löste jag med ado.net transactions och låste transaktionen till den nuvarande tråden.
Det är väl inte superviktigt att vi får all information men det är viktigt att jag i alla fall får veta att information gått förlorad...
Blev det mer rörigt nu?