Archiwa kategorii: Bazy danych

Database Change Notification – odbieranie zdarzeń z bazie danych Oracle

Dzisiaj będzie krótko, bo w związku ze zmianą mojego Centrum Dowodzenia (czyt. mieszkania) mam ostatnio trochę mało czasu i dużo gratów na głowie :) Będzie o tym, w jaki sposób w aplikacji napisanej w Javie odbierać zdarzenia z bazy danych Oracle. Po co to robić? Ano czasami trzeba, np. gdy duża część logiki biznesowej siedzi już w procedurach na bazie i nie ma szybkiego sposobu, żeby się jej pozbyć, albo mamy kilka aplikacji korzystających z tej samej bazy i nie mamy innego sposobu niż baza na zapewnienie komunikacji między nimi. W każdym bądź razie kiedyś musiałem takiego potworka zrobić i pomyślałem, że się tym podzielę.

Muszę też zaznaczyć, że jeśli tworzysz aplikację od nowa, bądź masz nieco możliwość wyboru rozwiązania, nie czytaj dalej. Użyj JMS, wywołuj zdarzenia po RMI, zrób cokolwiek byle nie to. Potraktuj bazę danych jako składnicę danych i nic więcej – ułatwisz życie sobie i innym, którzy mają utrzymywać później Twój kod. Zapytasz dlaczego? Po pierwsze nie ma jednego uniwersalnego sposobu na otrzymywanie zdarzeń z bazy (no chyba że w grę wchodzi cykliczne odpytywanie) i jest on zależny od danego dostawcy bazy danych. Po drugie, nie wszystkie bazy danych taki mechanizm mają. Po trzecie, może okazać się, że implementacja tego mechanizmu nie jest doskonała i napotkamy szereg problemów przy jej wdrożeniu. Jeśli już naprawdę potrzebujesz takiego rozwiązania, chcę Ci zaprezentować mechanizm Database Change Notification w bazie danych Oracle.

Czytaj więcej »