콘텐츠로 이동

3.함수#

이 장은 Monitoring API 함수들의 명세를 기술한다. 각 함수 별로 다음의 정보가 제공된다.

  • 함수명

  • 구문: 함수의 C 언어 프로토타입

  • 인자: 함수의 각 인자별 자료 유형, 입/출력, 부연 설명

  • 반환 값: 반환 가능한 이 함수의 리턴 값

  • 설명: 함수 사용 방법 및 주의 사항

  • 예제: 이 함수가 사용된 소스 코드의 일부

ABIInitialize#

구문#

int ABIInitialize ( void );

반환값#

함수 수행이 성공하면 0, 그렇지 않으면 음의 정수값으로 에러 코드가 반환된다.

설명#

Monitoring API를 사용하기 위해 첫 번째로 반드시 호출해야 하는 함수이다. Altibase 서버와의 연결 설정 같은 초기화 작업을 수행한다.

예제#

if( ABIInitialize( ) != 0 )
{
    /* ... error handling ... */
}

ABIFinalize#

구문#

int ABIFinalize ( void );

반환값#

함수 수행이 성공하면 0, 그렇지 않으면 음의 정수값으로 에러 코드가 반환된다.

설명#

Monitoring API 사용의 마지막에 반드시 호출해야 하는 함수이다. Monitoring API를 사용하면서 할당된 메모리를 해제하고 Altibase 서버와의 연결을 종료하는 등의 작업을 수행한다.

예제#

if( ABIFinalize( ) != 0 )
{
    /* ... error handling ... */
}

ABISetProperty#

구문#

int ABISetProperty (
    ABIPropType         aPropType,
    const char          *aPropValue );

인자#

자료유형 인자 입/출력 설명
ABIPropType aPropType 입력 설정할 프로퍼티의 이름을 지정한다. 아래의 값 중에서 하나를 사용할 수 있다. ABI_USER, ABI_PASSWD, ABI_LOGFILE
const char * aPropValue 입력 설정할 프로퍼티의 값

반환값#

함수 수행이 성공하면 0, 그렇지 않으면 음의 정수값으로 에러 코드가 반환된다.

설명#

이 함수는 Altibase 서버에 접속할 사용자 이름, 사용자 암호를 설정하거나, 로그 파일을 설정한다. 설정하지 않을 경우 기본값은 각각 "SYS", "MANAGER", " altibaseMonitor.log"이다.

로그 파일은 Monitoring API 에서 발생하는 에러 메시지를 기록하는 파일이다. 경로 없이 파일 이름만 설정하는 경우 애플리케이션이 수행되는 경로에 로그 파일이 생성된다.

예제#

if( ABISetProperty( ABI_USER, "SYS" ) != 0 )
{
    /* ... error handling ... */
}

ABICheckConnection#

구문#

int ABICheckConnection ( );

반환값#

접속 상태가 정상이면 0, 그렇지 않으면 -1이 반환된다.

설명#

이 함수는 Altibase 서버와의 연결 상태를 검사한다.

예제#

if( ABICheckConnection( ) != -1 )
{
    /* 퍼포먼스 뷰 조회 */
}
else
{
    /* ... error handling ... */
}

ABIGetVSession#

구문#

int ABIGetVSession (
    ABIVSession          **aHandle,
    unsigned int         aExecutingOnly );

인자#

자료유형 인자 입/출력 설명
ABIVSession** aHandle 출력 결과 셋이 저장된 구조체 배열의 메모리 주소를 받아올 포인터
unsigned int aExecutingOnly 입력 0: 전체 세션 조회 1: Active 세션만 조회

반환값#

함수 수행이 성공하면 aHandle에 가져온 결과 셋 내의 로우 개수를 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

V\$SESSION 성능 뷰를 조회하는 함수이다. 함수가 성공적으로 수행되면 aHandle에 결과 셋이 저장된 ABIVSession 타입의 배열을 가리키는 포인터가 반환된다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_1.c를 참고하도록 한다.

ABIVSession *sVSession;
ABIVSession *sVSessionActiveOnly;
int sRowCount;
int sRowCountActiveOnly;

/* 전체 세션 조회 */
sRowCount = ABIGetVSession(  &sVSession, 0 );

/* Active 세션만 조회 */
sRowCountActiveOnly = ABIGetVSession( &sVSessionActiveOnly, 1 );

ABIGetVSessionBySID#

구문#

