utworzone przez Krzysztof Kądziołka | Hibernate, Java
Często w ramach przetwarzania logiki biznesowej, oprócz modyfikacji różnych danych objętej transakcją pojawia się potrzeba wymiany danych lub komunikacji z zewnętrznymi systemami. Przykładem jest serwer mailowy, inny serwis, system kolejkowy. Wykonując operację z efektem ubocznym w transakcji, mogą wystąpić dwa potencjalne problemy:
- Możesz nie mieć wpływu na działanie tych systemów. Na przykład serwer pocztowy nie odpowiada, pojawia się chwilowy zanik sieci, albo bardzo wolno odpowiada).
- Wykonanie efektu ubocznego i wycofanie transakcji biznesowej. Nie można już odwrócić efektu uczonego (np. nie można wycofać już wysłanego maila).
Jak można sobie z tym poradzić? W tym wpisie opiszę wzorzec The Outbox Pattern.
utworzone przez Krzysztof Kądziołka | Hibernate, Java
Na pewno spotkałeś się z pojęciem równoległej edycji, gdzie wielu użytkowników edytuje (lub próbuje edytować) te same w tym samym momencie…
utworzone przez Krzysztof Kądziołka | Hibernate, Java
Korzystając z Hibernate czy też Java Persistence API dla konfiguracji mapowania danych i operacji korzystasz z mapowania dla encji, operacji i relacji. Ale Hibernate dostarcza dodatkowych anotacji, z których chciałbym Ci przedstawić kilka wybranych.
utworzone przez Krzysztof Kądziołka | Hibernate, Java
Korzystając z Hibernate czy też Java Persistence API dla konfiguracji mapowania danych i operacji korzystasz z mapowania dla encji, operacji i relacji. Ale Hibernate dostarcza dodatkowych anotacji, z których chciałbym Ci przedstawić kilka wybranych.
utworzone przez Krzysztof Kądziołka | Hibernate, Java
Korzystając z Hibernate czy też Java Persistence API dla konfiguracji mapowania danych i operacji korzystasz z mapowania dla encji, operacji i relacji. Ale Hibernate dostarcza dodatkowych anotacji, z których chciałbym Ci przedstawić kilka wybranych.
utworzone przez Krzysztof Kądziołka | Hibernate, Java, Sieci, Tip and Tricks
Tworząc systemy, które wymieniają dane z bazą danych, chcesz, aby komunikacja była niezawodna.
Możesz wykonywać operacje, które mogą być krótkie, ale za to częste, a może będziesz wykonywał takie, które są bardzo długie.
Operacje są wykonywane w ramach nawiązanego wcześniej połączenia do bazy.
Użytkowników systemu przeważnie jest wielu, a ich sesje powinny być niezależne.
W pewnym momencie może się zdarzyć, że użytkownik nie będzie mógł wykonać jakiejś operacji,
ponieważ baza danych odrzuci kolejne połączenie ze względu na jakiś limit.
Ale przez odpowiednią konfigurację możesz zoptymalizować szybkość działania Systemu w zakresie dostępu do nawiązanego
połączenia do bazy danych.