문제해결
본 장에서는 잘못된 설치용 속성 파일 작성으로 인해 발생할 수 있는 에러 중 자주 발생하는 유형을 소개하고, 유형별 해결방법을 기술한다.
1. 개요
Base 설치 과정에서 발생하는 에러는 다음의 3가지 경로를 통해 발견할 수 있다.
-
${OPENFRAME_HOME}/UninstallerData/log/install_base.log 파일을 텍스트 에디터로 직접 열어 확인한다.
-
Base를 설치한 후 수동으로 스크립트를 실행할 때 기록된 에러 로그를 확인한다.
-
OpenFrame의 기동을 확인할 때 나타나는 서버 상태 로그 정보를 확인한다.
|
2. 에러 유형 및 해결방법
다음은 잘못된 설치용 속성 파일 또는 라이선스 파일로 인해 Base 설치 중 빈번히 발생하는 에러 및 유형별 해결방법에 대해 소개한다.
2.1. 라이선스 파일
라이선스 파일이 존재하지 않거나 손상된 경우 또는 라이선스 기간이 만료된 경우 다음과 같은 에러가 발생한다.
-
유형
-
Tmax 라이선스 파일이 없는 경우
boot.sh 스크립트 파일을 실행하면 다음과 같은 에러가 발생한다.
(E) CFL2141 failed to read license file : /home/oframe/OpenFrame/core/license/license.dat [COM0900]
-
Tmax 라이선스 파일 기간이 만료된 경우
boot.sh 스크립트 파일을 실행하면 다음과 같은 에러가 발생한다.
(E) CFL2145 License is expired : [COM0906]
-
Tmax 라이선스 파일이 손상된 경우
boot.sh 스크립트 파일을 실행하면 다음과 같은 에러가 발생한다.
(E) CFL2142 Corrupt license file : /home/oframe/OpenFrame/core/license/license.dat [COM0902]
-
Base 모듈별 라이선스가 없거나 잘못된 경우
Base를 기동할 때 해당 모듈 서버가 올바르게 실행되지 않으며 tmadmin을 통해 서버 상태를 확인할 때 NRDY가 표시된다.
서버가 올바르게 실행되고 있는지 확인하기 위해 tmadmin을 실행한 후 si 명령어를 실행한다. 자세한 내용은 기동 확인의 5번을 참고한다.
-
-
해결방법
라이선스 관련 문의는 TmaxSoft의 기술 지원에 문의한다.
2.2. 공유 메모리
다음은 공유 메모리 키 값이 중복될 경우의 설명이다.
-
유형 1)
-
에러 코드 : CFL0096
설치용 속성 파일에 등록한 공유 메모리 키 값이 다른 사용자 또는 프로그램에 의해 사용 중인 키 값과 중복될 경우 OpenFrame 서버는 기동되지 않는다. 이 경우 ${OPENFRAME_HOME}/UninstallerData/log 디렉터리의 install_base.log 파일을 보면 아래와 같은 에러를 확인할 수 있다.
(E) CFL0096 shared memory : different owner 1010 [COM3517]: File exists (E) CFL0096 shared memory : different owner 1010 [COM3517]: File exists (E) CFL0096 shared memory : different owner 1010 [COM3517]: File exists (E) CFL0096 shared memory : different owner 1010 [COM3517]: File exists
-
해결방법
설치용 속성 파일에 등록한 공유 메모리 키 값을 수정하고 다시 설치를 시도하거나, ${OPENFRAME_HOME}/config 디렉터리 또는 ${OPENFRAME_HOME}/core/config 디렉터리에 위치한 oframe.m 파일에서 해당 값을 찾아 수정한 다음 재실행한다.
-
-
유형 2)
-
에러 코드 : ALC0001E
Base 제품을 설치한 후 tmboot할 때 서버가 정상적으로 기동되지 않고 아래와 같은 에러가 발생할 수 있다.
“[ALC0010E] shared memory size mismatch - shmkey=0x9471,segsz=1673932”
-
해결방법
설치용 속성 파일에 등록한 공유 메모리 키 값을 수정하고 다시 설치를 시도하거나, ${OPENFRAME_HOME}/core/config 디렉터리에 위치한 TMAX config 에서 해당 값을 찾아 수정한 다음 수동으로 반영시키면 된다.
아래 예제는 TMAX 공유 메모리 키를 수동으로 반영시키는 방법이다.
# vi $OPENFRAME_HOME/core/config/oframe.m *DOMAIN domain SHMKEY = 38001 # $TMAXDIR/bin/pfmtcacheadmin -d # $TMAXDIR/bin/pfmtcacheadmin -c # vi $OPENFRAME_HOME/core/config/pfmtcache.cfg * the configuration file of TCACHE SHMKEY=39082 # $TMAXDIR/bin/cfl -i $TMAXDIR/config/oframe.m
-
2.3. 데이터베이스
다음은 OpenFrame 데이터베이스 접속 정보 설정이 잘못된 경우 발생하는 경우의 설명이다.
-
유형
설치용 속성 파일을 작성할 때 저장 장치 환경설정에서 데이터베이스 접속 정보를 잘못 입력했을 경우 OpenFrame 서버는 기동되지 않는다.
${OPENFRAME_HOME}/UninstallerData/log 디렉터리의 install_base.log 파일을 보면 아래와 같은 에러를 확인 할 수 있다.
ofcom_odbc: SQLConnect failed. State: 08001, Native Error: -17001, Message: [unixODBC] Login failed: invalid user name or password.
-
해결방법
설치용 속성 파일에서 저장 장치 환경설정을 올바르게 수정하고 다시 설치를 실행한다.
2.4. 보안 모듈
다음은 보안 모듈에서 라이브러리 접근을 차단하는 경우의 설명이다.
-
유형
Linux의 보안 모듈인 SELinux를 사용하는 일부 Linux 시스템의 경우 SELinux의 보안 정책상 일부 라이브러리의 접근을 차단하여 다음과 같은 에러가 발생할 수 있다.
“cannot restore segment prot after reloc: Permission denied”
-
해결방법
-
Permission denied가 발생하는 라이브러리를 대상으로 다음과 같이 chcon을 실행한다. 라이브러리에 따라서는 슈퍼 유저 권한이 필요할 수도 있다.
chcon -t texrel_shlib_t [원하는 so 라이브러리]
-
슈퍼 유저로 접속한 다음 아래와 같이 /etc/sysconfig/selinux 파일을 수정하여 SELInux를 비활성화한다. 단, 이 방법은 보안 정책을 약화시킬 수 있으므로 권장하지는 않는다.
SELINUX=disabled
-
2.5. UNIX ODBC
다음은 UNIX ODBC 관련 설정이 잘못된 경우 발생하는 경우의 설명이다.
-
유형 1)
-
Base 제품을 설치한 후 ofversion 등의 실행 프로그램을 수행할 때 라이브러리(libodbc.so)를 찾지 못하고 아래와 같은 에러가 발생할 수 있다.
$ ofversion ofversion: error while loading shared libraries: libodbc.so.1: cannot open shared object file: No such file or directory $ ldd ofversion linux-vdso.so.1 => (0x00007fff02fc1000) libofcom.so => /home/oframe4/OpenFrame/lib/libofcom.so (0x00007fb978d44000) libc.so.6 => /lib64/libc.so.6 (0x0000003ab5400000) /lib64/ld-linux-x86-64.so.2 (0x0000003ab5000000) libodbc.so.1 => not found
-
해결방법
UNIX ODBC 2.3.1 version이 Released되면서 library version이 1에서 2로 바뀌었다(libodbc.so.1에서 libodbc.so.2로 변경). 설치 후 libodbc.so(libodbc.so.1)를 찾지 못 한다면 심볼링 링크를 생성한다.
$ ll /usr/lib64/libodbc.so* lrwxrwxrwx. 1 root root 16 Jan 12 2015 /usr/lib64/libodbc.so -> libodbc.so.2.0.0 lrwxrwxrwx. 1 root root 16 Jan 12 2015 /usr/lib64/libodbc.so.2 -> libodbc.so.2.0.0 -rwxr-xr-x. 1 root root 420200 Jul 10 2014 /usr/lib64/libodbc.so.2.0.0 $ ln -sf /usr/lib64/libodbc.so.2.0.0 /usr/lib64/libodbc.so.1
-
-
유형 2)
-
isql을 사용해서 UNIX ODBC로 DB에 접속할 때 UNIX ODBC Driver Manager에서 에러가 발생할 수 있다.
$ isql oframe tibero tmax [ISQL]ERROR: Could not SQLConnect
UNIX ODBC 설정 파일 odbcinst.ini에서 [ODBC] 절의 TraceFile에 기술한 로그 파일을 읽어보면 아래와 같은 에러(Error: IM002)을 확인 할 수 있다.
[ODBC][64494][1136898658.284331][SQLConnect.c][3727] Entry: Connection = 0x1c51080 Server Name = [oframe][length = 7 (SQL_NTS)] User Name = [tibero][length = 6 (SQL_NTS)] Authentication = [****][length = 4 (SQL_NTS)] [ODBC][64494][1136898658.284619][SQLConnect.c][3935]Error: IM002
-
해결방법
UNIX ODBC 설정 파일 odbc.ini에서 섹션 이름과 DSN 이름을 확인하고 동일하게 수정한다.
-
2.6. 엔진 기동할 때 CLH9990 에러 발생
다음은 시스템에서 허용하는 FD 최댓값이 Tmax에서 사용하는 FD 값보다 작아 CLH9990 에러가 발생하는 경우에 대한 설명이다.
-
유형
Base 제품을 설치한 후 tmboot할 때 CLH 서버가 정상적으로 기동되지 않고 clh 에러 로그에 아래와 같은 에러가 발생할 수 있다.
“(F) CLH9990 Current Tmax configuration contains more servers or nodes than current system can support.”
-
해결방법
UNIX 시스템에서 현재 허용하는 nofile에 대한 hard limit, soft limit 값을 수정한다. 아래의 예제는 Linux 시스템에서 해당 값을 8192으로 수정하는 방법이다.
# vi /etc/security/limits.conf * hard nofile 8192 * soft nofile 8192
각 OS별로 해당 값을 변경하는 방법이 다를 수 있으므로 각 OS 벤더사에서 제공하는 매뉴얼을 참고하거나 엔지니어의 도움을 받아 처리한다.