int ABIGetVSessionBySID (
    ABIVSession          **aHandle,
    int                  aSessionID );

인자#

자료유형 인자 입/출력 설명
ABIVSession** aHandle 출력 결과 셋이 저장된 구조체 배열의 메모리 주소를 받아올 포인터
int aSessionID 입력 조회할 세션의 ID

반환값#

함수 수행이 성공하면 aHandle에 가져온 결과 셋 내의 로우 개수를 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

V\$SESSION 성능 뷰에서 특정 세션에 대한 정보만 조회하는 함수이다. 함수가 성공적으로 수행되면 결과 셋이 저장된 aHandle에 ABIVSession 타입의 배열을 가리키는 포인터가 반환된다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_1.c를 참고하도록 한다.

ABIVSession *sVSession;
int sRowCount;

sRowCount = ABIGetVSessionBySID(  &sVSession, 1 );

ABIGetVSysstat#

구문#

int ABIGetVSysstat (
    ABIVSysstat          **aHandle );

인자#

자료유형 인자 입/출력 설명
ABIVSysstat ** aHandle 출력 결과 셋이 저장된 구조체 배열의 메모리 주소를 받아올 포인터

반환값#

함수 수행이 성공하면 aHandle에 가져온 결과 셋 내의 로우 개수를 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

V\$SYSSTAT 성능 뷰를 조회하는 함수이다. 함수가 성공적으로 수행되면 aHandle에 결과 셋이 저장된 ABIVSysstat 타입의 배열을 가리키는 포인터가 반환된다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_3.c를 참고하도록 한다.

ABIVSysstat *sVSysstat;
int sRowCount;

sRowCount = ABIGetVSysstat( &sVSysstat );

ABIGetVSesstat#

구문#

int ABIGetVSesstat (
    ABIVSesstat          **aHandle,
    unsigned int         aExecutingOnly );

인자#

자료유형 인자 입/출력 설명
ABIVSesstat ** aHandle 출력 결과 셋이 저장된 구조체 배열의 메모리 주소를 받아올 포인터
unsigned int aExecutingOnly 입력 0: 전체 세션 조회 1: Active 세션만 조회

반환값#

함수 수행이 성공하면 aHandle에 가져온 결과 셋 내의 로우 개수를 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

V\$SESSTAT 성능 뷰를 조회하는 함수이다. 함수가 성공적으로 수행되면 aHandle에 결과 셋이 저장된 ABIVSesstat 타입의 배열을 가리키는 포인터가 반환된다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_3.c를 참고하도록 한다.

ABIVSesstat *sVSesstat;
int sRowCount;

sRowCount = ABIGetVSesstat( &sVSesstat );

ABIGetVSesstatBySID#

구문#

int ABIGetVSesstatBySID (
    ABIVSesstat          **aHandle,
    int                  aSessionID );

인자#

자료유형 인자 입/출력 설명
ABIVSesstat ** aHandle 출력 결과 셋이 저장된 구조체 배열의 메모리 주소를 받아올 포인터
int aSessionID 입력 조회할 세션의 ID

반환값#

함수 수행이 성공하면 aHandle에 가져온 결과 셋 내의 로우 개수를 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

V\$SESSTAT 성능 뷰에서 특정 세션에 대한 통계자료를 조회하는 함수이다. 함수가 성공적으로 수행되면 aHandle에 결과 셋이 저장된 ABIVSesstat 타입의 배열을 가리키는 포인터가 반환된다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_3.c를 참고하도록 한다.

ABIVSesstat *sVSesstat;
int sRowCount;

/* ID가 1인 세션 조회 */
sRowCount = ABIGetVSesstatBySID ( &sVSesstat, 1 );

ABIGetStatName#

구문#

int ABIGetStatName (
    ABIStatName          **aHandle );

인자#

자료유형 인자 입/출력 설명
ABIStatName ** aHandle 출력 결과 셋이 저장된 구조체 배열의 메모리 주소를 받아올 포인터

반환값#

함수 수행이 성공하면 aHandle에 가져온 결과 셋 내의 로우 개수를 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

V\$SYSSTAT 또는 V\$SESSTAT 성능 뷰의 고정 칼럼들인 SEQNUM과 NAME의 값을 조회하는 함수이다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_3.c를 참고하도록 한다.

ABIStatName *sStatName;
int sRowCount;

sRowCount = ABIGetStatName( &sStatName );

ABIGetVSystemEvent#

구문#

