2014-10-06 1 views
1

공통 데이터베이스를 공유하는 두 개의 앱이 있습니다. 두 번째 앱은 어떤 데이터도 저장하지 않지만 첫 번째 앱에서 생성 한 데이터를 사용합니다. 둘 다 캐시를 ​​사용할 수있는 JPA를 사용합니다. 문제는 내가 첫 번째 앱으로 데이터베이스를 업데이트 할 때 캐시가 두 번째 캐시가 아닌 것입니다. 첫 번째 데이터베이스를 업데이트하자마자 두 번째 데이터베이스를 새로 고치고 싶습니다. 두 번째 앱이 캐시에서 일부 항목을 제거하여 이러한 항목에 대한 다음 호출시 다시로드하도록 알려주는 내장 된 "메시징"/ "트리거"메커니즘이 있습니까?동일한 데이터베이스를 공유하는 두 개의 서로 다른 응용 프로그램간에 지속성 컨텍스트를 동기화하는 방법은 무엇입니까?

필자는 EclipseLink를 사용하지만 이상적인 표준 방법이 있습니다.

감사합니다.

답변

0

표준 프로세스가 없습니다. EntityManagerFactory 객체가 2 개있는 경우 다른 곳에서 무언가가 변경되었음을 알리고 L2 캐시를 업데이트해야합니다. 일부 JPA가 아닌 다른 프로세스에서 데이터베이스 내용을 업데이트하는 경우에도 마찬가지입니다.

RDBMS를보고 일부 테이블이 변경 될 때 수신기 프로세스에 알리는 메커니즘이 있는지 확인하십시오.

+1

예. 감사. EclipseLink의 경우이 튜토리얼을 찾았지만 오라클 DB에만 사용되는 것처럼 보입니다 ... http://wiki.eclipse.org/EclipseLink/Examples/JPA/DCN – Thomas

+0

OK, JDBC를 사용하여 LISTEN과 일부 폴링을 사용하고 있습니다. 자바 쪽 + 캐시 퇴거가 필요한 테이블에 트리거를 만듭니다. – Thomas