Avatar billede skovjuul Nybegynder
17. juni 2007 - 16:04 Der er 8 kommentarer og
1 løsning

Lave kø-håndtering via db

Hola...

Jeg er ved at lave noget client/server programmering og i den forbindelse vil jeg lave noget kø-styring i min DB. Dvs. indsætte ting fra clienterne som så mit server-program kan hente og sende videre via mail/sms.
Så hvor mange problemer render jeg ind i hvis (semicode):
Kopier fra aftale-tabel til Kø-tabel.

Select første og send
try update aftalte-tabel where aftale-key = kø-key
delete fra kø-tabel.

repeat sidste 3 linier til kø-tabel er tom, start polling hvert 10. min.

Ville ovenstående holde når der midt i det hele kan indsættes yderligere 100 entries i kø-tabellen?
Vil der opstå time-outs og afbrydning af det hele eller vil tabellen vente med at fortsætte til der er frit i den næste tabel den skal arbejde med? Eller hvordan styrer jeg vente-metoder?

Lidt rodet beskrevet men jeg håber idéen kan ses.

På forhånd tak for hjælpen.
Jesper
Avatar billede arne_v Ekspert
17. juni 2007 - 16:16 #1
Du bør bruge InnoDB tabeller og transaktioner for at få det til at fungere.

Men det bør kunen fungere. Endda rimeligt hurtigt.

Er du opmærksom på at der findes specialiseret message queue software (som også
kan persistere data til database, så de kan klare en reboot) ?
Avatar billede skovjuul Nybegynder
17. juni 2007 - 20:17 #2
Jeg bruger en MySql-database så det skal helst kunne lade sig gøre på den platform.

Med transaktioner mener du så bare begintransaction, -commit og rollback? Eller findes der andre?

Har du nogle links eller andet til det message queue software og kan det nemt integreres i Delphi?
Avatar billede arne_v Ekspert
17. juni 2007 - 20:23 #3
MySQL kan bruge InnoDB tabeller (hvis serveren er sta op til det).

Ja det er den slags transaktioner.
Avatar billede arne_v Ekspert
17. juni 2007 - 20:27 #4
Jeg er ret sikker på at MSMQ kan integreres i Delphi.
Avatar billede skovjuul Nybegynder
17. juni 2007 - 20:45 #5
Hvad er forskellen på InnoDB-tabeller og "almindelige" tabeller?

Jeg lavede lige en hurtig søgning på MSMQ. Kører det kun på MS Server 2003 eller også alm. xp og vista?
Avatar billede skovjuul Nybegynder
18. juni 2007 - 17:02 #6
Nå, men tak for henvisningerne, smid et svar for nogle point.

Hygge
Avatar billede arne_v Ekspert
18. juni 2007 - 21:22 #7
InnoDB og MyISAM er to forskellige tabel formater i MySQL.

Laes mere paa http://dev.mysql.com/doc/refman/5.0/en/storage-engines.html
Avatar billede arne_v Ekspert
18. juni 2007 - 21:23 #8
Jeg meenr at MSMQ er med i XP - og saa er den nok ogsaa i Vista.
Avatar billede arne_v Ekspert
18. juni 2007 - 21:23 #9
Og et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester