2009-08-24 2 views
1

데이터베이스에서 읽은 데이터를 캐싱하는 간단한 DAO 빈을 구현해야한다. 이 DAO 빈은 Stateless Bean에서 사용됩니다.싱글 톤 같은 EJB3.0 빈을 구현하는 방법은 무엇입니까?

EJB3.0은 싱글 톤 빈을 지원하지 않으므로, 그러한 DAO 빈을 구현하는 올바른 방법은 무엇입니까? 캐시를 유지하기 위해 정적 변수를 사용하는 것이 좋습니까?

우리는 Oracle AS를 사용 중이며 클러스터링을 사용하지 않을 것입니다.

답변

4

캐싱 동작을 위해 jmx mbean을 사용하는 것이 다소 응용 프로그램 간 방식으로 "올바른"방법입니다. mbeans은 싱글 톤 (앱 별 서버)이며 스레딩 및 잠금과 같은 작업을 수행 할 수 있습니다. 물론 사용하는 응용 프로그램 서버에 따라 mbeans은 실제로 작동하기가 다소 어려울 수 있습니다.

2

대부분의 응용 프로그램 서버와 JPA 구현은 사용자가 제어 할 수있는 일종의 내장 캐싱 메커니즘을 제공합니다. 싱글 톤을 만들 필요없이 원하는 것을 성취하는 방법을 조사하는 것이 가치가있을 수 있습니다.

싱글 톤 및 J2EE의 주요 문제점 중 하나는 클러스터 환경에서 쉽게 처리 할 수 ​​없다는 것입니다.

모두 제가 말한대로 article은 JBoss에서 원하는 것을 할 수있는 제안을하고 EJB3.1에 대한 새로운 @Singleton 주석을 언급하므로 가능성이 있습니다. 그게 효과가 있다면,이 질문에 대한 또 다른 답으로 무엇을했는지 적어 두어야합니다.

+0

우리는 이미 EclipseLink 캐싱을 사용하고 있지만 충분하지 않은 몇 가지 경우가 있으며 수동으로 캐싱을 구현해야합니다 – tputkonen

0

Weblogic 서버에서 실행중인 경우 실제로 클러스터를 인식하는 싱글 톤 Bean을 구현할 수 있습니다. 나는이 기능이 다른 응용 프로그램 서버에 있다고 생각하지 않습니다.

관련 문제