설치 및 제거
본 장에서는 OpenFrame TACF의 설치 및 설치 검증, 설치 제거 방법에 대하여 기술한다.
1. 설치
본 절에서는 TACF를 인스톨러를 이용해서 자동 설치하는 방법과 스크립트를 이용한 수동 설치하는 방법에 대해서 설명한다.
1.1. 인스톨러를 이용한 자동 설치
설치용 속성 파일 작성에서 설명한 설치용 속성 파일에서 설명한 설치용 속성 파일을 작성했다면, 인스톨러를 이용하여 간단하게 TACF를 설치할 수 있다.
다음의 설치방법은 모든 플랫폼에서 동일하게 적용된다.
-
TACF를 설치할 시스템의 원하는 위치에 인스톨러 바이너리 파일을 복사한다.
-
인스톨러 바이너리에 실행권한이 주어지지 않은 경우에는 다음과 같이 chmod 명령어를 사용하여 실행권한을 부여한다.
다음은 Linux x86 64Bit용 인스톨러 바이너리에 실행권한을 부여하는 예이다.
$ chmod a+x OpenFrame_Tacf7.3_Linux_x86_64.bin
-
콘솔 프롬프트에서 인스톨러를 실행한다.
<installer_file_name> -f tacf.properties
다음은 설치용 속성 파일을 tacf.properties로 작성해서 실행하는 방법이다. 다음 2가지 방법 중 하나를 선택하고 <Enter> 키를 누른다.
-
방법 1
$ ./OpenFrame_Tacf7.3_Linux_x86_64.bin -f tacf.properties
-
방법 2
$ sh OpenFrame_Tacf7.3_Linux_x86_64.bin -f tacf.properties
-
-
다음과 같은 화면을 출력하면서 자동으로 TACF 설치를 진행한다.
Preparing to install... Extracting the JRE from the installer archive... Unpacking the JRE... Extracting the installation resources from the installer archive... Configuring the installer for this system's environment... Launching installer... Preparing CONSOLE Mode Installation... =============================================================================== OpenFrame_Tacf7.3 (created with InstallAnywhere by Macrovision) ------------------------------------------------------------------------------- =============================================================================== Installing... ------------- [==================|==================|==================|==================] [------------------|------------------|------------------|------------------] Installation Complete.
OpenFrame Base와 달리 TACF는 설치 과정에서 .profile 파일을 수정하지 않는다. 따라서 .profile을 실행하여 환경변수를 적용하는 작업은 필요하지 않다. |
2. 설치 확인
TACF를 설치한 후에는 다음을 통해 제품이 정상적으로 설치되었는지 확인할 것을 권장한다.
2.1. 디렉터리 확인
OpenFrame Base와 OpenFrame Batch를 설치한 후 해당 제품의 설치를 완료하면 다음의 디렉터리가 구성된다(TACF를 설치해도 기존의 OpenFrame 디렉터리 구조는 변경되지 않는다). $OPENFRAME_HOME이라는 환경변수에 설정된 디렉터리를 Home 디렉터리로 구성한다.
${OPENFRAME_HOME}
+---- UninstallerData
+---- bin
+---- config
+---- core
+---- cpm
+---- data
+---- include
+---- impor_dir
+---- repro
+---- lib
+---- license
+---- log
+---- cmd
+---- data
+---- sys
+---- ofdb_scripts
+---- outputq
+---- profile
+---- sample
+---- scripts
+---- schema
+---- shared
+---- SMF
+---- TJES
+---- TSO
+---- spbackup
+---- spool
+---- spunpack
+---- temp
+---- tsam
+---- temp
+---- lib
+---- copybook
+---- util
+---- volume_DEFVOL
+---- webde
+---- bin
+---- copybook
- UninstallerData
-
시스템에 설치되어 있는 OpenFrame을 삭제하기 위한 파일들이 위치한다.
- bin
-
OpenFrame에서 사용하는 실행 파일들이 위치한다.
- config
-
OpenFrame의 환경설정 파일이 위치한다.
- core
-
OpenFrame에서 사용하는 Tmax 관련 파일들이 위치한다. OpenFrame을 구성하는 Tmax 서버 프로그램, 서비스 프로그램 및 Tmax 설정 파일을 포함한다.
- cpm
-
문자코드 변환 테이블 파일들이 위치한다.
- data
-
OpenFrame에서 내부적으로 사용하는 데이터 파일과 에러 메시지 정보 파일이 위치한다.
- include
-
업무 애플리케이션을 컴파일할 때 사용되는 헤더 파일들이 위치한다.
- impor_dir
-
tbloader를 이용한 REPRO를 수행할 때 생성되는 파일이 위치한다.
- lib
-
OpenFrame에서 사용하는 라이브러리 파일들이 위치한다.
- license
-
OpenFrame에서 사용하는 라이선스 파일들이 위치한다.
다음은 OpenFrame의 라이선스 파일의 종류이다.
파일명 설명 licbase.dat
Base 라이선스 파일
lictjes.dat
Batch(TJES) 라이선스 파일
lictacf.dat
TACF 라이선스 파일
lichidb.dat
HiDB 라이선스 파일
licosc.dat (MVS)
OSC 라이선스 파일
licosi.dat (MVS)
OSI 라이선스 파일
licaim.dat (AIM)
AIM 라이선스 파일
- log
-
OpenFrame의 독립 제품이 생성하는 로그 파일들이 위치한다. log의 하위 디렉터리로 로그 파일의 종류에 따라 cmd, sys, data가 있다. 자세한 내용은 OpenFrame Base "Base 안내서"의 "로그 관리"를 참고한다.
디렉터리명 설명 cmd
OpenFrame의 조작 로그가 위치한다.
sys
OpenFrame의 시스템 로그가 위치한다.
data
OpenFrame의 데이터 로그가 위치한다.
- ofdb_scripts
-
TSAM / NDB / HiDB 사용에 필요한 템플릿과 스크립트가 위치한다.
- outputq
-
실제 프린트되기 위한 출력용 데이터가 저장되는 디렉터리이다. 멀티노드로 구성하는 경우에는 shared 디렉터리의 하위 디렉터리로 구성하는 것을 권장한다.
- profile
-
OpenFrame의 사용자별 프로파일이 위치한다.
- sample
-
OpenFrame 제품의 예제 파일들이 위치한다.
- scripts
-
OpenFrame 제품의 초기 환경설정용 스크립트 파일들이 위치한다.
- schema
-
cobgensch, pligensch 툴로 생성한 데이터셋 스키마 파일이 저장되는 디렉터리이다.
- shared
-
OpenFrame 각 제품들이 공용으로 사용하는 공유 디렉터리이다. 자세한 내용은 OpenFrame Base "환경설정 안내서"의 "SHARED_DIR"을 참고한다.
- spbakup
-
Spool 데이터셋 백업용 디렉터리이다.
- spool
-
Spool 데이터셋이 저장되는 디렉터리이다. 멀티노드로 구성하는 경우에는 shared 디렉터리의 하위 디렉터리로 구성하는 것을 권장한다.
- spunpack
-
백업된 Spool 데이터를 restore하는 디렉터리이다.
- temp
-
OpenFrame에서 임시작업 파일이 위치한다.
- tsam
-
OpenFrame 에서 사용하는 TSAM 관련 정보를 관리하는 디렉터리이다.
- util
-
Batch 시스템에서 사용하는 유틸리티가 위치한다.
- volume_DEFVOL
-
OpenFrame의 여러 제품에서 기본 볼륨으로 사용하는 디렉터리이다.
- webde
-
OpenFrame에서 사용하는 WEBDE 관련 정보를 관리하는 디렉터리이다.
2.2. 기동 확인
다음은 기동을 확인하는 순서이다.
-
설치용 속성 파일에서 스크립트 자동생성 옵션을 모두 'YES’로 선택했다면 ${OPENFRAME_HOME}/UninstallerData/log/install_tacf.log 파일을 텍스트 데이터로 직접 열어 오류 로그가 없는지 확인한다.
link_lib_tacf.sh START tacfinit START tacfinit version 7.3.0(0) obuild@mw3-1-Dell:ofsrc73/tacf(#1) 2023-04-26 15:08:18 Initialize OpenFrame TACF Tables Creating OFM_TACF_GROUP... > "OFM_TACF_GROUP" created... Creating OFM_TACF_GROUP_PK... > "OFM_TACF_GROUP_PK" created... Creating OFM_TACF_SUBGRPS... > "OFM_TACF_SUBGRPS" created... Creating OFM_TACF_SUBGRPS_UNIQ... > "OFM_TACF_SUBGRPS_UNIQ" created... Creating OFM_TACF_USER... > "OFM_TACF_USER" created... Creating OFM_TACF_USER_PK... > "OFM_TACF_USER_PK" created... Creating OFM_TACF_PASS_HISTORY... > "OFM_TACF_PASS_HISTORY" created... Creating OFM_TACF_PASS_HISTORY_UNIQ... > "OFM_TACF_PASS_HISTORY_UNIQ" created... Creating OFM_TACF_CONNECT... > "OFM_TACF_CONNECT" created... Creating OFM_TACF_CONNECT_UNIQ... > "OFM_TACF_CONNECT_UNIQ" created... Creating OFM_TACF_CONNECT_IDX1... > "OFM_TACF_CONNECT_IDX1" created... Creating OFM_TACF_CLASS... > "OFM_TACF_CLASS" created... Creating OFM_TACF_CLASS_PK... > "OFM_TACF_CLASS_PK" created... Creating OFM_TACF_DATASET... > "OFM_TACF_DATASET" created... Creating OFM_TACF_DATASET_UNIQ... > "OFM_TACF_DATASET_UNIQ" created... Creating OFM_TACF_RESOURCE... > "OFM_TACF_RESOURCE" created... Creating OFM_TACF_RESOURCE_UNIQ... > "OFM_TACF_RESOURCE_UNIQ" created... Creating OFM_TACF_MEMBER... > "OFM_TACF_MEMBER" created... Creating OFM_TACF_MEMBER_UNIQ... > "OFM_TACF_MEMBER_UNIQ" created... Creating OFM_TACF_PERMIT... > "OFM_TACF_PERMIT" created... Creating OFM_TACF_PERMIT_UNIQ... > "OFM_TACF_PERMIT_UNIQ" created... Creating OFM_TACF_SEGMENT_CICS... > "OFM_TACF_SEGMENT_CICS" created... Creating OFM_TACF_SEGMENT_CICS_PK... > "OFM_TACF_SEGMENT_CICS_PK" created... Creating OFM_TACF_SEGMENT_OMVS... > "OFM_TACF_SEGMENT_OMVS" created... Creating OFM_TACF_SEGMENT_OMVS_PK... > "OFM_TACF_SEGMENT_OMVS_PK" created... Creating OFM_TACF_SEGMENT_TSO... > "OFM_TACF_SEGMENT_TSO" created... Creating OFM_TACF_SEGMENT_TSO_PK... > "OFM_TACF_SEGMENT_TSO_PK" created... Inserting SYS1 GROUP into OFM_TACF_GROUP... > "SYS1 GROUP" inserted... Inserting ROOT USER into OFM_TACF_USER... > "ROOT USER" inserted... Inserting SYS1/ROOT CONNECT into OFM_TACF_CONNECT... > "SYS1/ROOT CONNECT" inserted... Inserting SURROGAT CLASS into OFM_TACF_CLASS... > "SURROGAT CLASS" inserted... Inserting TERMINAL CLASS into OFM_TACF_CLASS... > "TERMINAL CLASS" inserted... Inserting GTERMINL CLASS into OFM_TACF_CLASS... > "GTERMINL CLASS" inserted... Inserting TCICSTRN CLASS into OFM_TACF_CLASS... > "TCICSTRN CLASS" inserted... Inserting GCICSTRN CLASS into OFM_TACF_CLASS... > "GCICSTRN CLASS" inserted... Inserting FCICSFCT CLASS into OFM_TACF_CLASS... > "FCICSFCT CLASS" inserted... Inserting HCICSFCT CLASS into OFM_TACF_CLASS... > "HCICSFCT CLASS" inserted... Inserting DCICSDCT CLASS into OFM_TACF_CLASS... > "DCICSDCT CLASS" inserted... Inserting ECICSDCT CLASS into OFM_TACF_CLASS... > "ECICSDCT CLASS" inserted... Inserting SCICSTST CLASS into OFM_TACF_CLASS... > "SCICSTST CLASS" inserted... Inserting UCICSTST CLASS into OFM_TACF_CLASS... > "UCICSTST CLASS" inserted... Inserting MCICSPPT CLASS into OFM_TACF_CLASS... > "MCICSPPT CLASS" inserted... Inserting NCICSPPT CLASS into OFM_TACF_CLASS... > "NCICSPPT CLASS" inserted... Inserting ACICSPCT CLASS into OFM_TACF_CLASS... > "ACICSPCT CLASS" inserted... Inserting BCICSPCT CLASS into OFM_TACF_CLASS... > "BCICSPCT CLASS" inserted... Inserting TJESMGR CLASS into OFM_TACF_CLASS... > "TJESMGR CLASS" inserted... Inserting GTJESMGR CLASS into OFM_TACF_CLASS... > "GTJESMGR CLASS" inserted... Inserting STUDIO CLASS into OFM_TACF_CLASS... > "STUDIO CLASS" inserted... Inserting GSTUDIO CLASS into OFM_TACF_CLASS... > "GSTUDIO CLASS" inserted... Inserting UTILITY CLASS into OFM_TACF_CLASS... > "UTILITY CLASS" inserted... Inserting GUTILITY CLASS into OFM_TACF_CLASS... > "GUTILITY CLASS" inserted... Inserting JESJOBS CLASS into OFM_TACF_CLASS... > "JESJOBS CLASS" inserted... Inserting JESSPOOL CLASS into OFM_TACF_CLASS... > "JESSPOOL CLASS" inserted... Inserting OFMANAGR CLASS into OFM_TACF_CLASS... > "OFMANAGR CLASS" inserted... Inserting HIDBSEGM CLASS into OFM_TACF_CLASS... > "HIDBSEGM CLASS" inserted... Inserting GHIDBSEG CLASS into OFM_TACF_CLASS... > "GHIDBSEG CLASS" inserted... Inserting TIMS CLASS into OFM_TACF_CLASS... > "TIMS CLASS" inserted... Inserting GIMS CLASS into OFM_TACF_CLASS... > "GIMS CLASS" inserted... Inserting CIMS CLASS into OFM_TACF_CLASS... > "CIMS CLASS" inserted... Inserting DIMS CLASS into OFM_TACF_CLASS... > "DIMS CLASS" inserted... Inserting IIMS CLASS into OFM_TACF_CLASS... > "IIMS CLASS" inserted... Inserting JIMS CLASS into OFM_TACF_CLASS... > "JIMS CLASS" inserted... Inserting APPL CLASS into OFM_TACF_CLASS... > "APPL CLASS" inserted... Inserting AIMS CLASS into OFM_TACF_CLASS... > "AIMS CLASS" inserted... Inserting LIMS CLASS into OFM_TACF_CLASS... > "LIMS CLASS" inserted... Inserting MIMS CLASS into OFM_TACF_CLASS... > "MIMS CLASS" inserted... Inserting PIMS CLASS into OFM_TACF_CLASS... > "PIMS CLASS" inserted... Inserting QIMS CLASS into OFM_TACF_CLASS... > "QIMS CLASS" inserted... Inserting SIMS CLASS into OFM_TACF_CLASS... > "SIMS CLASS" inserted... Inserting UIMS CLASS into OFM_TACF_CLASS... > "UIMS CLASS" inserted... Inserting FIMS CLASS into OFM_TACF_CLASS... > "FIMS CLASS" inserted... Inserting HIMS CLASS into OFM_TACF_CLASS... > "HIMS CLASS" inserted... Inserting IMS CLASS into OFM_TACF_CLASS... > "IMS CLASS" inserted... Inserting OIMS CLASS into OFM_TACF_CLASS... > "OIMS CLASS" inserted... Inserting WIMS CLASS into OFM_TACF_CLASS... > "WIMS CLASS" inserted... Inserting OFSTUDIO CLASS into OFM_TACF_CLASS... > "OFSTUDIO CLASS" inserted... Inserting CDT CLASS into OFM_TACF_CLASS... > "CDT CLASS" inserted... Inserting PCICSPSB CLASS into OFM_TACF_CLASS... > "PCICSPSB CLASS" inserted... Inserting QCICSPCB CLASS into OFM_TACF_CLASS... > "QCICSPCB CLASS" inserted... Inserting UNIFYDS CLASS into OFM_TACF_CLASS... > "UNIFYDS CLASS" inserted... Inserting GUNIFYDS CLASS into OFM_TACF_CLASS... > "GUNIFYDS CLASS" inserted... create_tacfcf START COMPLETED SUCCESSFULLY! COMPLETED SUCCESSFULLY. tacf_init.sh START CFL is done successfully for node(NODE1) SVC tables are successfully generated GST is successfully done
-
tmboot를 실행하여 OpenFrame을 기동한다.
$ tmboot
-
다음과 같이 화면에 오류없이 출력되는 것을 확인한다.
TMBOOT for node(NODE1) is starting: TMBOOT: TMM is starting: Tue Mar 16 14:58:07 2021 TMBOOT: CLL is starting: Tue Mar 16 14:58:07 2021 TMBOOT: CLH is starting: Tue Mar 16 14:58:07 2021 TMBOOT: TLM(tlm) is starting: Tue Mar 16 14:58:07 2021 TMBOOT: SVR(TPFMAGENT) is starting: Tue Mar 16 14:58:07 2021 TMBOOT: SVR(ofrsasvr) is starting: Tue Mar 16 14:58:07 2021 TMBOOT: SVR(ofrlhsvr) is starting: Tue Mar 16 14:58:07 2021 TMBOOT: SVR(ofrdmsvr) is starting: Tue Mar 16 14:58:07 2021 TMBOOT: SVR(ofrdsedt) is starting: Tue Mar 16 14:58:07 2021 TMBOOT: SVR(ofrcmsvr) is starting: Tue Mar 16 14:58:07 2021 TMBOOT: SVR(ofruisvr) is starting: Tue Mar 16 14:58:07 2021 TMBOOT: SVR(ofrsmlog) is starting: Tue Mar 16 14:58:07 2021 TMBOOT: SVR(obmjmsvr) is starting: Tue Mar 16 14:58:07 2021 TMBOOT: SVR(obmjschd) is starting: Tue Mar 16 14:58:07 2021 TMBOOT: SVR(obmjinit) is starting: Tue Mar 16 14:58:07 2021 TMBOOT: SVR(obmjhist) is starting: Tue Mar 16 14:58:07 2021 TMBOOT: SVR(obmjspbk) is starting: Tue Mar 16 14:58:07 2021 TMBOOT: SVR(ofrpmsvr) is starting: Tue Mar 16 14:58:07 2021 TMBOOT: SVR(obmtsmgr) is starting: Tue Mar 16 14:58:07 2021 TMBOOT: SVR(tmsvr) is starting: Tue Mar 16 14:58:07 2021
-
tmadmin을 실행한 후 si 명령어로 서버목록을 출력하여 모든 서버 프로세스가 정상적으로 기동되었는지 확인한다.
아래 예와 같이 모든 서버들이 RDY 상태로 표시되면 TACF가 정상적으로 설치되어 기동되고 있다는 것을 의미한다.
$ tmadmin --- Welcome to Tmax Admin (Type "quit" to leave) --- $$1 NODE1 (tmadm): si ------------------------------------------------------------------------ clh svrname (svri) status count qcount qpcount emcount ------------------------------------------------------------------------ 0 TPFMAGENT ( 4) RDY 0 0 0 0 0 ofrsasvr ( 5) RDY 0 0 0 0 0 ofrlhsvr ( 6) RDY 0 0 0 0 0 ofrdmsvr ( 7) RDY 0 0 0 0 0 ofrdsedt ( 8) RDY 0 0 0 0 0 ofrcmsvr ( 9) RDY 0 0 0 0 0 ofruisvr ( 10) RDY 0 0 0 0 0 ofrsmlog ( 11) RDY 0 0 0 0 0 obmjmsvr ( 12) RDY 0 0 0 0 0 obmjschd ( 13) RDY 1 0 0 0 0 obmjinit ( 14) RDY 2 0 0 0 0 obmjhist ( 15) RDY 0 0 0 0 0 obmjspbk ( 16) RDY 0 0 0 0 0 ofrpmsvr ( 17) RDY 0 0 0 0 0 obmtsmgr ( 18) RDY 0 0 0 0 0 tmsvr ( 20) RDY 0 0 0 0 $$2 NODE1 (tmadm):
-
tacfmgr을 실행한다.
$ tacfmgr
-
다음과 같이 사용자 정보를 입력해서 정상 로그인되는지 확인한다.
Input USERNAME : ROOT Input PASSWORD : SYS1 TACFMGR: TACF MANAGER START!!!
3. 제거
TACF는 다음과 같이 인스톨러에서 제공하는 제거 유틸리티를 실행하여 제거할 수 있다.
다음은 TACF 제품을 제거하는 과정이다.
-
설치된 제품을 제거하기 전에 tmdown 명령을 실행하여 OpenFrame을 종료한다.
$ tmdown
-
다음과 같이 오류없이 종료 메시지가 출력되는지 확인한다.
Do you really want to down whole Tmax? (y : n): y TMDOWN for node(NODE1) is starting: TMDOWN: SERVER(TPFMAGENT:36) downed: Tue Mar 16 14:58:52 2021 TMDOWN: SERVER(obmjhist:56) downed: Tue Mar 16 14:58:52 2021 TMDOWN: SERVER(tmsvr:61) downed: Tue Mar 16 14:58:52 2021 TMDOWN: SERVER(ofrlhsvr:38) downed: Tue Mar 16 14:58:52 2021 TMDOWN: SERVER(ofrdmsvr:39) downed: Tue Mar 16 14:58:52 2021 TMDOWN: SERVER(obmjspbk:57) downed: Tue Mar 16 14:58:52 2021 TMDOWN: SERVER(ofrdsedt:40) downed: Tue Mar 16 14:58:52 2021 TMDOWN: SERVER(ofrcmsvr:41) downed: Tue Mar 16 14:58:52 2021 TMDOWN: SERVER(obmjschd:54) downed: Tue Mar 16 14:58:52 2021 TMDOWN: SERVER(ofrsasvr:37) downed: Tue Mar 16 14:58:52 2021 TMDOWN: SERVER(ofrpmsvr:58) downed: Tue Mar 16 14:58:52 2021 TMDOWN: SERVER(ofruisvr:42) downed: Tue Mar 16 14:58:52 2021 TMDOWN: SERVER(obmjmsvr:53) downed: Tue Mar 16 14:58:52 2021 TMDOWN: SERVER(ofruisvr:43) downed: Tue Mar 16 14:58:52 2021 TMDOWN: SERVER(obmtsmgr:59) downed: Tue Mar 16 14:58:52 2021 TMDOWN: SERVER(obmjinit:55) downed: Tue Mar 16 14:58:52 2021 TMDOWN: SERVER(ofrsmlog:52) downed: Tue Mar 16 14:58:52 2021 TMDOWN: CLH downed: Tue Mar 16 14:58:52 2021 TMDOWN: CLL downed: Tue Mar 16 14:58:52 2021 TMDOWN: TLM downed: Tue Mar 16 14:58:52 2021 TMDOWN: TMM downed: Tue Mar 16 14:58:52 2021 TMDOWN: TMAX is down
위 예제는 OpenFrame Base 및 OpenFrame Batch가 설치되어 있는 경우로, 설치되어 있는 OpenFrame 제품에 따라 위와는 다른 화면이 출력될 수 있다.
-
OpenFrame이 종료된 것을 확인한 후 UNIX 콘솔에서 ${OPENFRAME_HOME}/UninstallerData 디렉터리에 있는 Uninstall_Tacf 파일을 실행한다.
$ ./Uninstall_Tacf
-
설치 제거 프로그램에 의해 TACF 설치 시 생성된 파일들이 모두 삭제되고, 해당 환경의 Tmax 설정에서 TACF 관련 내용이 모두 제거된다.