Framework/ProFrame
[ProFrame C] TCache 초기화 (pfmTCacheInvalidate api 사용법 및 주의사항)
Reo Dongmin Lee
2018. 8. 22. 14:25
pfmTCacheInvalidate API는 TCache가 관리하는 cache_name 테이블에서 입력된 key에 해당하는 레코드 데이터를 초기화 한다.
사용법은 다음과 같다.
long pfmTCacheInvalidate( const char* cache_name, const char* key, long flags );
구성 | 설명 |
cache_name | pfmtcache.cfg의 “CACHE_NAME”에 정의한 캐쉬 이름 |
key | 입력 데이터의 앞 부분부터 pfmtcache.cfg 파일에 기록된 “SIZE_KEY”의 길이 만큼의 데이타 |
flags |
|
return 값 |
|
pfmTCacheInvalidate 함수 사용시 계속해서 에러가 발생하는 경우가 있다.
아래 소스와 같이 에러처리를 했다고 가정하자.
<코드 구현부>
<코드 실행시 log>
계속 되는 TCache Invalidate fail 로 이유를 체크하기 위해 tcache key size도 체크하고 key값 구조체도 찍어보았는데 정상이다.
그런데 여전히 Invalidate는 fail 된다.
이유는 해당 tcachbe가 이미 invalidate 되었을경우 같은 tcache를 다시 invalidate를 할 수 없기 때문에 발생한다.
이 경우 invalidate 하려는 tcache가 존재 하지 않으므로 Not found 에러가 발생한다. (리턴값은 -101. pfmTCache.h에 ERR_NOTFOUND 로 정의되어 있음.)
그러므로 다음과 같이 에러처리를 바꿔준다.
<코드 구현부>
다음과 같이 정상처리하는것을 확인할 수 있다.
<코드 실행시 log>