Fagioli di sessione (bean di sessione stateless, bean di sessione con stato) Sincronizzati?EJB e sincronizzazione
risposta
Solo un thread alla volta accederà ai bean. È compito del server delle applicazioni gestirlo. Quindi non dovresti usare sincronizzato dai tuoi bean. Questo è il motivo per cui un oggetto non protetto come EntityManager può essere un valore di istanza e non avere problemi di sincronizzazione.
Sì, va bene, ma qualcuno ha fatto questa domanda in un'intervista e io ho risposto allo stesso modo ma non era soddisfatto della mia risposta. –
È sempre possibile che non avessero la minima idea. –
Esattamente. Inoltre, la nuova annotazione @AccessTimeout consente di configurare, in modo portatile, esattamente per quanto tempo si desidera che un thread chiamante attenda che un'istanza diventi disponibile. Si noti inoltre che il nuovo bean @Singleton può essere configurato per consentire l'accesso multithread ma non lo è per impostazione predefinita. Tale decisione è stata presa nel tentativo di mantenere la coerenza dietro le regole predefinite per tutti i bean Session (@Stateless, @Stateful, @Singleton) –
La vera verità sui bean EJB è che, una volta creati bean EJB 3.0, i metodi dell'EJB sono per impostazione predefinita Sincronizzati.
ad es.
@Statelss Classe EJBclass {
vuoto someMethod() {}
}
ora se si farà questo SomeMethod Sincronizza mostrerà errore come è non può essere Sincronizza a questo livello in quanto è sincronizzato.
EJB 3.0 I fagioli sono intelligenti e le prestazioni sono buone.
I java enterprise non sono sincronizzati. Poiché i bean di sessione vengono gestiti dal contenitore ejb, è necessario implementare la logica di sincronizzazione a livello di applicazione.
Sei sicuro di questo? Penso che lo standard JEE sia molto chiaro e solo Entity Beans permetta la configurazione dell'accesso corrente ai loro metodi. Per favore correggimi se sbaglio. – icordoba
Il bean di sessione indica che l'utente è registrato. Se l'utente fa doppio clic accidentalmente sull'azione dell'interfaccia utente, vengono create due richieste http in due thread separati.
- I fagioli senza stato NON SONO SINCRONIZZATI. Ogni thread riceverà un'istanza diversa e entrambi eseguiranno la logica in modo parallelo. Entrambi possono accedere alle stesse risorse!
- I bean di stato vengono sincronizzati dal contenitore. Entrambi i thread avranno la stessa istanza di ejb. Il secondo thread è in attesa di finire il primo. Nessun problema.
I bean di sessione stateless/Stateful sono thread-safe. Poiché ogni richiesta otterrà un'istanza dedicata del bean e quindi non è necessario che sia sincronizzata.
I bean di sessione Singleton sono condivisi e devono essere sincronizzati dal contenitore (Container Managed Concurrency - CMC) o dall'utente (Bean Managed Concurrency - BMC).
- 1. Semaforo e sincronizzazione
- 2. EJB - Ricerca fallita per 'ejb/BookRequestBean'
- 3. Spring vs EJB (vantaggio e svantaggio)
- 4. Pro e Contro: Hibernate vs. EJB 3
- 5. EJB - Home/Remote e LocalHome/interfacce locali
- 6. boost :: asio, thread e sincronizzazione
- 7. Eloquente sincronizzazione e created_at/updated_at
- 8. chiamata tubo e la sincronizzazione
- 9. hashtable e sincronizzazione in Java
- 10. Render-to-texture e sincronizzazione
- 11. App iOS offline e sincronizzazione
- 12. Sincronizzazione animazione, cursore e evidenziare
- 13. classi java anonime e sincronizzazione e "questo"
- 14. EJB su Wildfly che chiama EJB remoto da un'altra Wildfly
- 15. EJB 3.1 Embedded API - Test unitario EJB + entità JPA
- 16. Unit Testing EJB
- 17. Oggetto proxy in EJB
- 18. EJB come controller
- 19. @Singleton in java EJB
- 20. Strategie di test EJB?
- 21. Multi-threading in EJB
- 22. EJB generazione 3 Stub
- 23. Quanti EJB sono troppi?
- 24. EJB weblogic.ejb20.cache.CacheFullException
- 25. Sincronizzazione automatica tra Github e il forno
- 26. Offline sincronizzazione e l'evento di sourcing
- 27. : Riscaricamento delle dipendenze e progetto di sincronizzazione
- 28. Sincronizzazione molla Operazioni Hibernate e JMS
- 29. Come gestire la sincronizzazione pouchdb e couchdb?
- 30. Backup di NSUserDefaults e sincronizzazione di iPhone
sincronizzato con cosa? –
qualcuno mi ha fatto questa domanda, quale dovrebbe essere la risposta corretta? Non ho visto alcun metodo sincronizzato all'interno dell'EJB, direi che EJB non è sincronizzato. Come si chiedeva la gente "Hashtable è sincronizzato?" –
Tecnicamente la tua domanda non è chiara. Intendi: i bean Session devono essere fatti sicuri? o I bean di sessione sono thread-safe? –