2009-06-24 18 views
5

System A przechwytuje informacje X od użytkowników za pośrednictwem interfejsu użytkownika. Te informacje są sprawdzane i przechowywane w bazie danych. Użytkownik może zmieniać, dodawać lub usuwać informacje. Muszę zachować te informacje X zsynchronizować z Systemem B za pomocą usługi internetowej. Muszę też przesłać te informacje tak szybko, jak to możliwe, po ich utrwaleniu w bazie danych.Czy MSMQ to dobry pomysł?

Pomyślałem o używaniu tutaj MSMQ. System A wyśle ​​wiadomość do kolejki. Inny proces nasłuchujący komunikatów w tej kolejce przetworzy komunikat, odczytując informacje z bazy danych i przesyłając do Systemu B.

Chciałbym wiedzieć, czy warto użyć tutaj MSMQ lub napisać własny mechanizm kolejkowania regularnie odpytywać bazę danych.

Ponieważ wymagane jest prawie natychmiastowe przesłanie i gwarancja, uznałem, że warto użyć MSMQ. Czy są dostępne inne lepsze rozwiązania?

Platforma technologiczna to .Net z bazą danych Oracle.

Odpowiedz

4

MSMQ wydaje się być całkiem przydatny w twoim scenariuszu, ponieważ nie znasz AQ w Oracle. MSMQ jest na tyle szybki, że można go replikować w twoim przypadku. Napisanie własnej kolejki w tym samym celu to nie tylko wymyślanie koła i zwiększanie kodu, który trzeba utrzymywać. Implementacja MSMQ w .NET jest bezproblemowa, co jest kolejnym plusem.

+0

Cóż, nie mam pojęcia o MSMQ, wiem tylko o tej koncepcji. –

+0

Sprawdź, czy ten samouczek pomaga http://www.devx.com/dotnet/Article/27560/0/page/1 – Faheem

4

Pobieranie bazy danych prawdopodobnie nie jest najlepszym pomysłem, szczególnie jeśli używasz Oracle, który już zawiera advanced queueing. Jeśli zdecydujesz się na przeprowadzenie głosowania (wbrew mojej radzie), użyj DBMS_ALERT, aby powiadomić o procesie wysyłania zmian.

+0

Niewiele wiem na temat zaawansowanego kolejkowania. Potrzebuję zalogować rekord w tabeli kolejki, a mechanizm kolejkowania wyroczni wybierze ten rekord i będziemy mogli go przetworzyć. Czy to jest lepsze niż MSMQ? –

+0

Nie mam doświadczenia z MSMQ, więc nie mogę powiedzieć, który z nich jest lepszy. Oba zrobią, prawdopodobnie. –

1

Można rozważyć synchronization services. Możesz użyć zarówno SQL Server and Oracle.

+1

Nie wiem o tym, ale wydaje się, że jest to bezpośrednia baza danych do synchronizacji bazy danych. Nie mogę tego zrobić, ponieważ bezpośrednia łączność nie jest dostępna. Muszę użyć usługi internetowej, aby przesłać dane. –

Powiązane problemy