서버 설치
본 장에서는 ProFrame 서버를 설치하기 전에 필요한 디렉터리 구성과 인스톨러 실행 그리고 시스템 운영을 위해 환경설정 파일을 수정하는 방법에 대하여 설명한다.
본 장에서는 다음과 같은 주제와 순서로 서버 설치를 진행한다.
-
설치 전 서버 디렉터리 구성
-
인스톨러 실행
-
환경설정 파일 수정
|
서버 설치 과정은 플랫폼에 상관없이 동일하다. |
1. 설치 전 서버 디렉터리 구성
ProFrame 서버를 설치하기 위해서는 반드시 다음과 같은 구조로 디렉터리를 생성되어 있어야 한다.
{INSTALL_HOME_DIRECTORY}
|---- package
+---- jeus
+---- tmax
- {INSTALL_HOME_DIRECTORY}
-
ProFrame 서버를 설치할 디렉터리이다.
- package
-
jeus(JEUS가 설치된 디렉터리) 및 tmax(Tmax가 설치된 디렉터리) 디렉터리를 포함하는 상위 디렉터리이다.
하위 디렉터리 설명 package/jeus
JEUS가 설치된 디렉터리이며, 이 디렉터리가 아닌 다른 디렉터리에 설치된 JEUS를 이용할 때는 심볼릭 링크(Symbolic link)를 설정한다.
심볼릭 링크는 특정 파일을 실제 경로가 아니라 사용하기 편리한 다른 경로로 접근할 수 있도록 지정하는 명령어이다. 일명 소프트 링크(Soft link)라고 불리는 심볼릭 링크는 불필요한 파일의 복사를 하지 않아도 되며 보통 여러 디렉터리에서 동일한 라이브러리를 요구할 때나 하나의 파일을 여러 사용자가 공통으로 사용할 때도 많이 사용된다.
package/tmax
Tmax가 설치된 디렉터리이며, 이 디렉터리가 아닌 다른 디렉터리에 설치된 Tmax를 사용할 때는 심볼릭 링크를 설정한다.
2. 인스톨러 실행
본 절에서는 ProFrame 서버를 설치하기 위해 제공된 인스톨러를 실행하는 과정과 방법에 대하여 설명한다.
인스톨러는 다음과 같은 순서로 각 설치를 진행한다.
-
RunTime 설치
-
통합 서버 설치
-
전체 설치
2.1. RunTime 설치
설치 과정에서 값을 입력받을 때 기본값을 제시한다. 셸은 이전 단계로 돌아가는 것이 기본적으로 불가능하므로 설치가 완료된 후에 값을 변경하면 된다. 하지만 어느 단계까지는 <back>, <ENTER> 입력을 통해 전 단계로 이동이 가능하다
다음은 제공된 바이너리 파일(ProFrame_C_5_0_Fix1_{OS_Type}_{Bit}.bin)을 사용하여 RunTime를 설치하는 방법을 설명한다.
-
설치 파일이 실행이 가능하도록 실행 권한을 부여하고 실행한다.
> chmod u+x ProFrame_C_5_0_Fix1_AIX_64.bin
[pfm5qa2@tmaxi7:/data2/pfm5qa2]$ProFrame_C_5_0_Fix1_AIX_64.bin Preparing to install... Extracting the installation resources from the installer archive... Configuring the installer for this system's environment... Launching installer... Preparing CONSOLE Mode Installation... =============================================================================== ProFrame_C_5.0_Fix#1 (created with InstallAnywhere by Macrovision) ------------------------------------------------------------------------------- =============================================================================== Introduction ------------ APPLIES TO - Product Name : ProFrame_C_5.0_Fix#1 - Platform : AIX 64bit - DB : Tibero 5.0, Oracle 10g/11g - JEUS Ver : JEUS 6.0 Fix#8 - TMAX Ver : Tmax5 SP2 - JAVA Ver : 1.5 over It is strongly recommended that you quit all programs before continuing with this installation. Respond to each prompt to proceed to the next step in the installation. If you want to change something on a previous step, type 'back'. You may cancel this installation at any time by typing 'quit'. PRESS <ENTER> TO CONTINUE:
-
라이선스 준수 화면이 나타나 라이선스 동의 여부를 묻는다. 동의한다면 'Y’를 입력한 후 <ENTER> 키를 누른다.
=============================================================================== License Agreement ----------------- Installation and Use of ProFrame_C_5.0_Fix#1 Requires Acceptance of the Following License Agreement: ProFrame C 5.0 Fix#1 This Software is made by 'TmaxSoft Co.,Ltd.' and this software is distributed under our license agreement. Software End-User License Agreement Product : ProFrame C 5.0 Fix#1 This is a legal agreement between you (either an individual or an entity) and TmaxSoft, Incorporated. By opening the sealed software package and/or by using the software, you agree to be bound by the terms of this agreement. ProFrame C 5.0 Fix#1 Software License 1. Grant of License: This ProFrame C 5.0 Fix#1 Software License Agreement ("License") permits you to use one copy of the TmaxSoftware product Tmax, on any single computer, provided the software is in use on only one computer at any one time. If this package is a license pack, you may make and use additional copies of the software up to the number of licensed copies authorized. If you have multiple licenses for the software, then at any time you may have as many copies of the software in use as you have licenses. The software is "in use" on a computer when it is loaded into the temporary memory (i.e., RAM) or installed into the permanent memory (e.g., hard disk, PRESS <ENTER> TO CONTINUE: CD-ROM, or other storage device) of that computer, except that a copy installed on a network server for the sole purpose of distribution to other computers is not "in use". If the anticipated number of users of the software will exceed the number of applicable licenses, then you must have a reasonable mechanism or process in place to ensure that the number of persons using the software concurrently does not exceed the number of licenses. 2. Copyright: The software (including any images, applets, photographs, animations, video, audio, music and text incorporated into the software) is owned by TmaxSoft or its suppliers and international treaty provisions. Therefore, you must treat the software like any other copyrighted material (e.g., a book or musical recording) except that you may either (a) make one copy of the software solely for backup or archival purposes, or (b) transfer the software to a single hard disk provided you keep the original solely for backup or archival purposes. You may not copy the printed materials accompanying the software, nor print copies of any user documentation provided in "online"or electronic form. 3. Other restrictions: This license is your proof of license to exercise the rights granted herein and must be retained by you. You may not rent or lease the software, but you may transfer your rights under this license on a permanent basis provided you transfer this license, the PRESS <ENTER> TO CONTINUE: software, and all accompanying printed materials, retain no copies, and the recipient agrees to the terms of this license. You may not reverse engineer, decompile, or disassemble the software, except to the extent that the foregoing restriction is expressly prohibited by applicable law. TmaxSoft Co., Ltd. DO YOU ACCEPT THE TERMS OF THIS LICENSE AGREEMENT? (Y/N): -
Install Set을 선택하는 화면이 출력된다. RunTime의 설치는 '1’를 입력한 뒤 <ENTER> 키를 누른다.
기본값이 '1’로 되어 있으므로 입력값 없이 <ENTER> 키를 눌러도 된다.
=============================================================================== Choose Install Set ------------------ Please choose the Install Set to be installed by this installer. ->1- Runtime 2- Server 3- All ENTER THE NUMBER FOR THE INSTALL SET, OR PRESS <ENTER> TO ACCEPT THE DEFAULT : 1 -
Java 디렉터리를 선택한다. 설치전 반드시 Java 홈 디렉터리 환경변수($JAVA_HOME)를 등록해야 한다.
=============================================================================== Choose Java Home Folder ----------------------- Please Choose Java Home Folder ($JAVA_HOME): Input Java Home Path (DEFAULT: /usr/java5):
-
설치 디렉터리를 선택한다.
기본적으로 제공되는 값을 사용하려면 <ENTER> 키를 누르고, 디렉터리 변경을 원하면 설치 경로를 입력한다.
=============================================================================== Choose Install Folder(Input FrameWork Root) ------------------------------------------- Where would you like to install? Default Install Folder: /data2/pfm5qa2/proframe5.0 ENTER AN ABSOLUTE PATH, OR PRESS <ENTER> TO ACCEPT THE DEFAULT : -
ProFrame 기본 정보인 PROJECT_ID와 로그 서버, 빌드 서버 정보 등을 입력한다.
=============================================================================== ProFrame Environment Setting ----------------------------- Enter requested information PROJECT_ID (DEFAULT: PRJ1): PROJECT_ROOT (DEFAULT: /data2/pfm5qa2/proframe5.0): LOGIN_TYPE (DEFAULT: 1): LOGSERVER_IP (DEFAULT: 192.168.1.87): LOGSERVER_PORT (DEFAULT: 8585): BUILDSERVER_PORT (DEFAULT: 8586):
환경변수 설명 PROJECT_ID
현재 Project에 대한 ID를 6Byte이내로 설정한다. 스튜디오에 Loging할 때 선택하는 ID와 동일하다.
PROJECT_ROOT
프로젝트 기본 디렉터리를 지정한다. 보통 설치 디렉터리와 같다.
LOGIN_TYPE
$LOGIN_TYPE은 접속할 서버 종류를 설정하는 환경변수이다.
-
1 : ProFrame
-
2 : ProFrame Admin
-
3 : TPM
-
4 : WAS
-
10 : AP
본 안내서에서는 ProFrame 서버를 접속해야 하므로 이 환경변수에 설정된 값이 '1’인지 확인한다. 현재 '1’을 제외하고는 나머지 값(2, 3, 4, 10)은 사용하지 않는다.
LOGSERVER_IP
로그 서버가 설치된 서버의 IP를 설정한다.
LOGSERVER_PORT
로그 서버에서 사용할 서버의 PORT를 설정한다.
BUILDSERVER_PORT
빌드 서버에서 사용할 서버의 PORT를 설정한다.
-
-
Tmax가 설치되어 있는 디렉터리를 입력한다.
입력한 경로에 정상적으로 Tmax가 설치되어 있는지 자동으로 체크한다. 만약 경로가 정상적이지 않다면 경로 변경 및 종료 창이 나타난다.
=============================================================================== Choose Tmax Installed Folder ----------------------------- Where are been installed? (DEFAULT: /data2/pfm5qa2/proframe5.0/package/tmax) :
-
Tmax가 설치되어 있는 IP와 PORT를 입력한다.
=============================================================================== RunTime Environment Setting --------------------------- TMAX_HOST_ADDR (DEFAULT: 192.168.1.87): TMAX_HOST_PORT (DEFAULT: 8888): 8786
-
RunTime 엔진의 DBMS 연동을 설정(Non-XA)한다. 먼저 사용한 DB_VENDOR를 선택한 후 그에 맞는 정보를 입력한다.
=============================================================================== Choose RunTime DB Vendor ------------------------ Enter requested information ->1- Tibero 2- Oracle ENTER THE NUMBER FOR YOUR CHOICE, OR PRESS <ENTER> TO ACCEPT THE DEFAULT: : =============================================================================== RunTime DB Connect Infomation Setting (tibero) ---------------------------------------------- CONNECT_INFO(Tibero) Setting Infomation for Non-XA Enviroment. TB_HOME (DEFAULT: /home/tibero): TB_SID (DEFAULT: tibero): DB_USER (DEFAULT: root): RTE_USER DB_PASSWORD (DEFAULT: root): RTE_PASSWORD DB_SERVER_IP (DEFAULT: 127.0.0.1): DB_SERVER_PORT (DEFAULT: 38629):환경변수 설명 TB_HOME
Tibero 클라이언트가 설치된 HOME 디렉터리를 입력한다.
TB_SID
Tibero 클라이언트의 tbdsn.tbr에서 설정한 connection name이다
DB_USER
RunTime DB의 접속 계정에서 사용자명을 입력한다.
DB_PASSWORD
RunTime DB의 접속 계정에서 패스워드를 입력한다
DB_SERVER_IP
RunTime DB의 서버의 IP를 입력한다.
DB_SERVER_PORT
RunTime DB의 서버의 PORT를 입력한다.
-
RunTime 엔진의 DBMS를 사용하기 위한 JDBC 라이브러리를 Full Path로 입력한다.
JDBC 라이브러리는 함께 제공하지 않기 때문에 각 DB_VENDOR에 맞는 사이트를 통해 다운받는다.
=============================================================================== Input tibero JDBC Library File Full Path(Local) ----------------------------------------------- $ Input JDBC library file full path(local) (DEFAULT: Based On Locale) : /data2/pfm5qa2/tibero5-jdbc-14.jar
-
RunTime 엔진의 DB 생성 여부를 선택한다.
1번을 선택하면 위에서 입력한 정보를 바탕으로 RunTime 엔진 DB를 생성하며, 2번을 선택할 경우에는 파일만 설치하고 DB는 생성하지 않으며, 사용자가 직접 수동으로 생성해야 한다.
=============================================================================== Create Runtime DB Schema ------------------------ Do you want to create a new runtime database schema? ->1- YES 2- NO ENTER THE NUMBER OF THE DESIRED CHOICE, OR PRESS <ENTER> TO ACCEPT THE DEFAULT: -
설치 전 입력한 내용을 확인할 수 있다.
만약 입력한 내용이 맞지 않다면 취소 후 처음부터 다시 설치해야 한다.
=============================================================================== Set Variables ------------- LOCAL_HOST: tmaxi7 OS_ARCH: PPC OS_VENDOR: aix OS_BIT: 64 OS_VERSION: 6 LD_PATH: LIBPATH USER_INSTALL_DIR: /data2/pfm5qa2/proframe5.0 PROJECT_ID: PRJ1 PRJROOT: /data2/pfm5qa2/proframe5.0 LOGIN_TYPE: 1 LOGSERVER_IP: 192.168.1.1 LOGSERVER_PORT: 8585 BUILDSERVER_PORT: 8586 JAVA_HOME: /usr/java5 USER_MAGIC_FOLDER_1: /data2/pfm5qa2/proframe5.0 USER_MAGIC_FOLDER_2: USER_MAGIC_FOLDER_3: /data2/pfm5qa2/proframe5.0/package/tmax ... TMAX_HOST_ADDR: 192.168.1.1 TMAX_HOST_PORT: 8786 TMAXDIR: /data2/pfm5qa2/proframe5.0/package/tmax TP_HOME_FLAG: TRUE RT_DB_HOME: /data2/tibero5 RT_DB_SID: tibero RT_DB_USERNAME: RTUSER RT_DB_PASSWORD: RTPASS RT_DB_IP: 192.168.1.1 RT_DB_PORT: 38629 RT_DB_VENDOR: tibero RT_DB_DS_CLASS: com.tmax.tibero.jdbc.ext.TbConnectionPoolDataSource RT_DB_DRIVER: com.tmax.tibero.jdbc.TbDriver RT_DB_URL: jdbc:tibero:thin:@192.168.1.1:38629:tibero RT_DB_JDBC_LIB_FULLPATH: /data2/pfm5qa2/tibero5-jdbc-14.jar CREATE_RT_DB_TABLE: 0 PRESS <ENTER> TO INSTALL:
-
다음 화면에서는 설치에 관련한 요약정보를 보여준다. <ENTER> 키를 누르면 설치가 진행된다.
=============================================================================== Pre-Installation Summary ------------------------ Please Review the Following Before Continuing: Product Name: ProFrame_C_5.0_Fix#1 Install Folder: /data2/pfm5qa2/proframe5.0 Install Set Runtime Disk Space Information (for Installation Target): Required: 45,732,264 bytes Available: 107,586,813,952 bytes PRESS <ENTER> TO CONTINUE: -
진행 바와 함께 설치가 진행된다.
=========================================================== Installing... ------------- [===============|===============|===============|===============] [---------------|---------------|---------------|---------------]
-
RunTime 엔진의 DB 생성 여부를 선택했다면 설치가 완료 된 후에 아래와 같은 DB 생성 결과가 나타난다. 만약 에러가 발생했다면 $PRJROOT/db_sql/RunTime 경로에 있는 sql를 사용해 수동으로 생성해야 한다.
=============================================================================== RunTime DB CREATE RESULT ------------------------ =============================================================================== Run Ant (RT_CREATE&INSERT) =============================================================================== RT_TABLE_CREATE_STDOUT: ----------------------- Buildfile: build.xml prepare: db-rt-create-schema: [sql] Executing resource: /data2/pfm5qa2/proframe5.0/db_sql/RunTime/PFM5C _Create_RuntTime_Table_5.0.1.0_FULL.sql [sql] 568 of 568 SQL statements executed successfully db-rt-insert-data: [sql] Executing resource: /data2/pfm5qa2/proframe5.0/db_sql/RunTime/PFM5C _Insert_RuntTime_Data_5.0.1.0_FULL.sql [sql] 1767 of 1767 SQL statements executed successfully BUILD SUCCESSFUL Total time: 12 seconds RT_TABLE_CREATE_STDERR: ----------------------- RT_TABLE_CREATE_STDEXITCODE: ---------------------------- PRESS <ENTER> TO CONTINUE: -
RunTime을 설치하는 경우에는 자동으로 PFMDLUPDATE를 진행한다. pfmdlupdate을 자동으로 진행하기 위해서는 반드시 tdlinit이 동작해야 한다.
만약 에러가 발생했다면 $PRJROOT 경로에 있는 shell 파일을 사용하여 pfmdlupdate를 한다.
=============================================================================== PFM DLUPDATE ------------ Press <Enter> To pfmdlupdate automatically. (tdlinit required) If fail pfmdlupdate, please manually pfmdlupdate using shell file. FilePath: /data2/pfm5qa2/proframe5.0/pfm_dlupdate.sh PRESS <ENTER> TO CONTINUE: =============================================================================== PFM DLUPDATE RESULT ------------------- DLUPDATE_STDOUT: ---------------- #------------------------------------------------------ TDLINIT 실행 후 DLUPDATE 실행 #------------------------------------------------------ -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperOnlstst00010t01InStr.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperOnlstst00010t01InStr.so - -(pfmdlupdate) sucess : libpfmMapperOnlstst00010t01InStr.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperOnlstst00010t01InStr_WS.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperOnlstst00010t01InStr_WS.so - -(pfmdlupdate) sucess : libpfmMapperOnlstst00010t01InStr_WS.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperOnlstst00010t01OutStr.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperOnlstst00010t01OutStr.so - -(pfmdlupdate) sucess : libpfmMapperOnlstst00010t01OutStr.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperOnlstst00010t01OutStr_WS.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperOnlstst00010t01OutStr_WS.so - -(pfmdlupdate) sucess : libpfmMapperOnlstst00010t01OutStr_WS.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperOutQueDataBody.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperOutQueDataBody.so - -(pfmdlupdate) sucess : libpfmMapperOutQueDataBody.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperOutQueDataBody_WS.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperOutQueDataBody_WS.so - -(pfmdlupdate) sucess : libpfmMapperOutQueDataBody_WS.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperOutQueDataHeader.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperOutQueDataHeader.so - -(pfmdlupdate) sucess : libpfmMapperOutQueDataHeader.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperOutQueDataHeader_WS.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperOutQueDataHeader_WS.so - -(pfmdlupdate) sucess : libpfmMapperOutQueDataHeader_WS.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperPfmCustomizeHeaderStr.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperPfmCustomizeHeaderStr.so - -(pfmdlupdate) sucess : libpfmMapperPfmCustomizeHeaderStr.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperPfmCustomizeHeaderStr_WS.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperPfmCustomizeHeaderStr_WS.so - -(pfmdlupdate) sucess : libpfmMapperPfmCustomizeHeaderStr_WS.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperPfmErrorHeaderStr.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperPfmErrorHeaderStr.so - -(pfmdlupdate) sucess : libpfmMapperPfmErrorHeaderStr.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperPfmErrorHeaderStr_WS.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperPfmErrorHeaderStr_WS.so - -(pfmdlupdate) sucess : libpfmMapperPfmErrorHeaderStr_WS.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperPfmErrorHeaderSubStr.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperPfmErrorHeaderSubStr.so - -(pfmdlupdate) sucess : libpfmMapperPfmErrorHeaderSubStr.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperPfmErrorHeaderSubStr_WS.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperPfmErrorHeaderSubStr_WS.so - -(pfmdlupdate) sucess : libpfmMapperPfmErrorHeaderSubStr_WS.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperPfmMessageHeaderStr.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperPfmMessageHeaderStr.so - -(pfmdlupdate) sucess : libpfmMapperPfmMessageHeaderStr.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperPfmMessageHeaderStr_WS.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperPfmMessageHeaderStr_WS.so - -(pfmdlupdate) sucess : libpfmMapperPfmMessageHeaderStr_WS.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperPfmMessageHeaderSubStr.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperPfmMessageHeaderSubStr.so - -(pfmdlupdate) sucess : libpfmMapperPfmMessageHeaderSubStr.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperPfmMessageHeaderSubStr_WS.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperPfmMessageHeaderSubStr_WS.so - -(pfmdlupdate) sucess : libpfmMapperPfmMessageHeaderSubStr_WS.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperPfmSystemHeaderStr.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperPfmSystemHeaderStr.so - -(pfmdlupdate) sucess : libpfmMapperPfmSystemHeaderStr.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperPfmSystemHeaderStr_WS.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperPfmSystemHeaderStr_WS.so - -(pfmdlupdate) sucess : libpfmMapperPfmSystemHeaderStr_WS.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperPfmTestModuleHeaderStr.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperPfmTestModuleHeaderStr.so - -(pfmdlupdate) sucess : libpfmMapperPfmTestModuleHeaderStr.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/pmap/lib/libpfmMapperPfmTestModuleHeaderStr_WS.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmMapperPfmTestModuleHeaderStr_WS.so - -(pfmdlupdate) sucess : libpfmMapperPfmTestModuleHeaderStr_WS.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/dbio/lib/libpfmDbioPfmBatchExt.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmDbioPfmBatchExt.so - -(pfmdlupdate) sucess : libpfmDbioPfmBatchExt.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/dbio/lib/libpfmDbioPfmSm.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmDbioPfmSm.so - -(pfmdlupdate) sucess : libpfmDbioPfmSm.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/dbio/lib/libpfmDbioPfmSmExt.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmDbioPfmSmExt.so - -(pfmdlupdate) sucess : libpfmDbioPfmSmExt.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/dbio/lib/libpfmDbioPfmSvc.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmDbioPfmSvc.so - -(pfmdlupdate) sucess : libpfmDbioPfmSvc.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/release/dbio/lib/libpfmDbioPfmSvcExt.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmDbioPfmSvcExt.so - -(pfmdlupdate) sucess : libpfmDbioPfmSvcExt.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/package/proframe/pfm/lib/libpfmIpprExternalProcess.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmIpprExternalProcess.so - -(pfmdlupdate) sucess : libpfmIpprExternalProcess.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/package/proframe/pfm/lib/libpfmIpprProcess.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmIpprProcess.so - -(pfmdlupdate) sucess : libpfmIpprProcess.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/package/proframe/pfm/lib/libpfmOpprExternalProcess.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmOpprExternalProcess.so - -(pfmdlupdate) sucess : libpfmOpprExternalProcess.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/package/proframe/pfm/lib/libpfmOpprProcess.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmOpprProcess.so - -(pfmdlupdate) sucess : libpfmOpprProcess.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/package/proframe/pfm/lib/libpfmServiceFrame.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmServiceFrame.so - -(pfmdlupdate) sucess : libpfmServiceFrame.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/package/proframe/pfm/lib/libpfmServiceFrameExt.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmServiceFrameExt.so - -(pfmdlupdate) sucess : libpfmServiceFrameExt.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/package/proframe/pfm/lib/libpfmServiceModule.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmServiceModule.so - -(pfmdlupdate) sucess : libpfmServiceModule.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/package/proframe/pfm/lib/libpfmServiceModuleExt.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmServiceModuleExt.so - -(pfmdlupdate) sucess : libpfmServiceModuleExt.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/package/proframe/pfm/lib/libpfmTransactionFrame.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmTransactionFrame.so - -(pfmdlupdate) sucess : libpfmTransactionFrame.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/package/proframe/pfm/lib/libpfmAmsWrapper.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmAmsWrapper.so - -(pfmdlupdate) sucess : libpfmAmsWrapper.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/package/proframe/pfm/lib/libpfmResidentBatch.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmResidentBatch.so - -(pfmdlupdate) sucess : libpfmResidentBatch.so - -(pfmrel) source diretory와 target directory가 같으므로 복사하지 않습니다. - -(pfmdlupdate) ln -s /data2/pfm5qa2/proframe5.0/package/proframe/pfm/lib/libpfmAmsWrapperExt.so /data2/pfm5qa2/proframe5.0/package/tmax/tdlcall/mod/pfmAmsWrapperExt.so - -(pfmdlupdate) sucess : libpfmAmsWrapperExt.so - DLUPDATE_STDERR: ---------------- (I) TDLUTIL0046 TDLDIR initialization complete [TDL0331] (I) TDLUTIL0083 pfmMapperOnlstst00010t01InStr.53739e9e updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperOnlstst00010t01InStr_WS.53739e9f updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperOnlstst00010t01OutStr.53739ea0 updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperOnlstst00010t01OutStr_WS.53739ea1 updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperOutQueDataBody.53739ea2 updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperOutQueDataBody_WS.53739ea3 updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperOutQueDataHeader.53739ea4 updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperOutQueDataHeader_WS.53739ea5 updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperPfmCustomizeHeaderStr.53739ea6 updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperPfmCustomizeHeaderStr_WS.53739ea7 updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperPfmErrorHeaderStr.53739ea8 updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperPfmErrorHeaderStr_WS.53739ea9 updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperPfmErrorHeaderSubStr.53739eaa updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperPfmErrorHeaderSubStr_WS.53739eab updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperPfmMessageHeaderStr.53739eac updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperPfmMessageHeaderStr_WS.53739ead updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperPfmMessageHeaderSubStr.53739eae updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperPfmMessageHeaderSubStr_WS.53739eaf updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperPfmSystemHeaderStr.53739eb0 updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperPfmSystemHeaderStr_WS.53739eb1 updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperPfmTestModuleHeaderStr.53739eb2 updated successfully [TDL0418] (I) TDLUTIL0083 pfmMapperPfmTestModuleHeaderStr_WS.53739eb3 updated successfully [TDL0418] (I) TDLUTIL0083 pfmDbioPfmBatchExt.53739eb4 updated successfully [TDL0418] (I) TDLUTIL0083 pfmDbioPfmSm.53739eb5 updated successfully [TDL0418] (I) TDLUTIL0083 pfmDbioPfmSmExt.53739eb6 updated successfully [TDL0418] (I) TDLUTIL0083 pfmDbioPfmSvc.53739eb7 updated successfully [TDL0418] (I) TDLUTIL0083 pfmDbioPfmSvcExt.53739eb8 updated successfully [TDL0418] (I) TDLUTIL0083 pfmIpprExternalProcess.53739eb9 updated successfully [TDL0418] (I) TDLUTIL0083 pfmIpprProcess.53739eba updated successfully [TDL0418] (I) TDLUTIL0083 pfmOpprExternalProcess.53739ebb updated successfully [TDL0418] (I) TDLUTIL0083 pfmOpprProcess.53739ebc updated successfully [TDL0418] (I) TDLUTIL0083 pfmServiceFrame.53739ebd updated successfully [TDL0418] (I) TDLUTIL0083 pfmServiceFrameExt.53739ebe updated successfully [TDL0418] (I) TDLUTIL0083 pfmServiceModule.53739ebf updated successfully [TDL0418] (I) TDLUTIL0083 pfmServiceModuleExt.53739ec0 updated successfully [TDL0418] (I) TDLUTIL0083 pfmTransactionFrame.53739ec1 updated successfully [TDL0418] (I) TDLUTIL0083 pfmAmsWrapper.53739ec2 updated successfully [TDL0418] (I) TDLUTIL0083 pfmResidentBatch.53739ec3 updated successfully [TDL0418] (I) TDLUTIL0083 pfmAmsWrapperExt.53739ec4 updated successfully [TDL0418] DLUPDATE_STDEXITCODE: --------------------- PRESS <ENTER> TO CONTINUE:
-
RunTime 서버의 설치가 완료된다.
=============================================================================== Installation Complete --------------------- Congratulations. ProFrame_C_5.0_Fix#1 has been successfully installed to: ProFrame: /data2/pfm5qa2/proframe5.0 Tmax: /data2/pfm5qa2/proframe5.0/package/tmax PRESS <ENTER> TO EXIT THE INSTALLER:
-
NON-XA를 지원하기 위한 데이터베이스 연결 정보를 생성한다.
NON XA는 Native SQL로 관계형 데이터베이스 시스템에 직접 연결하여 서버 프로그램이 트랜잭션 제어를 하도록 하는 방식이다. NOX-XA를 지원하기 위해서는 데이터베이스 연결 정보를 생성하는 라이브러리인 pfmDbioConnectDB.c 파일을 컴파일하고 생성된 libpfmDbioConnectDB.so 라이브러리 파일을 업데이트해야 한다.
-
pfmDbioConnectDB.c 파일을 컴파일한다.
[pfmtpqa@fwsol:/home2/pfmtpqa/ProFrame5.0/package/proframe/pfm_dev/src/pfmDbioConnectDB]$ make -f pfmDbioConnectDB.mk clean all rm -f core pfmDbioConnectDB.o libpfmDbioConnectDB.so cc -DORACLE -g -xarch=v9 -xmemalign=1i -KPIC -xc99 -D_RND -D_DEBUG -DUSE_TCACHE -DTCACHE_ON -DGLOBALCB -DAUTOFREECB -DTRACE -DDEBUG -I. -I/home2/pfmtpqa/ProFrame5.0/package/proframe/pfm/inc -I/home2/pfmtpqa/ProFrame5.0/release/pmap/inc -I/home2/pfmtpqa/ProFrame5.0/release/pmap/src -I/home2/pfmtpqa/ProFrame5.0/release/dbio/inc -I/home2/pfmtpqa/ProFrame5.0/package/tmax/usrinc -I/home2/pfmtpqa/ProFrame5.0/package/tmax -I/home2/ora10g/oracle/product/10.2.0/client_1/precomp/public -I/home2/ora10g/oracle/product/10.2.0/client_1/rdbms/public -c pfmDbioConnectDB.c `if test sun = "hpux" || test sun = "hpux_parisc" ; then echo "ld"; else echo "cc"; fi` -o libpfmDbioConnectDB.so pfmDbioConnectDB.o `if test sun != "hpux" && test sun != "hpux_parisc" ; then echo "-g -xarch=v9 -xmemalign=1i -KPIC -xc99"; fi` -xarch=v9 -xmemalign=1i -B dynamic -xarch=v9 -KPIC -G -B dynamic -lc -L/home2/ora10g/oracle/product/10.2.0/client_1/lib [pfmtpqa@fwsol:/home2/pfmtpqa/ProFrame5.0/package/proframe/pfm_dev/src/pfmDbioConnectDB]$
-
컴파일 후에 생성된 libpfmDbioConnectDB.so 라이브러리 파일을 업데이트한다.
[pfmtpqa@fwsol:/home2/pfmtpqa/ProFrame5.0/package/proframe/pfm_dev/src/pfmDbioConnectDB]$ pfmdlupdate libpfmDbioConnectDB.so -(pfmrel) mv /home2/pfmtpqa/ProFrame5.0/release/dbio/lib/libpfmDbioConnectDB.so /home2/pfmtpqa/ProFrame5.0/release/lib/temp/libpfmDbioConnectDB.so_2008 0923203315 - -(pfmrel) cp /home2/pfmtpqa/ProFrame5.0/package/proframe/pfm_dev/src/pfmDbioConnectD B/libpfmDbioConnectDB.so /home2/pfmtpqa/ProFrame5.0/release/dbio/lib - -(pfmdlupdate) ln -s /home2/pfmtpqa/ProFrame5.0/release/dbio/lib/libpfmDbioConnectDB.so /home2/pfmtpqa/ProFrame5.0/package/tmax/tdlcall/mod/pfmDbioConnectDB.so - (I) TDLUPDATE: pfmDbioConnectDB.48d8d3fb updated successfully[TDL0418] -(pfmdlupdate) sucess : libpfmDbioConnectDB.so -
pfmdlupdate 명령어는 ProFrame에서 제공하는 라이브러리 유틸리티로 생성된 파일을 라이브러리 폴더로 옮기는 역할을 한다. 또한 해당 라이브러리의 호출을 위해 TDL 디렉터리($TMAXDIR/mod)에 연결하여 TDL을 가능하게 한다.
-
-
시스템을 모니터링하기 위해 apmmem를 생성한다. apmmem은 ProFrame 의 모니터링 정보를 Shared Memory에 올려놓는 역할을 한다.
다음은 apmmem를 생성하는 방법이다.
[pfmtpqa@fwsol:/home2/pfmtpqa]$ apmmemadmin –c APMMEM ver. 2.4.0 This will create all APMMEM contents. Are you sure? [Y/N] y APMMEM created..... TRCBACKMEM created..... EXTNMEM created..... New all APMMEM contents initialized successfully. WARNING : You must be restart your TP monitor(tmax, tuxedo etc..) to monitor all transactions!!! [pfmtpqa@fwsol:/home2/pfmtpqa]$
-
TCache를 생성한다. TCache는 ProFrame 시스템을 운영하는 중에 데이터베이스에 접근하는 정보를 Shared Memory에 캐싱하는 유틸리티이다. TCache는 ProFrame 시스템의 성능을 보장하도록 지원하는 목적이 있다.
TCache를 생성하는 방법은 다음과 같다.
[pfmtpqa@fwsol:/home2/pfmtpqa]$ pfmtcacheadmin -c TCACHE ver. 2.3.6 New TCACHE initialized successfully. [pfmtpqa@fwsol:/home2/pfmtpqa]$
pfmtcacheadmin는 TCache에서 제공하는 명령어로 TCache를 생성하는 목적으로 사용된다.
-
Tmax에 ProFrame 서버 및 서비스를 등록한다.
ProFrame 서버 및 서비스를 등록하려면 $TMAXDIR/config 디렉터리에 있는 sample.m 파일을 확인한다. 이 파일은 Tmax를 설치할 때 자동으로 생성되는 환경설정 파일로 사용자가 원한다면 파일명은 변경하여 사용할 수 있다.
다음은 Tmax 환경설정 파일에서 확인해야 할 *SVRGROUP, *SERVER, *SERVICE 영역이다. 본 예제에서는 sample.m 파일을 tmconfig.m 파일로 변경하고 서버와 서비스를 등록한다.
*SVRGROUP svg2 NODENAME="fwsol", DBNAME=ORACLE, OPENINFO= "Oracle_XA+Acc=P/$DB_USER/$DB_PW+SqlNet=$EXTERNAL_SID+SesTm=60+LogDir=/ sw/pfm/ProFrame5.0/package/tmax/log/xalog", TMSNAME = tms_ora, TMSRECOVERY = N *SERVER TPFMIPPR SVGNAME = svg1 TPFMADM02 SVGNAME = svg1 BONL02CN SVGNAME = svg2 UONL01CN SVGNAME = svg1, SVRTYPE=UCS TPFMADM03 SVGNAME = svg1 PONL01CX SVGNAME = svg2, MIN=0, MAX=1, LIFESPAN=IDLE_0 *SERVICE SPFMIPPR SVRNAME = TPFMIPPR TESTSVC01 SVRNAME = BONL02CN TESTSVC02 SVRNAME = BONL02CN PFMADMSVC31 SVRNAME = TPFMADM03 PFMADMSVC11 SVRNAME = TPFMADM02*SVRGROUP 영역은 서버 환경에 맞는 내용으로 변경하고 *SERVER, *SERVICE 영역은 본 예제 그대로 추가한다.
-
위와 같이 등록된 서버와 서비스를 적용하기 위해서는 다음과 같이 3단계로 작업을 수행한다. 각 단계별 명령어에 대한 상세한 내용은 “Tmax Getting Started Guide”를 참고한다.
-
Tmax의 환경설정 파일을 컴파일한다.
[pfmtpqa@fwsol:/home2/pfmtpqa/ProFrame5.0/package/tmax/config]$ cfl -i fwsol.m CFL is done successfully for node(fwsol) [pfmtpqa@fwsol:/home2/pfmtpqa/ProFrame5.0/package/tmax/config]$ gst SVC tables are successfully generated GST is successfully done
명령어 설명 cfl
Tmax 환경설정 파일을 컴파일하는 명령어이다.
gst
Tmax 환경설정 파일을 기준으로 테이블을 생성하는 명령어이다.
-
Tmax 서버를 재기동하여 등록된 ProFram의 서버와 서비스를 시스템에 적용한다.
[pfmtpqa@fwsol:/home2/pfmtpqa/ProFrame5.0/package/tmax/config]$ tmdown TMBOOT for node(fwsol) is starting: Welcome to Tmax demo system: it will expire 2008/11/22 Today: 2008/9/23 TMBOOT: TMM is starting: Tue Sep 23 21:04:38 2008 TMBOOT: CLL is starting: Tue Sep 23 21:04:38 2008 TMBOOT: CLH is starting: Tue Sep 23 21:04:38 2008 (I) CLH9991 Current Tmax Configuration: Number of client handler(MINCLH) = 1 Supported maximum user per node = 8040 Supported maximum user per handler = 8040 [CLH0125] TMBOOT: TLM(tlm) is starting: Tue Sep 23 21:04:38 2008 TMBOOT: TMS(tms_ora) is starting: Tue Sep 23 21:04:38 2008 TMBOOT: TMS(tms_ora) is starting: Tue Sep 23 21:04:38 2008 TMBOOT: SVR(TPFMIPPR) is starting: Tue Sep 23 21:04:38 2008 TMBOOT: SVR(TPFMADM02) is starting: Tue Sep 23 21:04:38 2008 TMBOOT: SVR(BONL02CN) is starting: Tue Sep 23 21:04:38 2008 TMBOOT: SVR(UONL01CN) is starting: Tue Sep 23 21:04:38 2008 TMBOOT: SVR(TPFMADM03) is starting: Tue Sep 23 21:04:38 2명령어 설명 tmboot
Tmax 환경설정 파일을 기준으로 Tmax 서버를 기동하는 명령어이다.
tmdown
Tmax 서버를 종료시키는 명령어이다.
-
마지막으로 두 번째 단계에서 적용된 ProFrame 서버와 서비스를 확인하는 절차를 끝으로 등록을 마친다.
[pfmtpqa@fwsol:/home2/pfmtpqa/ProFrame5.0/package/tmax/config]$ $TMAXDIR/bin/tmadmin
tmadmin은 Tmax에서 제공하는 시스템 관리 툴로 Tmax 서버 및 서비스 환경을 확인하는 명령어이다.
[pfmtpqa@fwsol:/home2/pfmtpqa/ProFrame5.0/package/tmax/config]$ $TMAXDIR/bin/tmadmin --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 fwsol (tmadm): st -v --------------------------------------------------------------------- clh svrname (svri) status count qcount qpcount emcount --------------------------------------------------------------------- 0 TPFMIPPR ( 4) RDY 0 0 0 0 0 TPFMADM02 ( 5) RDY 0 0 0 0 0 BONL02CN ( 6) RDY 0 0 0 0 0 UONL01CN ( 7) NRDY 0 0 0 0 0 TPFMADM03 ( 8) RDY 0 0 0 0 $$2 fwsol (tmadm): st -s CLH 0: --------------------------------------------------------------------- svc_name svr_name count cq_cnt aq_cnt q_avg avg status --------------------------------------------------------------------- SPFMIPPR TPFMIPPR 0 0 0 0.000 0.000 RDY TESTSVC01 BONL02CN 0 0 0 0.000 0.000 RDY TESTSVC02 BONL02CN 0 0 0 0.000 0.000 RDY PFMADMSVC11 TPFMADM02 0 0 0 0.000 0.000 RDY PFMADMSVC31 TPFMADM03 0 0 0 0.000 0.000 RDY
명령어 설명 st –v
Tmax의 서버 환경을 확인하는 명령어이다.
st –s
Tmax의 서비스 환경을 확인하는 명령어이다.
위 예제에서 'UONL01CN'은 상주 배치이다. 그리고 이 상주 배치의 서버 상태가 NRDY임을 확인할 수 있다. 즉, 시스템에 적용된 ProFrame 서버와 서비스 등록이 제대로 수행되었음을 확인할 수 있다.
상주 배치는 ProFrame에서 제공하는 배치의 일종으로 상세한 내용은 ProFrame 배치 프로그래밍 안내서를 참고한다.
-
2.2. 통합 서버 설치
통합 서버는 개발 툴의 버전 관리, 공유 모듈의 버전 관리, 소스 자동생성, 이력관리, 권한관리, 리소스 영향도 분석 기능을 제공하는 서버이다.
설치 과정에서 값을 입력 받을 때 기본값을 제시한다. 셸은 이전 단계로 돌아가는 것이 기본적으로 불가능하므로 설치가 완료된 후에 값을 변경하면 된다. 하지만 어느 단계까지는 <back>, <ENTER> 입력을 통해 이전 단계로 이동이 가능하다
다음은 제공된 바이너리 파일(ProFrame_C_5_0_Fix1_{OS_Type}_{Bit}.bin)을 사용하여 통합 서버를 설치하는 방법을 설명한다.
-
설치 파일이 실행이 가능하도록 실행 권한을 부여하고 실행한다.
> chmod u+x ProFrame_C_5_0_Fix1_AIX_64.bin
[pfm5qa2@tmaxi7:/data2/pfm5qa2]$ProFrame_C_5_0_Fix1_AIX_64.bin Preparing to install... Extracting the installation resources from the installer archive... Configuring the installer for this system's environment... Launching installer... Preparing CONSOLE Mode Installation... =============================================================================== ProFrame_C_5.0_Fix#1 (created with InstallAnywhere by Macrovision) ------------------------------------------------------------------------------- =============================================================================== Introduction ------------ APPLIES TO - Product Name : ProFrame_C_5.0_Fix#1 - Platform : AIX 64bit - DB : Tibero 5.0, Oracle 10g/11g - JEUS Ver : JEUS 6.0 Fix#8 - TMAX Ver : Tmax5 SP2 - JAVA Ver : 1.5 over It is strongly recommended that you quit all programs before continuing with this installation. Respond to each prompt to proceed to the next step in the installation. If you want to change something on a previous step, type 'back'. You may cancel this installation at any time by typing 'quit'. PRESS <ENTER> TO CONTINUE:
-
라이선스 준수 화면이 나타나 라이선스 동의 여부를 묻는다. 동의한다면 'Y’를 입력한 후 <ENTER> 키를 누른다.
=============================================================================== License Agreement ----------------- Installation and Use of ProFrame_C_5.0_Fix#1 Requires Acceptance of the Following License Agreement: ProFrame C 5.0 Fix#1 This Software is made by 'TmaxSoft Co.,Ltd.' and this software is distributed under our license agreement. Software End-User License Agreement Product : ProFrame C 5.0 Fix#1 This is a legal agreement between you (either an individual or an entity) and TmaxSoft, Incorporated. By opening the sealed software package and/or by using the software, you agree to be bound by the terms of this agreement. ProFrame C 5.0 Fix#1 Software License 1. Grant of License: This ProFrame C 5.0 Fix#1 Software License Agreement ("License") permits you to use one copy of the TmaxSoftware product Tmax, on any single computer, provided the software is in use on only one computer at any one time. If this package is a license pack, you may make and use additional copies of the software up to the number of licensed copies authorized. If you have multiple licenses for the software, then at any time you may have as many copies of the software in use as you have licenses. The software is "in use" on a computer when it is loaded into the temporary memory (i.e., RAM) or installed into the permanent memory (e.g., hard disk, PRESS <ENTER> TO CONTINUE: CD-ROM, or other storage device) of that computer, except that a copy installed on a network server for the sole purpose of distribution to other computers is not "in use". If the anticipated number of users of the software will exceed the number of applicable licenses, then you must have a reasonable mechanism or process in place to ensure that the number of persons using the software concurrently does not exceed the number of licenses. 2. Copyright: The software (including any images, applets, photographs, animations, video, audio, music and text incorporated into the software) is owned by TmaxSoft or its suppliers and international treaty provisions. Therefore, you must treat the software like any other copyrighted material (e.g., a book or musical recording) except that you may either (a) make one copy of the software solely for backup or archival purposes, or (b) transfer the software to a single hard disk provided you keep the original solely for backup or archival purposes. You may not copy the printed materials accompanying the software, nor print copies of any user documentation provided in "online"or electronic form. 3. Other restrictions: This license is your proof of license to exercise the rights granted herein and must be retained by you. You may not rent or lease the software, but you may transfer your rights under this license on a permanent basis provided you transfer this license, the PRESS <ENTER> TO CONTINUE: software, and all accompanying printed materials, retain no copies, and the recipient agrees to the terms of this license. You may not reverse engineer, decompile, or disassemble the software, except to the extent that the foregoing restriction is expressly prohibited by applicable law. TmaxSoft Co., Ltd. DO YOU ACCEPT THE TERMS OF THIS LICENSE AGREEMENT? (Y/N): -
Install Set을 선택하는 화면이 출력된다. 통합 서버 설치는 '2’를 입력한 뒤 <ENTER> 키를 누른다.
=============================================================================== Choose Install Set ------------------ Please choose the Install Set to be installed by this installer. ->1- Runtime 2- Server 3- All ENTER THE NUMBER FOR THE INSTALL SET, OR PRESS <ENTER> TO ACCEPT THE DEFAULT : 2 -
Java 디렉터리를 선택한다. 설치전 반드시 Java 홈 디렉터리 환경변수($JAVA_HOME)를 등록해야 한다.
=============================================================================== Choose Java Home Folder ----------------------- Please Choose Java Home Folder ($JAVA_HOME): Input Java Home Path (DEFAULT: /usr/java5):
-
설치 디렉터리를 선택한다.
기본적으로 제공되는 값을 사용하려면 <ENTER> 키를 누르고, 디렉터리 변경을 원하면 설치 경로를 입력한다.
=============================================================================== Choose Install Folder(Input FrameWork Root) ------------------------------------------- Where would you like to install? Default Install Folder: /data2/pfm5qa2/proframe5.0 ENTER AN ABSOLUTE PATH, OR PRESS <ENTER> TO ACCEPT THE DEFAULT : -
ProFrame 기본 정보인 PROJECT_ID와 로그 서버, 빌드 서버 정보등을 입력한다.
=============================================================================== ProFrame Environment Setting ----------------------------- Enter requested information PROJECT_ID (DEFAULT: PRJ1): PROJECT_ROOT (DEFAULT: /data2/pfm5qa2/proframe5.0): LOGIN_TYPE (DEFAULT: 1): LOGSERVER_IP (DEFAULT: 192.168.1.87): LOGSERVER_PORT (DEFAULT: 8585): BUILDSERVER_PORT (DEFAULT: 8586):
환경변수 설명 PROJECT_ID
현재 Project에 대한 ID를 6Byte이내로 설정한다. 스튜디오에 Loging할 때 선택하는 ID와 동일하다.
PROJECT_ROOT
프로젝트 기본 디렉터리를 지정한다. 보통 설치 디렉터리와 같다.
LOGIN_TYPE
$LOGIN_TYPE은 접속할 서버 종류를 설정하는 환경변수이다.
-
1 : ProFrame
-
2 : ProFrame Admin
-
3 : TPM
-
4 : WAS
-
10 : AP
본 안내서에서는 ProFrame 서버를 접속해야 하므로 이 환경변수에 설정된 값이 '1’인지 확인한다. 현재 '1’을 제외하고는 나머지 값(2, 3, 4, 10)은 사용하지 않는다.
LOGSERVER_IP
로그 서버가 설치된 서버의 IP를 설정한다.
LOGSERVER_PORT
로그 서버에서 사용할 서버의 PORT를 설정한다.
BUILDSERVER_PORT
빌드 서버에서 사용할 서버의 PORT를 설정한다.
-
-
Jeus가 설치되어 있는 디렉터리를 입력한다
입력한 경로에 정상적으로 Jeus가 설치되어 있는지 자동으로 체크한다. 만약 경로가 정상적이지 않다면 경로 변경 및 종료 창이 나타난다.
=============================================================================== Choose JEUS Installed Folder ----------------------------- Where are been installed? (DEFAULT: /data2/pfm5qa2/proframe5.0/package/jeus) :
-
통합 서버의 정보를 입력한다.
=============================================================================== Server Environment Setting --------------------------- PFM_SERVER_IP(Locale) (DEFAULT: 192.168.1.87): PFM_SERVER_PORT (DEFAULT: 8088):
환경변수 설명 SERVER_IP
통합 서버가 설치되는 서버의 IP를 입력한다.
SERVER_PORT
통합 서버에서 사용할 서버의 PORT를 설정한다.
-
통합 서버의 DBMS 연동 설정(Datasource)을 한다. DBMS 목록에서 사용할 DB_VENDOR를 선택한 후 DB 정보를 입력한다.
=============================================================================== Choose RIWS DB Vendor --------------------- Enter requested information 1- Tibero ->2- Oracle ENTER THE NUMBER FOR YOUR CHOICE, OR PRESS <ENTER> TO ACCEPT THE DEFAULT: : =============================================================================== RIWS oracle JDBC Data Source Setting ------------------------------------ Enter requested information DB_SERVER_IP (DEFAULT: 192.168.1.87): DB_SERVER_PORT (DEFAULT: 1521): DB_SID (DEFAULT: orcl): USER (RI) (DEFAULT: ri_user): PASSWORD (RI) (DEFAULT: ri_pwd): USER (WS) (DEFAULT: ws_user): PASSWORD (WS) (DEFAULT: ws_pwd):환경변수 설명 DB_SERVER_IP
DB 서버의 IP를 입력한다.
DB_SERVER_PORT
DB 서버의 PORT를 입력한다.
DB_SID
DB_SID를 입력한다.
USER (RI)
RI_DB의 접속 계정을 입력한다.
PASSWORD (RI)
RI_DB의 접속 패스워드를 입력한다.
USER (WS)
WS_DB의 접속 계정을 입력한다.
PASSWORD (WS)
WS_DB의 접속 패스워드를 입력한다.
-
통합 서버의 DBMS를 사용하기 위한 JDBC 라이브러리를 Full Path로 입력한다.
JDBC 라이브러리는 함께 제공하지 않기 때문에 각 DB_VENDOR에 맞는 사이트를 통해 다운 받는다.
=============================================================================== Input oracle JDBC Library File Full Path(Local) ----------------------------------------------- Input JDBC library file full path(local) (DEFAULT: Based On Locale) : /data2/pfm5qa2/ojdbc14.jar
-
통합 서버의 DB 생성 여부를 선택한다.
1번을 선택하면 위에서 입력한 정보를 바탕으로 RunTime 엔진 DB를 생성하며, 2번을 선택할 경우에는 파일만 설치하고 DB는 생성하지 않으며, 사용자가 직접 수동으로 생성해야 한다.
=============================================================================== Create RIWS DB Schema --------------------- Do you want to create a new RI/WS database schema? ->1- YES 2- NO ENTER THE NUMBER OF THE DESIRED CHOICE, OR PRESS <ENTER> TO ACCEPT THE DEFAULT: -
설치 전 입력한 내용을 확인할 수 있다.
만약 입력한 내용이 맞지 않다면 취소 후 처음부터 다시 설치해야 한다.
=============================================================================== Set Variables ------------- LOCAL_HOST: tmaxi7 OS_ARCH: PPC OS_VENDOR: aix OS_BIT: 64 OS_VERSION: 6 LD_PATH: LIBPATH USER_INSTALL_DIR: /data2/pfm5qa2/proframe5.0 PROJECT_ID: PRJ1 PRJROOT: /data2/pfm5qa2/proframe5.0 LOGIN_TYPE: 1 LOGSERVER_IP: 192.168.1.87 LOGSERVER_PORT: 8585 BUILDSERVER_PORT: 8586 JAVA_HOME: /usr/java5 USER_MAGIC_FOLDER_1: /data2/pfm5qa2/proframe5.0 USER_MAGIC_FOLDER_2: /data2/pfm5qa2/proframe5.0/package/jeus6 USER_MAGIC_FOLDER_3: SERVER_IP: 192.168.1.87 SERVER_PORT: 8088 JEUS_BASE_PORT: 9736 JEUS_HOME: /data2/pfm5qa2/proframe5.0/package/jeus6 JEUS_HOME_FLAG: TRUE RIWS_DB_IP: 192.168.32.123 RIWS_DB_SID: ORA10G RI_DB_USERNAME: RIUSER RI_DB_PASSWORD: RIPASSWD WS_DB_USERNAME: WSUSER WS_DB_PASSWORD: WSPASSWD RIWS_DB_PORT: 1521 RIWS_DB_VENDOR: oracle RIWS_DB_DS_CLASS: oracle.jdbc.pool.OracleConnectionPoolDataSource RIWS_DB_DRIVER: oracle.jdbc.driver.OracleDriver RIWS_DB_URL: jdbc:oracle:thin:@192.168.32.123:1521:ORA10G RIWS_DB_JDBC_LIB_FULLPATH: /data2/pfm5qa2/ojdbc14.jar CREATE_RIWS_DB_TABLE: 0 ... PRESS <ENTER> TO INSTALL:
-
다음 화면에서는 설치에 관련한 요약정보를 보여준다. <ENTER> 키를 누르면 설치가 진행된다.
=============================================================================== Pre-Installation Summary ------------------------ Please Review the Following Before Continuing: Product Name: ProFrame_C_5.0_Fix#1 Install Folder: /data2/pfm5qa2/proframe5.0 Install Set Server Disk Space Information (for Installation Target): Required: 70,158,921 bytes Available: 107,532,849,152 bytes PRESS <ENTER> TO CONTINUE: -
진행 바와 함께 설치가 진행된다.
=========================================================== Installing... ------------- [===============|===============|===============|===============] [---------------|---------------|---------------|---------------]
-
통합 서버의 DB 생성 여부를 선택했다면 설치가 완료 된 후에 아래와 같은 DB 생성 결과가 나타난다.
만약 에러가 발생했다면 $PRJROOT/db_sql/RIWS 경로에 있는 sql를 사용해 수동으로 생성해야 한다.
(DEV_TEMPLATE_INFO 테이블 마지막 컬럼(CONTENT)의 BLOB 데이터는 $PRJROOT/db_sql/Template 경로에 있는 파일의 내용을 WebAdmin > 공통 > 공통시스템 > 템플릿관리 > 템플릿 관리 페이지에서 직접 입력해야 한다.)
=============================================================================== RIWS DB CREATE RESULT --------------------- =============================================================================== Run Ant (RIWS_CREATE&INSERT) =============================================================================== RI_TABLE_CREATE_STDOUT: ----------------------- Buildfile: build.xml prepare: db-ws-create-schema: [sql] Executing resource: /data2/pfm5qa2/proframe5.0/db_sql/RIWS/03_PFM5C _Create_WS_Table_Script_5.0.1.0_FULL.sql [sql] 29 of 29 SQL statements executed successfully db-ri-create-schema: [sql] Executing resource: /data2/pfm5qa2/proframe5.0/db_sql/RIWS/01_PFM5C _Create_RI_Table_Script_5.0.1.1_FULL.sql [sql] 179 of 179 SQL statements executed successfully db-ri-insert-data: [sql] Executing resource: /data2/pfm5qa2/proframe5.0/db_sql/RIWS/02_PFM5C _Insert_RI_Default_Data_5.0.1.1_FULL.sql [sql] 1086 of 1086 SQL statements executed successfully BUILD SUCCESSFUL Total time: 9 seconds RI_TABLE_CREATE_STDERR: ----------------------- RI_TABLE_CREATE_STDEXITCODE: ---------------------------- =============================================================================== Run Ant (RIWS_SYNONYM) =============================================================================== WS_GRANT_CREATE_STDOUT: ----------------------- Buildfile: build.xml prepare: db-ri-create-synonym: [sql] Executing resource: /data2/pfm5qa2/proframe5.0/db_sql/RIWS/04_PFM5C _Create_RI_Synonym_Script_5.0.1.1_FULL.sql [sql] 2 of 2 SQL statements executed successfully db-ws-create-synonym: [sql] Executing resource: /data2/pfm5qa2/proframe5.0/db_sql/RIWS/05_PFM5C _Create_WS_Synonym_Script_5.0.1.1_FULL.sql [sql] 15 of 15 SQL statements executed successfully db-ri-create-grant: [sql] Executing resource: /data2/pfm5qa2/proframe5.0/db_sql/RIWS/06_PFM5C _Create_RI_Synonym_Script_5.0.1.1_FULL.sql [sql] 15 of 15 SQL statements executed successfully BUILD SUCCESSFUL Total time: 1 second WS_GRANT_CREATE_STDERR: ----------------------- WS_GRANT_CREATE_STDEXITCODE: ---------------------------- PRESS <ENTER> TO CONTINUE: -
ProFrame 서버의 설치가 완료된다.
=============================================================================== Installation Complete --------------------- Congratulations. ProFrame_C_5.0_Fix#1 has been successfully installed to: ProFrame: /data2/pfm5qa2/proframe5.0 Jeus : /data2/pfm5qa2/proframe5.0/package/jeus6 PRESS <ENTER> TO EXIT THE INSTALLER:
2.3. 전체 설치
본 절에서는 RunTime과 통합 서버를 함께 설치하는 과정에 대해서 설명한다.
전체 설치하는 경우도 제공된 바이너리 파일(ProFrame_C_5_0_Fix1_{OS_Type}_{Bit}.bin)을 동일하게 사용한다. 설치 과정 중 Install Set을 선택하는 화면에서 3번을 선택하여 진행하는 것만 다르고 나머지 과정은 동일하다.
===============================================================================
Choose Install Set
------------------
Please choose the Install Set to be installed by this installer.
->1- Runtime
2- Server
3- All
ENTER THE NUMBER FOR THE INSTALL SET, OR PRESS <ENTER> TO ACCEPT THE DEFAULT
: 3
3. 환경설정
본 절에서는 ProFrame에서 설정된 환경설정 파일의 각 항목에 대하여 설명한다.
3.1. 환경설정 파일
다음은 통합 서버 설치와 관련된 환경설정 파일이다.
$JEUS_HOME/webhome/app_home/WEB-INF/lib/PfmDevSvr.xml
$JEUS_HOME/config/{hostname}/JEUSMain.xml
$JEUS_HOME/config/{hostname}/{hostname}_servelt_engine1/WEBMain.xml
3.2. 단위 테스트를 위한 환경설정
TestFrameWorkConfig.jsp 파일은 서비스 단위의 모듈(서비스 모듈, 비즈니스 모듈)을 단위 테스트하기 위해 필요한 환경설정 파일이다. 이 파일은 $JEUS_HOME/webhome/app_home/pfmdevsvr/webAdmin 디렉터리에 위치한다.
다음은 TestFrameWorkConfig.jsp 파일의 일부 내용이다. 프로젝트를 추가하는 경우 if 문에 프로젝트 조건을 추가해 주어야 한다.
//---------------------------------------------------------
String call_ip = null;
String call_port = null;
if(projectId.equals("PRJ1")) {
call_ip = "192.168.1.1";
call_port = "8786";
} else {
call_ip = "127.0.0.1";
call_port = "1234";
}
final String DFLT_CALL_IP_ADDRESS = call_ip;
final String DFLT_CALL_PORT = call_port;
final String DFLT_CALL_SERVICE_NAME = "SPFMIPPR";
//---------------------------------------------------------
다음은 위 예제의 수정해야 할 항목에 대한 설명이다.
| 항목 | 설명 |
|---|---|
DFLT_CALL_IP_ADDRESS |
ProFrame 서버가 설치된 시스템의 IP 주소를 설정한다. |
DFLT_CALL_PORT |
Tmax 서버의 포트 번호와 동일하게 설정한다. |
DFLT_CALL_SERVICE_NAME |
IPPR(Input Pre-Processor) 서버를 위한 Tmax의 서비스 이름으로 수정하지 않는다. IPPR는 ProFrame의 입력 전문 프로세서로 입력 전문을 ProMapper에서 정의한 구조체로 변환하는 작업을 수행하는 Tmax 서버의 기능이다. |