int ABIGetVSystemEvent (
    ABIVSystemEvent          **aHandle );

인자#

자료유형 인자 입/출력 설명
ABIVSystemEvent ** aHandle 출력 결과 셋이 저장된 구조체 배열의 메모리 주소를 받아올 포인터

반환값#

함수 수행이 성공하면 aHandle에 가져온 결과 셋 내의 로우 개수를 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

V\$SYSTEM_EVENT 성능 뷰를 조회하는 함수이다. 함수가 성공적으로 수행되면 aHandle에 결과 셋이 저장된 ABIVSystemEvent 타입의 배열을 가리키는 포인터가 반환된다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_4.c를 참고하도록 한다.

ABIVSystemEvent *sVSystemEvent;
int sRowCount;

sRowCount = ABIGetVSystemEvent( &sVSystemEvent);

ABIGetVSessionEvent#

구문#

int ABIGetVSessionEvent (
    ABIVSessionEvent          **aHandle );

인자#

자료유형 인자 입/출력 설명
ABIVSessionEvent ** aHandle 출력 결과 셋이 저장된 구조체 배열의 메모리 주소를 받아올 포인터

반환값#

함수 수행이 성공하면 aHandle에 가져온 결과 셋 내의 로우 개수를 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

V\$SESSION_EVENT 성능 뷰를 조회하는 함수이다. 함수가 성공적으로 수행되면 aHandle에 결과 셋이 저장된 ABIVSessionEvent 타입의 배열을 가리키는 포인터가 반환된다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_4.c를 참고하도록 한다.

ABIVSessionEvent *sVSessionEvent;
int sRowCount;

sRowCount = ABIGetVSessionEvent( &sVSessionEvent);

ABIGetVSessionEventBySID#

구문#

int ABIGetVSessionEventBySID (
    ABIVSessionEvent         **aHandle,
    int                      aSessionID );

인자#

자료유형 인자 입/출력 설명
ABIVSessionEvent ** aHandle 출력 결과 셋이 저장된 구조체 배열의 메모리 주소를 받아올 포인터
int aSessionID 입력 조회할 세션의 ID

반환값#

함수 수행이 성공하면 aHandle에 가져온 결과 셋 내의 로우 개수를 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

V\$SESSION_EVENT 성능 뷰에서 특정 세션에 대한 대기 이벤트들의 통계정보를 조회하는 함수이다. 함수가 성공적으로 수행되면 aHandle에 결과 셋이 저장된 ABIVSessionEvent 타입의 배열을 가리키는 포인터가 반환된다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_4.c를 참고하도록 한다.

ABIVSessionEvent *sVSessionEvent;
int sRowCount;

sRowCount = ABIGetVSessionEventBySID( &sVSessionEvent, 1);

ABIGetEventName#

구문#

int ABIGetEventName (
    ABIEventName          **aHandle );

인자#

자료유형 인자 입/출력 설명
ABIEventName ** aHandle 출력 결과 셋이 저장된 구조체 배열의 메모리 주소를 받아올 포인터

반환값#

함수 수행이 성공하면 aHandle에 가져온 결과 셋 내의 로우 개수를 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

V\$SYSTEM_EVENT 또는 V\$SESSION_EVENT 성능 뷰의 고정 칼럼들인 EVENT_ID, EVENT, WAIT_CLASS_ID, WAIT_CLASS의 값을 조회하는 함수이다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_4.c를 참고하도록 한다.

ABIEventName *sEventName;
int sRowCount;

sRowCount = ABIGetEventName( &sEventName);

ABIGetVSessionWait#

구문#

int ABIGetVSessionWait (
    ABIVSessionWait          **aHandle );

인자#

자료유형 인자 입/출력 설명
ABIVSessionWait ** aHandle 출력 결과 셋이 저장된 구조체 배열의 메모리 주소를 받아올 포인터

반환값#

함수 수행이 성공하면 aHandle에 가져온 결과 셋 내의 로우 개수를 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

V\$SESSION_WAIT 성능 뷰를 조회하는 함수이다. 함수가 성공적으로 수행되면 aHandle에 결과 셋이 저장된 ABIVSessionWait 타입의 배열을 가리키는 포인터가 반환된다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_8.c를 참고하도록 한다.

ABIVSessionWait *sVSessionWait;
int sRowCount;

sRowCount = ABIGetVSessionWait( &sVSessionWait);

ABIGetVSessionWaitBySID#

