DB Cache 사용 및 활용
독점적 데이터 불러오기 및 새 데이터 추가 방법
독점적 불러오기 메서드는 Proud.CDbCacheClient2.RequestExclusiveLoadData 입니다. 로딩할 데이터를 검색하기 위해 인자 fieldName과 cmpValue에 찾을 조건을 넣어야 합니다.
사용 예시 입니다.
Proud.CDbCacheClient2.RequestExclusiveLoadNewData 메서드도 마찬가지로 독점적 불러오기 함수지만 RootTable 에 데이터를 추가한 뒤 바로 쓰실 때 사용합니다.
사용 예시 입니다.
일방적 데이터 변경하기
Proud.CDbCacheClient2.UnilateralAddData
Proud.CDbCacheClient2.UnilateralUpdateData
Proud.CDbCacheClient2.UnilateralRemoveData
이 메서드들은 DB cache 메모리에 변경을 반영하고 추후 DBMS에 비동기로 실제 기록을 하기에 호출 즉시 리턴합니다. 또한 응답 메서드 콜백이 없습니다.
DBMS에 먼저 반영되는 요청 응답형 메서드 및 blocked 메서드 사용
DBMS 에 먼저 반영되는 요청 응답형 메서드 및 blocked 메서드 사용은 요청 응답형 데이터 변경 을 위한 메서드 입니다. 호출 즉시 리턴하며, 변경 사항은 실제 DBMS에 기록이 완료된 후에야 DB cache의 메모리에도 반영됩니다.
만약 요청 응답형이 아닌 blocked 호출을 원한다면 이들 메서드를 사용하십시오.
Proud.CDbCacheClient2.BlockedAddData
Proud.CDbCacheClient2.BlockedUpdateData
Proud.CDbCacheClient2.BlockedRemoveData
요청 응답형 SessionGuid
독점 Client 들이 각각 한 개의 Session을 가지게 되고, DB Cache Client는 각각의 Session들을 구분하기 위해 Guid 값을 사용합니다. 요청 시 Output 파라미터로 SessionGuid 값을 발급받고, 응답 Event의 CCallbackArgs::m_sessionGuid로 발급 받았던 값을 받게 됩니다. outSessionGuid를 저장했다가 비교하여 요청한 session을 확인할 수 있습니다.
요청
응답
요청의 outSessionGuid 는 응답의 args.m_sessionGuid 와 같습니다.
비독점적 데이터 접근 방법
비독점적 접근을 허락하기 위해 Proud.CDbCacheServer2StartParameter.m_allowNonExclusiveAccess를 설정해야 합니다.
비독점적 데이터 변경을 성공하면 해당 데이터의 변경사항이 독점적 로딩했던 DB cache client 에 신고됩니다. 신고를 위해 아래의 메서드가 콜백됩니다.
Proud.IDbCacheClientDelegate2.OnSomeoneAddData
Proud.IDbCacheClientDelegate2.OnSomeoneRemoveData
Proud.IDbCacheClientDelegate2.OnSomeoneModifyValue
Proud.IDbCacheClientDelegate2.OnSomeoneSetValue
쉽게 볼 수 있도록 각 요청과 응답 관계를 묶어 보면 다음과 같습니다.
Proud.CDbCacheClient2.RequestNonExclusiveSnapshotData : Snapshot 얻어오기
Proud.CDbCacheClient2.RequestNonExclusiveAddData : 데이터 추가하기
Proud.CDbCacheClient2.RequestNonExclusiveRemoveData : 데이터 제거하기
Proud.CDbCacheClient2.RequestNonExclusiveModifyValue : 데이터에 특정한 연산을 시킵니다.(+, -, *, /)
Proud.CDbCacheClient2.RequestNonExclusiveSetValueIf : 두 값을 비교하여 저장하도록요청합니다.
DB cache 사용 시 주의사항
일방형과 요청 응답형(독점 Data 요청 응답형 & Block형 & 비독점 데이터 접근) 혼용 시 주의사항입니다.
요청 응답형 메서드가 사용되는 동안 일방형 메서드를 사용하게 되면 Proud.IDbCacheClientDelegate2.OnAccessError 가 콜백될 수 있습니다.
변경한 Data에 대한 응답을 받지 못한 상태에서 일방형 메서드를 사용하게 되면 잘못된 Data가 들어갈 수 있습니다.
활용
Last updated