는 단순히 JVM1 먼저 확인해야 할 수 없습니다 메모리 캐시에 다음 항목이 메모리 캐시에 존재하지 않는 경우, 데이터베이스 캐시를 확인?
그러나 존재하는 모든 특정 유형의 항목을 나열해야하고 데이터베이스에 액세스하지 않으려는 경우. 그런 다음 JVM1이 데이터 베이 스에 새 항목이 있음을 알기 위해 JVM2는 JVM1에 데이터베이스에 새로운 항목이 있음을 알리는 네트워크 메시지를 보내야합니다. 또는 2) 새로운 데이터가 삽입 될 때 발생하는 데이터베이스 트리거가있을 수 있으며 JVM1에 네트워크 메시지를 보냅니다. (그러나 데이터베이스을 응용 프로그램 서버에 보내면 오히려 이상하게 느껴질 것입니다.) - 나는 이러한 접근법이 다소 복잡하다고 생각합니다.
최근에 데이터베이스에 삽입 한 항목의 ID를 기록하는 새로운 항목 ID 테이블을 고려한 적이 있습니까? 데이터베이스 트리거에 의해 업데이트되거나 데이터베이스에 쓸 때 JVM1과 2에 의해 업데이트 될 수 있습니다. 그런 다음 JVM1은 초당 한 번씩이 단일 테이블을 폴링하여 새 ID 목록을 얻은 다음 데이터베이스에서 새 항목을로드 할 수 있습니다.
마지막으로 분산 캐시를 고려 했습니까? 따라서 JVM1과 2는 동일한 캐시를 공유하며 JVM1과 2는 데이터베이스에 데이터를 삽입 할 때이 캐시에 항목을 씁니다. (이 접근법은 JVM1과 2간에 네트워크 메시지를 전송하는 것과 다소 유사하지만 분산 캐시 시스템은 메시지 자체를 전송하므로 새로운 코드를 작성할 필요가 없습니다.)
해답을 제공해 주셔서 감사합니다. 사실 나는 트리거 부분을 보았고 우리가하고 싶은 것은 데이터베이스 상호 작용이 없어야했기 때문에 JVM2에서 데이터베이스에 대한 히트 수를 제어하지 않으므로 UI 트랜잭션 수 (db 업데이트). 그러나 우리는 자바 스토어드 프로 시저를 트리거와 함께 생성하여 자바 저장 프로 시저가 JVM2의 캐시를 제어 (항목 추가/삭제) 할 수 있도록 약간 다른 방법을 시도했습니다. –