구문#

int ABIGetVSessionWaitBySID (
    ABIVSessionWait          **aHandle,
    int                      aSessionID );

인자#

자료유형 인자 입/출력 설명
ABIVSessionWait ** aHandle 출력 결과 셋이 저장된 구조체 배열의 메모리 주소를 받아올 포인터
int aSessionID 입력 조회할 세션의 ID

반환값#

함수 수행이 성공하면 aHandle에 가져온 결과 셋 내의 로우 개수를 반환한다. 실패하면 음의 정수 값으로의 에러 코드가 반환된다.

설명#

V\$SESSION_WAIT 성능 뷰에서 특정 세션에 대한 대기 이벤트 정보를 조회하는 함수이다. 함수가 성공적으로 수행되면 aHandle에 결과 셋이 저장된 ABIVSessionWait 타입의 배열을 가리키는 포인터가 반환된다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_8.c를 참고하도록 한다.

ABIVSessionWait *sVSessionWait;
int sRowCount;

sRowCount = ABIGetVSessionWaitBySID( &sVSessionWait, 1);

ABIGetSqlText#

구문#

int ABIGetSqlText (
    ABISqlText          **aHandle,
    int                 astmtID );

인자#

자료유형 인자 입/출력 설명
ABISqlText ** aHandle 출력 SQL문이 저장된 구조체의 메모리 주소를 받아올 포인터
int astmtID 입력 조회할 statement의 ID
aStmtID가 0일경우 현재 Active상태인 statement의 정보를 모두 반환한다.

반환값#

함수 수행이 성공하면 0을 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

Statement 식별자를 이용하여 해당 statement가 수행하고 있는 SQL문, 쿼리 시작 시간, 쿼리 수행 여부를 조회하는 함수이다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_5.c를 참고하도록 한다.

ABISqlText *sSqlText;
int sRet;

/* ID가 2인 statement의 SQL문 조회 */
sRet = ABIGetSqlText( &sSqlText, 2 );

ABIGetLockPairBetweenSessions#

구문#

int ABIGetLockPairBetweenSessions (
    ABILockPair          **aHandle );

인자#

자료유형 인자 입/출력 설명
ABILockPair ** aHandle 출력 결과 셋이 저장된 구조체 배열의 메모리 주소를 받아올 포인터

반환값#

함수 수행이 성공하면 aHandle에 가져온 결과 셋 내의 로우 개수를 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

락(Lock)을 잡고 있는 세션과 이 락을 획득하고자 대기하고 있는 세션의 쌍을 조회하는 함수이다. 함수가 성공적으로 수행되면 aHandle에 결과 셋이 저장된 ABILockPair 타입의 배열을 가리키는 포인터가 반환된다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_5.c를 참고하도록 한다.

ABILockPair *sLockPair;
int sRowCount;

sRowCount = ABIGetLockPairBetweenSessions( &sLockPair );

ABIGetDBInfo#

구문#

int ABIGetDBInfo (
    ABIDBInfo          **aHandle );

인자#

자료유형 인자 입/출력 설명
ABIDBInfo ** aHandle 출력 결과값이 저장된 구조체의 메모리 주소를 받아올 포인터

반환값#

함수 수행이 성공하면 0을 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

데이터베이스의 이름, 버전 번호를 조회하는 함수이다. 함수가 성공적으로 수행되면 aHandle에 결과값이 저장된 ABIDBInfo 타입 구조체의 메모리 주소가 반환된다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_6.c를 참고하도록 한다.

ABIDBInfo *sDBInfo;
int sRet;

sRet = ABIGetDBInfo( &sDBInfo );

ABIGetReadCount#

구문#

int ABIGetReadCount (
    ABIReadCount          **aHandle );

인자#

자료유형 인자 입/출력 설명
ABIReadCount ** aHandle 출력 결과값이 저장된 구조체의 메모리 주소를 받아올 포인터

반환값#

함수 수행이 성공하면 0을 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

Altibase 서버에서 발생한 데이터 페이지 읽기 횟수를 조회하는 함수이다. 함수가 성공적으로 수행되면 aHandle에 결과값이 저장된 ABIReadCount 타입 구조체의 메모리 주소가 반환된다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_6.c를 참고하도록 한다.

ABIReadCount *sReadCount;
int sRet;

sRet = ABIGetReadCount( &sReadCount);

ABIGetSessionCount#

구문#

