Czy ziarna sesji (bezstanowe ziarna sesji, stanowe ziarna sesji) są zsynchronizowane?EJB i synchronizacja
Odpowiedz
tylko jeden wątek na raz będzie dostępu do swoich fasoli. To do serwera aplikacji należy zarządzanie. Więc nie powinieneś używać synchronizacji z poziomu swoich ziaren. Z tego powodu obiekt, który nie jest tak bezpieczny jak EntityManager, może być wartością instancji i nie może mieć problemów z synchronizacją.
Tak, to dobrze, ale ktoś zadał to pytanie w wywiadzie, a ja odpowiedziałem w ten sam sposób, ale nie był zadowolony z mojej odpowiedzi. –
Zawsze jest możliwe, że nie mieli pojęcia. –
Dokładnie. Co więcej, nowa adnotacja @AccessTimeout umożliwia skonfigurowanie, w sposób przenośny, czasu, przez jaki wątek wywołujący ma czekać na udostępnienie instancji. Zauważ również, że nowy komponent bean @Singleton można skonfigurować tak, aby zezwalał na dostęp wielowątkowy, ale nie jest tak ustawiony domyślnie. Ta decyzja została podjęta w celu zachowania spójności z domyślnymi regułami dla wszystkich ziaren Sesji (@Stateless, @Stateful, @Singleton). –
bardzo prawdziwe rzeczą ziaren EJB jest, że po utworzeniu EJB 3.0 fasolę następnie metody EJB jest domyślnie zsynchronizowane.
np.
@Statelss Klasa EJBclass {
void SomeMethod() {}
}
teraz jeśli zrobisz to SomeMethod Synchronizacja pokaże jak to jest błąd nie można synchronizować na ten poziom, ponieważ jest zsynchronizowany.
EJB 3.0 Beans są inteligentne i wydajność jest dobra.
Komponenty Java Enterprise nie są synchronizowane. Ponieważ komponenty bean sesji są utrzymywane przez kontener ejb, musisz wdrożyć logikę synchronizacji na poziomie aplikacji.
Czy jesteś tego pewien? Myślę, że standard JEE jest bardzo przejrzysty i tylko Entity Beans umożliwiają konfigurację bieżącego dostępu do ich metod. Proszę popraw mnie jeżeli się mylę. – icordoba
sesji fasoli oznacza, że użytkownik jest rejestrowany. Jeśli użytkownik przypadkowo dwukrotnie kliknie na działanie interfejsu użytkownika, dwa żądania http są tworzone w dwóch osobnych wątkach.
- Bezpaństwowe ziarna NIE są SYNCHRONIZOWANE. Każdy wątek otrzyma inną instancję i oba będą realizowały logikę paralelnie. Oba mogą uzyskać dostęp do tych samych zasobów!
- Fasolki stanowe są synchronizowane przez kontener. Oba wątki otrzymają tę samą instancję ejb. Drugi wątek czeka, aby zakończyć pierwszy. Nie ma problemu.
Stateless/sesja stanowe ziarna są bezpieczne dla wątków. Ponieważ każde żądanie otrzyma dedykowaną instancję komponentu bean, więc nie musi być synchronizowana.
Ziarna sesji Singleton są współużytkowane i muszą być synchronizowane przez kontener (Kontenerowy Współdziałający Współdziałanie - CMC) lub przez użytkownika (Współzależność zarządzana przez ziarno - BMC).
- 1. EJB 3.1 współbieżność zarządzana kontenerami kontra synchronizacja
- 2. dane i synchronizacja - ręczna synchronizacja poczty. Kalendarz i kontakty
- 3. Semafor i synchronizacja
- 4. Synchronizacja GIT i ClearCase
- 5. połączenia rur i synchronizacja
- 6. Renderowanie do tekstury i synchronizacja
- 7. Asynchroniczne metody EJB 3.1 i transakcje
- 8. Plusy i minusy: Hibernacja vs. EJB 3
- 9. Moduł EAR Maven i testy zależności EJB
- 10. EJB, JNDI i ENC - scenariusz prawdziwe życie
- 11. JAX-RS i obsługi wyjątków EJB
- 12. Synchronizacja kolejki
- 13. Synchronizacja Subversion i Harvest SCM repozytoriów?
- 14. Synchronizacja w metodzie statycznej i instancji
- 15. synchronizacja/konserwacja ścieżek klas mrówek i zaćmień
- 16. Synchronizacja skrótów klawiaturowych z Eclipse i IDEA?
- 17. Synchronizacja danych iOS i Mac OS X
- 18. EJB na Wildfly wywołanie zdalnego EJB z innego Wildfly
- 19. Jednostka testująca EJB
- 20. EJB 3.0 Obsługa wyjątków
- 21. Strategie testowania EJB?
- 22. EJB generacja 3 Stub
- 23. EJB: Unikanie wycofywania transakcji
- 24. EJB weblogic.ejb20.cache.CacheFullException
- 25. EJB/JPA Granice transakcyjne
- 26. synchronizacja bloku cuda
- 27. SQL 2012 Synchronizacja
- 28. Synchronizacja trzech żądań ajaxowych
- 29. Synchronizacja na wartość całkowitą
- 30. "Synchronizacja" dwóch spinnerów
zsynchronizowany z czym? –
ktoś zadał mi to pytanie, jaka powinna być poprawna odpowiedź? Nie widziałem żadnych zsynchronizowanych metod wewnątrz EJB, powiedziałbym, że EJB nie jest zsynchronizowany. Tak jak ludzie pytali "czy Hashtable jest zsynchronizowany?" –
Technicznie twoje pytanie nie jest jasne. Czy masz na myśli: Potrzebujesz fasoli Sesji, aby uczynić ją bezpieczną dla wątków? lub Czy komponenty bean sesji są wątkowo bezpieczne? –