/*
 * MM_CODE_CACHE.pgc - mm 모듈 서비스 MM_CODE_CACHE (one service = one file).
 * 기능: 코드그룹의 활성 코드 수 (캐시 워밍 시뮬).
 * 기존 인라인 mm_svr.pgc에서 분리; caller의 XA 브랜치에서 실행(EXEC SQL CONNECT 없음).
 * mm_svr가 tpsvrinit에서 이 서비스를 tpadvertise 한다.
 */
#include "MM_CODE_CACHE.h"

void MM_CODE_CACHE(TPSVCINFO *p)
{
    UBFH *b = (UBFH *)p->data;
    char grp[32];
    EXEC SQL BEGIN DECLARE SECTION;
    long h_cnt;
    char h_grp[32];
    EXEC SQL END DECLARE SECTION;
    gets_(b, T_STR1, grp, sizeof(grp)); if (grp[0] == 0) strcpy(grp, "CARD_TYPE");
    strncpy(h_grp, grp, sizeof(h_grp)-1); h_grp[sizeof(h_grp)-1] = 0;
    EXEC SQL SELECT count(*) INTO :h_cnt FROM mm_code
        WHERE code_group = :h_grp AND status = 'ACTIVE';
    if (sqlca.sqlcode < 0) FAIL(b);
    setl(b, T_COUNT, h_cnt);
    OK(b);
}
