Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Kolejkowanie w komunikatach OneWay WCF przy użyciu usługi Windows i programu SQL Server

Jestem DBA, więc to nadaje smak mojej odpowiedzi, ale oto, co bym zrobił:

  1. Jeśli używasz SQL 2005+, użyj Service Broker do przechowywania komunikatów w bazie danych zamiast przechowywania ich w tabeli. Dostajesz dzięki temu mechanizm kolejkowania, dzięki czemu możesz pozbyć się MSMQ. Będziesz mieć również tabelę, ale będzie ona przechowywać uchwyt konwersacji (zasadniczo wskaźnik do wiadomości) wraz z liczbą prób tej wiadomości. Na koniec będziesz potrzebować czegoś w rodzaju „skrzynki na martwe listy”, do której trafiają wiadomości, które osiągną próg ponownych prób.
  2. W kodzie przetwarzania wiadomości wykonaj następujące czynności:
    • Rozpocznij transakcję
    • Odbierz wiadomość poza kolejką
    • Jeśli liczba ponownych prób jest większa niż próg, przenieś ją na pole niedostarczonej litery i zatwierdź
    • Zwiększ licznik na stole dla tej wiadomości
    • Przetwórz wiadomość
    • Jeśli przetwarzanie się powiodło, zatwierdź transakcję
    • Jeśli przetwarzanie nie powiodło się, umieść w kolejce nową wiadomość o tej samej zawartości, a następnie zatwierdź transakcję

Zauważ, że nie ma żadnych planowanych cofnięć. Wycofywanie zmian w Service Broker może być złe; jeśli wycofasz się 5 razy bez pomyślnego odbioru, kolejka zostanie wyłączona zarówno dla wpisywania, jak i usuwania z kolejki. Ale nadal chcesz mieć transakcje na wypadek, gdy twój procesor wiadomości umrze w trakcie przetwarzania (tj. Awaria serwera).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Poznawanie formatów daty Postgres i ich różnych funkcji

  2. Dlaczego ISNUMERIC('.') zwraca 1?

  3. SQL Server 2016:Projektant zapytań

  4. Przedstawiamy nową funkcję — raporty Spotlight Cloud

  5. konwersja typu danych varchar na typ danych datetime spowodowała otrzymanie wartości spoza zakresu