티스토리 뷰

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
  • invalidate를 할 때 내부적으로 사용하는 flag
  • 기본적으로 “0”의 값으로 세팅
return
  • 성공시 : 0
  • 실패시 : negative


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>




댓글