개발환경 운영

본 장에서는 ProFrame에서 제공하는 통합 서버를 운영하기 위한 방법에 대해 설명한다.

1. 통합 서버 기동

통합 서버는 JEUS 기반의 애플리케이션이다. 따라서, 통합 서버의 기동은 JEUS의 기동을 의미한다. JEUS 기동에 대한 자세한 사항은 “JEUS 관리자 안내서”를 참조한다.

2. 로그 서버 기동

로그 서버는 ProFrame의 개발 툴에서 컴파일이나 로그 viewer와 같은 UNIX 명령을 수행하기 위해 사용되는 서버 데몬이다. 또, ProFrame의 툴에서 실행한 명령어를 수행 후 결과를 알리는 역할을 한다.

로그 서버는 다음의 위치에 존재한다.

$PRJROOT/package/proframe/logserver
로그 서버 포트 설정

다음과 같이 logserver.sh 파일에 'PORT_NO' 항목에 로그 서버 포트를 설정한다.

#!/bin/sh

export EXEC_FILE=$PFMROOT/../logserver/logserver.jar
export LOG_FILE=$PFMROOT/../logserver/logserver.log
export ERR_FILE=$PFMROOT/../logserver/logserver.err
export PORT_NO={PORT_NO}

echo ""
echo " --------------------------"
echo " PFM LOG SERVER BOOT START "
echo " --------------------------"
echo ""
export PFMLOGSVR_PID=`ps -ef |grep "$PFMROOT/../logserver/logserver.jar" | grep -v grep | awk '{print $2}'`
if [ "$PFMLOGSVR_PID" != "" ]; then
    echo ""
    echo " ------------------------------------------"
    echo " PFM LOG SERVER ALREADY BOOTED "
    echo " ------------------------------------------"
    echo ""
    exit 1
fi

nohup java \
-cp $EXEC_FILE \
-Dfile.encoding=EUC-KR \
-Dpfm.log.basedir=$PFMLOG \
-Dpfm.log.service=false \
-Dpfm.log.infix.ulog=usr \
-Dpfm.log.infix.slog=sys \
-Dpfm.log.timeout=50000 \
com.tmax.proframe.logviewer.server.LogServer $PORT_NO 1> $LOG_FILE 2>$ERR_FILE &
if [ "$?" -ne "0" ]
then
    echo ""
    echo " ------------------------------------------"
    echo " PFM LOG SERVER BOOT ERROR "
    echo " ------------------------------------------"
    echo ""
    exit 1
fi

echo ""
echo " --------------------------"
echo " PFM LOG SERVER BOOT DONE "
echo " --------------------------"
echo ""
exit 0
로그 서버 기동

다음의 명령을 수행해서 로그 서버를 기동한다.

$> logserver.sh

다음의 명령으로 로그 서버가 정상적으로 기동하는지 확인할 수 있다.

$> ps –ef | grep logserver
로그 서버 종료

다음의 명령으로 로그 서버를 종료한다.

$> logsvrdown.sh

3. 빌드 서버 기동

빌드 서버 는 ProFrame의 개발 과정에서 스튜디오를 통해 소스를 생성하는 작업(리소스 저장, 체크인/체크아웃 등)을 수행하였을 때 지정한 원격지에서 작업을 수행하기 위해 사용되는 서버 데몬이다. 빌드서버의 경우 기존 로그 서버를 통해서 파일 생성 작업을 빠르게 하기 위해 만들어진 파일생성 전용 서버이다.

빌드 서버를 사용하기 위해서는 아래와 같이 빌드 서버 전용 포트를 설정한 후 서버를 구동시킨다. 빌드 서버를 사용하는 클라이언트는 통합 서버가 해당되는데 통합 서버 환경관리에서 설명한 pfmdevsvr.xml의 프로젝트 정보에 빌드 서버 정보를 추가한다. 빌드 서버는 로그 서버와 동일한 위치에 설치해야 한다.

$PRJROOT/package/proframe/logserver

로그 서버는 멀티 프로젝트 기능을 위해 기본적으로 설치되어야 한다. 하지만 빌드 서버는 파일 핸들링 성능향상을 위한 확장 모듈로 선택적 설치가 가능하다.

빌드 서버 포트 설정

다음과 같이 pfmbuildsvr.sh 파일에 'TCP_PORT_NO' 항목에 빌드 서버 포트를 설정한다.

#!/bin/sh

export LOG_EXEC_FILE=$PFMROOT/../logserver/logserver.jar
export TCP_EXEC_FILE=$PFMROOT/../logserver/pfmbuildsvr.jar
export TCP_LOG_FILE=$PFMROOT/../logserver/pfmbuildsvr.log
export TCP_ERR_FILE=$PFMROOT/../logserver/pfmbuildsvr.err
export CLASSPATH=${CLASSPATH}:$LOG_EXEC_FILE
export CLASSPATH=${CLASSPATH}:$TCP_EXEC_FILE
export TCP_PORT_NO={PORT_NO}

echo ""
echo " ---------------------------"
echo " PFM BUILD SERVER BOOT START"
echo " ---------------------------"
echo ""
export PFMBUILDSVR_PID=`ps -ef |grep "$PFMROOT/../logserver/pfmbuildsvr.jar" | grep -v grep | awk '{print $2}'`
if [ "$PFMBUILDSVR_PID" != "" ]; then
    echo ""
    echo " ------------------------------------------"
    echo " PFM BUILD SERVER ALREADY BOOTED"
    echo " ------------------------------------------"
    echo ""
    exit 1
fi

nohup java \
-cp $TCP_EXEC_FILE \
-Dfile.encoding=EUC-KR \
-Dpfm.log.basedir=$PFMLOG \
-classpath $CLASSPATH com.tmax.proframe.pfmbuildsvr.tcp.PfmBuildServer $TCP_PORT_NO 1> $TCP_LOG_FILE 2>$TCP_ERR_FILE &

if [ "$?" -ne "0" ]
then
    echo ""
    echo " ------------------------------------------"
    echo " PFM BUILD SERVER BOOT ERROR"
    echo " ------------------------------------------"
    echo ""
    exit 1
fi

echo ""
echo " --------------------------"
echo " PFM BUILD SERVER BOOT DONE"
echo " --------------------------"
echo ""
exit 0
빌드 서버 기동

다음의 명령을 수행해서 빌드 서버를 기동한다.

$> pfmbuildsvr.sh

다음의 명령으로 빌드 서버가 정상적으로 기동하는지 확인할 수 있다.

$> ps –ef | grep pfmbuildsvr
빌드 서버 종료

다음의 명령으로 빌드 서버를 종료한다.

$> pfmbuildsvrdown.sh