EJB3 Singleton Session Bean을 사용하는 경우 ConcurrentHashMap 상태 변수를 올바르게 지정해야 할 필요가 없습니다. Container Concurrency Manager에 의해 관리되는 정규 HashMap을 사용할 수 있습니까?EJB3 단일 세션 Bean 및 ConcurrentHashMap
3
A
답변
3
맞습니다. 아무것도 지정하지 않으면 기본적으로 싱글 톤 세션 빈은 컨테이너 관리 동시성을 사용합니다. 또한 지정하지 않으면 모든 비즈니스 및 시간 초과 메소드에는 기본적으로 LockType.WRITE가 있습니다. 결과는 싱글 톤에서 동시에 여러 메소드를 실행하는 스레드가 없기 때문에 결과적으로 일반 java.util.HashMap을 사용하면 완벽하게 문제가되지 않습니다.
3
모든 메소드의 기본값은 @ConcurrencyManagement(CONTAINER)
이고 @Lock(WRITE)
이며 모든 메소드 호출이 쓰기 잠금 대기를 차단하므로 ConcurrentHashMap
으로 확장되지 않습니다. @Lock(READ)
과 ConcurrentHashMap
을 사용하여 여러 스레드를 허용 할 수 있지만 그 시점에서는 @ConcurrencyManagement(BEAN)
을 사용하여 컨테이너 관리 동시성을 완전히 제거 할 수 있습니다.
관련 문제
- 1. 서블릿에서 JBoss 5 AS 및 EJB3 bean 주입?
- 2. EJB 3.1의 다중 인스턴스 단일 인터페이스/단일 세션 Bean
- 3. Jboss Message Bean (EJB3) - 구성 이름
- 4. POJO를 기반으로 EJB3 주석이 달린 bean 생성하기
- 5. Java의 ConcurrentHashMap 및 Hashtable
- 6. 세션 범위 관리 Bean 및 actionListener
- 7. 세션 범위 Managed Bean 패시베이션
- 8. 서블릿의 ConcurrentHashMap
- 9. ConcurrentHashMap 사용하기
- 10. 원격 EJB3 세션 빈에서 InitialContext를 사용하는 이유
- 11. Jboss 및 EJB3 배포
- 12. EJB3 상관 ID
- 13. EJB3 Bean 또는 런타임 종속성 검사에서 선택적 주입
- 14. ConcurrentHashMap 수정 자의 동기화
- 15. Stateful Session Bean 대 Stateless Session Bean
- 16. EJB3 RMI 클라이언트
- 17. ConcurrentHashMap foreach 루프 문제
- 18. ConcurrentHashMap 메모리 오버 헤드
- 19. Java ConcurrentHashMap 타락한 값
- 20. EJB3 비즈니스 로직 패턴 및 사례
- 21. JUnit을 EJB3 및 JPA와 함께 사용하는 방법
- 22. EJB3/DB2 트랜잭션 롤백되지 않음
- 23. Faces BackingBean에서 EJB3 호출하기
- 24. GenericFacesPortlet에서 세션 범위 Bean 가져 오기
- 25. 장기 실행 세션 bean 메소드에서 상태 리턴
- 26. 스프링 세션 범위 bean, thread-safety
- 27. 세션 캡처 된 관리 Bean 싱크 화
- 28. ejb3 jboss7 arguments
- 29. 단일 MySQL의 세션
- 30. 값을 하드 코딩하지 않고 EJB3 메시지 구동 Bean 영구 가입에 대해 clientId 및 subscriptionName을 어떻게 지정합니까?
늦게 답장을 드려 죄송합니다. 도움을 주셔서 감사합니다. 매우 유용했습니다. –
@ JasonH 답변으로 문제가 해결되면 답변을 수락해야합니다 (답의 왼쪽에있는 체크 표시를 클릭하십시오). –