Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Подреждане на опашка в OneWay WCF съобщения с помощта на Windows Service и SQL Server

Аз съм администратор на база данни, така че това подхожда на моя отговор, но ето какво бих направил:

  1. Ако използвате SQL 2005+, използвайте Service Broker, за да съхранявате съобщенията в базата данни, вместо да ги съхранявате в таблица. С това получавате механизъм за опашка, така че можете да се отървете от MSMQ. Вие също ще имате таблица, но тя просто ще съхранява манипулатора на разговора (по същество указател към съобщението) заедно с колко пъти е опитал това съобщение. И накрая, вие ще искате някакъв вид „мъртва пощенска кутия“, където отиват съобщенията, които достигат прага ви за повторен опит.
  2. В кода си за обработка на съобщения направете следното:
    • Започнете транзакция
    • Получаване на съобщение извън опашката
    • Ако броят на повторните опити е по-голям от прага, преместете го в кутията за мъртви пощенски съобщения и се ангажирайте
    • Увеличете брояча на масата за това съобщение
    • Обработете съобщението
    • Ако обработката е успешна, извършете транзакцията
    • Ако обработката е неуспешна, поставете ново съобщение на опашката със същото съдържание и след това завършете транзакцията

Забележете, че няма планирани връщания назад. Отменянето в Service Broker може да бъде лошо; ако връщате назад 5 пъти без успешно получаване, опашката ще бъде деактивирана както за поставяне на опашка, така и за извеждане от опашка. Но все пак искате да имате транзакции за случая, когато процесорът на съобщенията ви умре по средата на обработката (т.е. сървърът се срине).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какви са разликите между Merge Join и Lookup трансформациите в SSIS?

  2. SQL Server REPLACE() срещу TRANSLATE():Какви са разликите?

  3. Как да инсталирате SQL Server

  4. Изчислете текущата сума в SQL Server

  5. Автоматизиране на обработката на табличен модел на бази данни на услугите за анализ (SSAS) в SQL Server