int ABIGetSessionCount (
    unsigned int          **aExecutingOnly );

인자#

자료유형 인자 입/출력 설명
unsigned int aExecutingOnly 입력 0: 전체 세션 수 조회 1: Active 세션 수만 조회

반환값#

함수 수행이 성공하면 Altibase 서버에 존재하는 세션의 총 개수가 반환된다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

현 시점에서 Altibase 서버에 존재하는 세션의 총 개수 또는 active 세션의 개수를 조회하는 함수이다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_2.c를 참고하도록 한다.

int sSessionCount;
int sActiveSessionCount;

/* 전체 세션 개수 조회 */
sSessionCount = ABIGetSessionCount( 0 );
/* Active 세션 개수 조회 */
sActiveSessionCount  = ABIGetSessionCount( 1 );

ABIGetMaxClientCount#

구문#

int ABIGetMaxClientCount ( );

반환값#

함수 수행이 성공하면 Altibase 서버에 접속할 수 있는 클라이언트의 최대 개수가 반환된다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

Altibase 서버에 접속할 수 있는 클라이언트의 최대 개수를 조회하는 함수이다. 조회되는 값은 Altibase 서버의 altibase.properties 파일에 MAX_CLIENT 프로퍼티로 설정한 값과 동일하다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_2.c를 참고하도록 한다.

int sMaxClientCount;

sMaxClientCount = ABIGetMaxClientCount( );

ABIGetLockWaitSessionCount#

구문#

int ABIGetLockWaitSessionCount ( );

반환값#

함수 수행이 성공하면 락(lock)을 획득하기 위해 대기중인 세션의 개수가 반환된다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

Altibase 서버에서 락을 획득하기 위해 대기중인 세션의 개수를 조회하는 함수이다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_5.c를 참고하도록 한다.

int sLockWaitSessionCount;

sLockWaitSessionCount = ABIGetLockWaitSessionCount( );

ABIGetRepGap#

구문#

int ABIGetRepGap(
   ABIRepGap **aHandle );

반환값#

함수 수행이 성공하면 aHandle에 가져온 결과 셋 내의 로우 개수를 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

V\$REPGAP 성능 뷰에서 이중화 송신자가 마지막으로 전송한 로그 레코드와 가장 최근에 생성된 로그 레코드의 차이를 조회하는 함수이다.

함수가 성공적으로 수행되면 aHandle에 결과 셋이 저장된 ABIRepGap 타입의 배열을 가리키는 포인터가 반환된다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_10.c를 참고하도록 한다.

ABIRepGap *sRepGap;
int sRowCount;

sRowCount = ABIGetRepGap( &sRepGap );

ABIGetRepSentLogCount#

구문#

int ABIGetRepSentLogCount(
   ABIRepSentLogCount **aHandle );

반환값#

함수 수행이 성공하면 aHandle에 가져온 결과 셋 내의 로우 개수를 반환한다. 실패하면 음의 정수 값으로 에러 코드가 반환된다.

설명#

V\$REPSENDER_SENT_LOG_COUNT 성능 뷰에서 이중화 송신자가 전송한 로그를 DML 타입 별로 분류하여 로우의 개수를 조회하는 함수이다.

함수가 성공적으로 수행되면 aHandle에 결과 셋이 저장된 ABIRepSentLogCount 타입의 배열을 가리키는 포인터가 반환된다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_10.c를 참고하도록 한다.

ABIRepSentLogCount *sRepSentLogCount;
int sRowCount;

sRowCount = ABIRepSentLogCount( &sRepSentLogCount );

ABIGetErrorMessage#

구문#

void ABIGetErrorMessage (
    int                 aErrCode,
    const char          *aErrMsg );

인자#

자료유형 인자 입/출력 설명
int aErrCode 입력 에러 코드
const char * aErrMsg 출력 에러 메시지를 받아올 버퍼 포인터

설명#

에러 코드를 이용하여 에러 메시지를 조회하는 함수이다. Monitoring API의 함수가 에러 코드를 반환할 때 에러 코드에 해당하는 에러 메시지를 조회할 수 있다.

예제#

이 함수와 관련된 프로그램은 4장의 sample_9.c를 참고하도록 한다.

ABIVSession *sVSession;
int          sErrCode;
const char  *sErrMsg;

sErrCode = ABIGetVSession( &sVSession, 1 );
if( sErrCode < 0 )
{
    ABIGetErrorMessage( sErrCode, &sErrMsg );
}