1. 소개#
이 장은 Monitoring API가 무엇인지 소개하고 특징을 설명한다.
Monitoring API란?#
Monitoring API는 애플리케이션에서 Altibase를 모니터링할 수 있도록 제공되는 애플리케이션 프로그래밍 인터페이스이다.
용도#
Monitoring API는 외부 모니터링 툴 개발자를 위해 제공되는 인터페이스이다. 애플리케이션에서 Altibase의 성능 뷰를 직접 조회하여 모니터링 정보를 수집할 수도 있으나, Monitoring API를 사용하면 개발자들이 모니터링 툴을 좀 더 쉽게 개발할 수 있다.
일반적인 데이터베이스 접근 인터페이스(ODBC, JDBC 등)를 사용하는 사용자에게 기본으로 제공되지 않는다.
특징#
Monitoring API를 사용하면 애플리케이션에서 다음의 데이터를 조회할 수 있다.
-
Altibase 운영 중의 여러 통계 정보
-
현재 접속중인 세션의 수
-
Altibase 서버에 접속할 수 있는 최대 클라이언트의 수
-
세션들의 락 정보
-
대기중인 이벤트 정보
지원되는 Altibase 버전#
Monitoring API는 Altibase 5.5.1 이상 버전에서 지원된다.
주의사항#
Monitoring API로 애플리케이션을 작성하고 실행할 때의 주의사항이다.
-
Monitoring API 애플리케이션은 Unix Domain Socket을 통해서 Altibase 서버에 접속하므로 애플리케이션과 Altibase가 같은 장비에서 실행되어야 한다.
-
Monitoring API 함수 내부(라이브러리)에서 할당하는 메모리는 Monitoring API 함수들이 공유하기 때문에 thread-safe하지 않다. 따라서 멀티 쓰레드 프로그램을 작성할 때에는 공유 자원에 여러 개의 쓰레드가 동시에 접근하지 못하도록 뮤텍스를 사용한 동기화가 필요하다. 4장에서 예제 프로그램 sample_7.c를 참고하라.
애플리케이션 빌드하기#
이 절은 Monitoring API 애플리케이션을 빌드하는데 필요한 헤더 파일과 라이브러리 파일을 알려주고 컴파일 방법에 대해 기술한다.
헤더 파일#
Monitoring API 애플리케이션을 작성할 때 포함되어야 하며 컴파일시에 참조되는 헤더 파일은 altibaseMonitor.h이다. 이 파일은 $ALTIBASE_HDB_HOME/include 디렉토리에 존재한다.
컴파일시에는 컴파일 명령어에 다음의 옵션을 사용하라.
-I$ALTIBASE_HDB_HOME/include
라이브러리 파일#
Monitoring API 애플리케이션을 빌드하려면, 컴파일된 오브젝트 파일을 Altibase가 제공하는 Monitoring API 라이브러리와 ODBC 라이브러리, 그리고 몇몇 시스템 라이브러리와 함께 링크해야 한다.
-
Monitoring API 라이브러리: libaltibaseMonitor.a, libaltibaseMonitor_sl.so
-
ODBC 라이브러리: libodbccli.a
-
시스템 라이브러리: libpthread.a, libdl.a
Monitoring API 라이브러리와 ODBC 라이브러리는 $ALTIBASE_HDB_HOME/lib 디렉토리에 존재한다.
컴파일#
아래는 Altibase 패키지를 설치할 때 생기는 $(ALTIBASE_HOME)/install/altibase_env.mk 파일을 이용하여 sample.c 소스 파일을 컴파일하는 Makefile 예제이다.
include $(ALTIBASE_HOME)/install/altibase_env.mk
sample: sample.o
$(LD) $(LDOUT)sample sample.o $(LFLAGS) -laltibaseMonitor -lodbccli $(LIBS)
아래는 콘솔창에서 gcc 컴파일러를 사용해서 sample.c 소스 파일을 컴파일하는 예제이다.
% gcc -c -I$ALTIBASE_HOME/include -o sample.o sample.c
% g++ -o sample sample.o -L$ALTIBASE_HOME/lib -laltibaseMonitor -lodbccli -ldl -lpthread -lcrypt -lrt