Różnice między Nowym a zagnieżdżonym rozmnażaniem w transakcjach wiosennych
Nie rozumiem różnicy w zachowaniu pomiędzy PROPAGATION_REQUIRES_NEW
i PROPAGATION_NESTED
Polityką propagacji. Wydaje mi się, że w obu przypadkach obecny proces jest rollbacked, ale nie cała transakcja. Jakieś wskazówki?
3 answers
Zobacz ten link: PROPAGATION_NESTED a PROPAGATION_REQUIRES_NEW? Juergen Hoeller wyjaśnij to bardzo dobrze
PROPAGATION_REQUIRES_NEW rozpoczyna nową, niezależną" wewnętrzną " transakcję dla danego zakresu. Ta transakcja zostanie zatwierdzona lub wycofana całkowicie niezależne od transakcji zewnętrznej, posiadające własne zakres izolacji, własny zestaw zamków itp. Transakcja zewnętrzna będzie się zawieszone na początku wewnętrznego i wznowione po wewnętrzny się skończył. ...
PROPAGATION_NESTED z drugiej strony rozpoczyna transakcję "zagnieżdżoną", co jest prawdziwą subtransakcją istniejącego. Co się stanie jest to, że savepoint zostanie podjęta na początku zagnieżdżone transakcja. Jeśli zagnieżdżona transakcja nie powiedzie się, wrócimy do ten punkt zbawczy. Zagnieżdżona transakcja jest częścią zewnętrznej transakcji, więc zostanie ona dokonana dopiero na końcu zewnętrznej transakcja. ...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-12 15:11:02
PROPAGATION_REQUIRES_NEW: używa całkowicie niezależnej transakcji dla każdego dotkniętego zakresu transakcji. W takim przypadku podstawowe transakcje fizyczne są różne i dlatego mogą zostać zatwierdzone lub wycofane niezależnie, przy czym na transakcję zewnętrzną nie ma wpływu status wycofania transakcji wewnętrznej.
PROPAGATION_NESTED: używa pojedynczej fizycznej transakcji z wieloma punktami zapisu, do których może wrócić. Takie częściowe cofnięcia pozwalają wewnętrznemu zakresowi transakcji wywołać wycofanie ze względu na jego zakres, przy czym transakcja zewnętrzna jest w stanie kontynuować transakcję fizyczną, mimo że niektóre operacje zostały wycofane. To ustawienie jest zazwyczaj mapowane na punkty zapisu JDBC, więc będzie działać tylko z transakcjami zasobów JDBC.
Sprawdź dokumentacja sprężyny
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-12 14:55:22
Proszę znaleźć różnicę
1.) Use of NESTED Transaction
Wykonaj wewnątrz zagnieżdżonej transakcji JEŚLI ISTNIEJE bieżąca transakcja, zachowaj się jak PROPAGATION_REQUIRED else. Zagnieżdżona transakcja jest obsługiwana przez Spring
2.) Wykorzystanie wymaganej transakcji Obsługuj bieżącą transakcję, Utwórz nową, jeśli żadna nie istnieje. . Oznacza to dla domeny bankowej, takiej jak wypłata, wpłata, aktualizacja transakcji
3.) Użycie Utwórz nową transakcję i zawieś bieżącą transakcję, jeśli jeden istnieje.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-04 05:45:42