0

MFP 8.0을 사용 중이며 어댑터 수준에서 캐시를 구현하기위한 요구 사항이 있습니다.MFP 8.0 어댑터 캐시

언제든지 MFP 서버가 시작될 때마다 서버가 다시 시작될 때까지 캐시에 모든 데이터베이스를 덤프하려고합니다.

이제 데이터베이스를 호출하는 대신 데이터베이스를 호출하는 일부 트랜잭션 또는 어댑터 프로 시저를 쳤을 때마다 캐시에서 읽어야합니다.

답변

0

어댑터은 백엔드 시스템에 대한 읽기 전용 및 트랜잭션 액세스 모드를 지원합니다.

어댑터은 Java 또는 JavaScript로 구현 된 서버 측 코드가 포함 된 Maven 프로젝트입니다. 어댑터는 필요한 서버 측 로직을 수행하고 백엔드 시스템에서 클라이언트 응용 프로그램으로 정보를 전송 및 검색하여 서비스를 서비스하는 데 사용됩니다.

JSONStore은 가벼운 문서 지향 스토리지 시스템을 제공하는 클라이언트 측 API (선택 사항)입니다. JSONStore를 통해 영구 저장 가능 JSON 문서. 응용 프로그램의 문서는 오프라인에서 오프라인 일 때도 JSONStore에서 사용할 수 있습니다. 이 지속적이고 항상 사용 가능한 저장 장치는 예를 들어 장치에 사용할 수있는 네트워크가 인 경우에 사용자에게 문서에 대한 액세스 권한을 부여하는 데 유용 할 수 있습니다 ( ).

0

설명에서 데이터가 저장된 사용자 정의 DB에 대해 설명한다고 가정하면 데이터 캐싱 논리를 구현해야합니다.

어댑터의 두 클래스는 및 <AdapterName>Resource.java입니다. <> Application.java에는 init()destroy()의 라이프 사이클 메소드가 포함되어 있습니다.

init() 방법으로 DB에서 데이터를로드하는 사용자 지정 코드를 캐시에 저장해야합니다. 또한 destroy()에서 제거하십시오.

트랜잭션 액세스 중 (<> Resource.java), 이미 작성한 캐시를 참조하십시오.

그러나 사용자의 요구 사항은 과부하 시스템에 이상적이지 않을 수 있습니다. 다음을 고려해야합니다.

a) 어댑터 초기화가 지연되었습니다. 잘못 작성된 코드는 어댑터 초기화를 중단시킬 수도 있습니다. 초기화되기 전까지 어댑터는 요청을 처리 할 수 ​​없습니다. 클러스터 환경의 경우,로드중인 데이터의 양에 따라 모든 클러스터 구성원의 어댑터로드가 지연됩니다. 이 어댑터 용 클라이언트 요청은 초기화가 완료 될 때까지 런타임 예외를 가져옵니다.

b) 메모리에 캐시를 보유하면 힙의 많은 공간이 소모됩니다. DB가 계속 커지면 어댑터 초기화 및 힙 사용에 나쁜 영향을 미칩니다.

c) 데이터를 최신 레벨로 유지 보수하고 사용 후 청소하십시오.

요약하면 가능하지만 권장하지 않습니다. 이것은 매우 작은 데이터 세트의 경우에도 작동 할 수 있지만 이것은 잘 확장 할 수 없습니다. 어댑터의 설계는 데이터/백엔드 시스템에 대한 트랜잭션 액세스를 제공하는 것입니다. 어댑터는 의도 한대로 사용해야합니다.

관련 문제