OpenFrame OSI 시스템 툴
본 장에서는 OpenFrame OSI 시스템에서 사용하는 툴 프로그램 사용법에 대해 기술한다.
1. 개요
다음은 OpenFrame OSI 시스템의 운영 편의를 위한 프로그램 목록이다.
프로그램명 | 설명 |
---|---|
리소스 동적 변경을 위해 staging library의 정보를 현재 inactive library로 복사한다. |
|
터미널을 통하지 않고 OSI 명령을 입력할 수 있도록 제공한다. 특정 터미널을 명령 주체로 하지 않기 때문에 입력 터미널에 영향을 주는 명령은 실행할 수 없다. |
|
덤프용 어셈블러 매크로 명령어를 전처리한다. |
|
OSI 시스템을 기동 및 운영하는데 필요한 OpenFrame Core(Tmax/Base/Batch) 서버와 OSI 사용자 서버를 기동하는 툴이다. |
|
OpenFrame Core 서버와 OSI 사용자 서버를 종료하는 툴이다. |
|
OpenFrame OSI 시스템을 운영하는데 필요한 시스템 테이블을 생성하거나 제거한다. |
|
MFS 문법에 맞게 작성된 포맷 파일을 기계언어로 컴파일하여 MID, MOD, DIF, DOF 4가지의 바이너리 파일을 생성한다. |
|
RTSD 테이블에 저장된 시스템 정의 내용을 매크로 형태로 화면에 출력한다. |
|
시스템 정의 테이블에 MODBLKS 라이브러리로 저장된 레코드를 매크로 형태로 화면에 출력한다. |
|
매크로 형식의 리소스 정의가 정의되어 있는 스크립트 파일을 읽어서 지정된 IMS 시스템의 시스템 정의 테이블에 저장한다. |
|
배포된 OSI 시스템의 현재 버전 정보를 출력한다. |
|
AIBTDLI의 LOG 커맨드를 통해 저장된 로그를 출력한다. |
|
osievtmgr는 OSI의 이벤트 대한 정보를 조회한다. |
|
osimqmgr는 OSI의 메시지 큐에 대한 정보를 조회한다. |
|
osilogana는 DR 리전의 트랜잭션 정보를 분석할 수 있는 툴이다. |
2. dfsuocu0
dfsuocu0는 리소스 동적 변경을 위해 staging library의 정보를 현재 inactive library로 복사하는 툴이다. staging library의 변경에 대한 자세한 설명은 IBM 매뉴얼의 "Online Change Copy Utility"를 참조한다 .
사용법
dfsuocu0를 실행하는 방법은 다음과 같다.
Usage: dfsuocu0 <control region> [ACBLIB | FMTLIB | MODBLKS] | dfsuocu0 [-h | -v]
-
입력 항목
항목 설명 <control region>
시스템 서버(Control Region)의 ID를 지정한다.
[ACBLIB|FMTLIB|
MODBLKS]
-
ACBLIB : ACBLIB을 복사하는 경우 지정한다.
-
FMTLIB : FMTLIB을 복사하는 경우 지정한다.
-
MODBLKS : MODBLKS를 복사하는 경우 지정한다.
-
-
[options]
옵션 설명 [-h]
프로그램 사용을 위한 자세한 사용법을 출력한다.
[-v]
dfsuocu0의 버전 정보를 출력한다.
사용예제
다음은 dfsuocu0를 통해 MODBLKS를 복사하는 예이다.
$ dfsuocu0 IMSA MODBLKS
- ACTIVE MODBLKS is MODBLKSA
- Succeeded to copy MODBLKS to MODBLKSB
3. imscmd
imscmd는 터미널을 통하지 않고 OSI 명령을 입력할 수 있도록 제공하는 툴이다. 특정 터미널을 명령 주체로 하지 않기 때문에 입력 터미널에 영향을 주는 명령은 실행할 수 없다.
사용법
imscmd를 실행하는 방법은 다음과 같다.
Usage: imscmd [-u <userid>/<passwd>] <control region> <command> | imscmd [-u <userid>/<passwd>] <crc><command> | imscmd [-h | -c | -v]
-
입력 항목
항목 설명 <control region>
명령을 실행할 Control Region의 ID를 지정한다.
<command>
수행할 명령어를 기술한다. <command>에 대한 자세한 사용법은 OpenFrame OSI "명령어 참조 안내서"를 참고한다.
<crc>
명령을 수행할 Control Region에 대응하는 CRC값을 지정한다.
CRC는 Region별로 유일한 character를 지정할 수 있다. CRC(Command Recognition Character)는 입력된 명령의 수행을 어느 Region에서 할지 결정하는 역할을 한다. Control Region별로 유일한 문자를 가져야 하며 OpenFrame 환경설정 중 osi 서브젝트에서 CRC 섹션의 키로 설정한다.
-
[options]
옵션 설명 [-u <userid>/<passwd>]
JCL을 실행하는 경우 실행권한을 가진 사용자 ID와 비밀번호를 입력한다.
[-h]
프로그램 사용을 위한 자세한 사용법을 출력한다.
[-c]
IMS 커맨드 정보를 출력한다.
[-v]
imscmd의 버전 정보를 출력한다.
JCL을 수행하는 /START REGION 커맨드는 -u 옵션을 통한 권한 체크가 필요하고, 생략하는 경우에는 OpenFrame 환경설정 중 tjes 서브젝트에서 INTRDR 섹션의 설정을 따른다. |
사용예제
다음은 imscmd 툴을 통해 /DIS LTERM 명령을 수행한 예이다.
$ imscmd IMSA /DIS LTERM ALL
IMS control region : [IMSA]
Requested command : [DIS LTERM ALL]
----------------------------------------
LTERM ENQCT DEQCT QCT
N031E01 0 0 0
N031E02 0 0 0
N031E03 0 0 0
N031E04 0 0 0
N031E05 0 0 0
N031E06 0 0 0
N031E07 0 0 0
N031E08 0 0 0
N031E09 0 0 0
*20363/103355*
----------------------------------------
Command '/DIS LTERM ALL' execution done
4. macroprep
macroprep은 덤프용 어셈블러 매크로 명령어를 전처리하는 툴이다. 실제로 화면에 영향을 미치고 Map을 정의하는 부분 외에 덤프용으로 쓰여지는 매크로들이 있는데, 같은 매크로들은 mscasmc 툴을 사용하여 전처리를 한다.
사용법
macroprep을 실행하는 방법은 다음과 같다.
Usage: macroprep [options] <file>...
-
[options]
옵션 설명 [-c] <dir>
COPY 매크로의 대상파일이 위치하는 디렉터리를 지정하는 옵션이다.
[-s]
전처리 후 결과 파일을 생성할 때, 72컬럼에서 가장 가까운 콤마(,) 문자 이후에 줄바꿈하도록 하는 옵션이다. 이 옵션이 없을 경우에는 71컬럼에서 줄바꿈이 이루어진다.
[-o] <dir>
전처리 후 결과 파일이 위치하는 디렉터리를 지정하는 옵션이다.
[-h]
프로그램 사용을 위한 자세한 사용법을 출력한다.
[-v]
macroprep의 버전 정보를 출력한다.
-
입력 항목
항목 설명 <file>
컴파일하려는 MFS 포맷 파일의 이름을 지정한다.
사용예제
다음은 macroprep을 사용하여 OIVP001.TXT파일을 전처리하고 확장자가 prep인 새로운 결과 파일이 생성된 예제이다.
$ macroprep -c copy OIVP001.TXT
$ ls
OIVP001.TXT OIVP001.TXT.prep copy
5. osiboot
osiboot는 OSI 시스템을 기동 및 운영하는데 필요한 OpenFrame Core(Tmax/Base/Batch) 서버와 OSI 사용자 서버를 기동하는 툴이다. osiboot로 기동하려는 OpenFrame Base 와 OpenFrame Batch, 사용자 서버 목록은 $OPENFRAME_HOME/config/osi.ofsys.seq 파일에 모두 등록되어 있어야 한다.
-
OpenFrame Core 기동
OpenFrame Core 기동 과정은 내부적으로 2단계를 거친다.
-
OpenFrame Core 역할을 수행하는 TP-Monitor인 Tmax를 기동한다.
-
OSI 구동에 필요한 다른 OpenFrame의 패키지들에서 사용되어지는 서버 모듈(OpenFrame Base, OpenFrame Batch)들을 구동한다.
-
-
OSI 사용자 서버 기동
OTMA 서버와 같은 OSI 사용자 서버를 사용하는 경우 OpenFrame Core 서버와 함께 기동한다.
-
OSI 시스템 서버 기동
OSI 7.2 버전부터는 osiomsvr와 같은 OSI 시스템 서버를 기동한다. 시스템서버는 osi.ofsys.seq 파일에 별도로 등록하지 않는다.
사용법
osiboot을 실행하는 방법은 다음과 같다.
Usage: osiboot [options] | osiboot [-b] [-n <node_name>] [-o] | osiboot [-h | -v]
-
[options]
옵션 설명 [-b]
멀티노드 환경에서 백업 서버들도 같이 기동한다.
[-n <node_name>]
기동하려는 노드 이름을 지정한다.
[-o]
OSI 시스템 서버를 기동한다. 이때에는 Tmax 엔진과 $OPENFRAME_HOME/config/osi.ofsys.seq 파일에 등록된 서버들은 기동하지 않는다.
[-h]
프로그램 사용을 위한 자세한 사용법을 출력한다.
[-v]
osiboot의 버전 정보를 출력한다.
사용예제
다음은 OpenFrame Core 서버들을 기동하는 예제이다.
$ osiboot
TMBOOT for node(NODE1) is starting:
TMBOOT: TMM is starting: Thu Mar 11 16:23:50 2021
TMBOOT: CLL is starting: Thu Mar 11 16:23:50 2021
TMBOOT: CLH is starting: Thu Mar 11 16:23:50 2021
TMBOOT: TLM(tlm) is starting: Thu Mar 11 16:23:50 2021
[2021-03-11T16:23:50.429741] [osiboot(20155) ] [M] [OSI7061M] System server(ofrsasvr) booting ok
[2021-03-11T16:23:50.432966] [osiboot(20155) ] [M] [OSI7061M] System server(ofrlhsvr) booting ok
[2021-03-11T16:23:50.436680] [osiboot(20155) ] [M] [OSI7061M] System server(ofrdmsvr) booting ok
[2021-03-11T16:23:50.440769] [osiboot(20155) ] [M] [OSI7061M] System server(ofrdsedt) booting ok
[2021-03-11T16:23:50.445375] [osiboot(20155) ] [M] [OSI7061M] System server(ofrcmsvr) booting ok
[2021-03-11T16:23:50.449697] [osiboot(20155) ] [M] [OSI7061M] System server(ofruisvr) booting ok
[2021-03-11T16:23:50.453979] [osiboot(20155) ] [M] [OSI7061M] System server(ofrsmlog) booting ok
[2021-03-11T16:23:50.458096] [osiboot(20155) ] [M] [OSI7061M] System server(obmjmsvr) booting ok
[2021-03-11T16:23:50.462654] [osiboot(20155) ] [M] [OSI7061M] System server(obmjschd) booting ok
[2021-03-11T16:23:50.466494] [osiboot(20155) ] [M] [OSI7061M] System server(obmjinit) booting ok
[2021-03-11T16:23:50.470602] [osiboot(20155) ] [M] [OSI7061M] System server(obmjhist) booting ok
[2021-03-11T16:23:50.479765] [osiboot(20155) ] [M] [OSI7061M] System server(obmjspbk) booting ok
[2021-03-11T16:23:50.485365] [osiboot(20155) ] [M] [OSI7061M] System server(ofrpmsvr) booting ok
[2021-03-11T16:23:50.496121] [osiboot(20155) ] [M] [OSI7061M] System server(obmtsmgr) booting ok
[2021-03-11T16:23:50.510815] [osiboot(20155) ] [M] [OSI7061M] System server(tmsvr) booting ok
[2021-03-11T16:23:50.516011] [osiboot(20155) ] [M] [OSI7061M] System server(osiomsvr) booting ok
[2021-03-11T16:23:50.516029] [osiboot(20155) ] [M] [OSI7051M] Booting process complete.
6. osidown
osidown은 OSI 시스템 서버와 ${OPENFRAME_HOME}/config/osi.ofsys.seq 파일 목록에 있는 서버들을 종료하는 툴이다.
사용법
osidown을 실행하는 방법은 다음과 같다.
Usage: osidown [options] | osidown [-i] [-n <node_name>] [-o] | osidown [-h | -v]
-
[options]
옵션 설명 [-i]
서버를 즉시 종료한다.
[-n <node_name>]
종료하려는 노드 이름을 지정한다.
[-o]
OSI 시스템 서버를 종료한다. 이때에는 Tmax 엔진과 $OPENFRAME_HOME/config/osi.ofsys.seq 파일에 등록된 서버들은 종료하지 않는다.
[-h]
프로그램 사용을 위한 자세한 사용법을 출력한다.
[-v]
osidown의 버전 정보를 출력한다.
사용예제
다음은 ${OPENFRAME_HOME}/config/osi.ofsys.seq 파일 목록에 있는 서버들을 종료하는 예제이다.
$ osidown
[2021-03-11T16:27:52.702893] [osidown(20337) ] [M] [OSI7141M] System server(osiomsvr) shutdown ok
[2021-03-11T16:27:52.706805] [osidown(20337) ] [M] [OSI7141M] System server(tmsvr) shutdown ok
[2021-03-11T16:27:52.723706] [osidown(20337) ] [M] [OSI7141M] System server(obmtsmgr) shutdown ok
[2021-03-11T16:27:52.732120] [osidown(20337) ] [M] [OSI7141M] System server(ofrpmsvr) shutdown ok
[2021-03-11T16:27:52.742428] [osidown(20337) ] [M] [OSI7141M] System server(obmjspbk) shutdown ok
[2021-03-11T16:27:52.750187] [osidown(20337) ] [M] [OSI7141M] System server(obmjhist) shutdown ok
[2021-03-11T16:27:52.776262] [osidown(20337) ] [M] [OSI7141M] System server(obmjinit) shutdown ok
[2021-03-11T16:27:52.786100] [osidown(20337) ] [M] [OSI7141M] System server(obmjschd) shutdown ok
[2021-03-11T16:27:52.795757] [osidown(20337) ] [M] [OSI7141M] System server(obmjmsvr) shutdown ok
[2021-03-11T16:27:52.843192] [osidown(20337) ] [M] [OSI7141M] System server(ofrsmlog) shutdown ok
[2021-03-11T16:27:52.853223] [osidown(20337) ] [M] [OSI7141M] System server(ofruisvr) shutdown ok
[2021-03-11T16:27:52.860983] [osidown(20337) ] [M] [OSI7141M] System server(ofrcmsvr) shutdown ok
[2021-03-11T16:27:52.868241] [osidown(20337) ] [M] [OSI7141M] System server(ofrdsedt) shutdown ok
[2021-03-11T16:27:52.875517] [osidown(20337) ] [M] [OSI7141M] System server(ofrdmsvr) shutdown ok
[2021-03-11T16:27:52.883185] [osidown(20337) ] [M] [OSI7141M] System server(ofrlhsvr) shutdown ok
[2021-03-11T16:27:52.890716] [osidown(20337) ] [M] [OSI7141M] System server(ofrsasvr) shutdown ok
TMDOWN for node(NODE1) is starting:
TMDOWN: CLH downed: Thu Mar 11 16:27:52 2021
TMDOWN: CLL downed: Thu Mar 11 16:27:52 2021
TMDOWN: TLM downed: Thu Mar 11 16:27:52 2021
TMDOWN: TMM downed: Thu Mar 11 16:27:52 2021
TMDOWN: TMAX is down
7. osiinit
osiinit은 OpenFrame OSI 시스템을 운영할 때 필요한 REGION, MODSTAT, MQ, SD, RTSD 등의 시스템 테이블을 생성하거나 제거하기 위한 툴이다.
사용법
osiinit을 실행하는 방법은 다음과 같다.
Usage: osiinit <command> [options]
-
입력 항목
항목 설명 <command>
-
create : OpenFrame OSI의 시스템 테이블을 생성한다.
-
remove : OpenFrame OSI의 시스템 테이블을 삭제한다.
-
list : OpenFrame OSI의 시스템 테이블의 목록을 조회한다.
-
-
[options]
옵션 설명 [-t] <table/index name>
생성 혹은 삭제할 시스템 테이블/인덱스를 지정한다. 옵션을 지정하지 않으면 모든 시스템 테이블/인덱스 이(가) 선택된다.
[-st] <tablespace>
생성 혹은 삭제할 시스템 테이블/인덱스의 테이블 스페이스를 지정한다.
사용예제
다음은 OpenFrame OSI에서 사용하는 시스템 테이블의 목록을 조회하는 예이다.
$ $ osiinit list
osiinit version 7.2.0(0) oframe@tmax:ofsrc/osi(#1) 2020-11-12 19:43:54
Initialize OpenFrame OSI System Tables
No Table
----------------------------------------------
1 OFM_OSI_MQ
2 OFM_OSI_MQ_IDX1
3 OFM_OSI_REGION
4 OFM_OSI_REGION_SVR
5 OFM_OSI_REGION_SVR_IDX1
6 OFM_OSI_REGION_STATUS
7 OFM_OSI_SD_DATABASE
8 OFM_OSI_SD_APPLCTN
9 OFM_OSI_SD_TRANSACT
10 OFM_OSI_SD_TRANSACT_IDX1
11 OFM_OSI_SD_TERMINAL
12 OFM_OSI_SD_LTERM
13 OFM_OSI_SD_LTERM_IDX1
14 OFM_OSI_RTSD_DATABASE
15 OFM_OSI_RTSD_APPLCTN
16 OFM_OSI_RTSD_TRANSACT
17 OFM_OSI_RTSD_TRANSACT_IDX1
18 OFM_OSI_RTSD_TERMINAL
19 OFM_OSI_RTSD_LTERM
20 OFM_OSI_RTSD_LTERM_IDX1
21 OFM_OSI_RTSD_MODS
22 OFM_OSI_RTSD_MODS_IDX1
23 OFM_OSI_MODSTAT
24 OFM_OSI_CI
25 OFM_OSI_LOG
26 OFM_OSI_LOG_IDX1
27 OFM_OSI_EVENT
28 OFM_OSI_EVENT_IDX1
29 OFM_OSI_EVENT_SEQ
다음은 OpenFrame OSI의 시스템 테이블 중 OFM_OSI_SD_DATABASE 테이블을 DEFVOL이라는 테이블 스페이스에 생성하는 예이다.
$ osiinit create -t OFM_OSI_SD_DATABASE -st DEFVOL
osiinit version 7.2.0(0) oframe@tmax:ofsrc/osi(#1) 2020-11-12 19:43:54
Initialize OpenFrame OSI System Tables
Creating OFM_OSI_SD_DATABASE...
> "OFM_OSI_SD_DATABASE" created...
8. osimfsgen
osimfsgen은 MFS 문법에 맞게 작성된 포맷 파일을 기계언어로 컴파일하여 MID, MOD, DIF, DOF 4가지의 바이너리 파일을 생성하는 툴이다.
사용법
osimfsgen을 실행하는 방법은 다음과 같다.
Usage: osimfsgen [options] <file> | osimfsgen [options] -o <dir> <file> | osimfsgen [options] -m <FMTLIB> <file>
-
입력 항목
항목 설명 <file>
컴파일하려는 MFS 포맷 파일의 이름을 입력한다.
<dir>
바이너리 파일이 생성되는 디렉터리 경로를 입력한다.
<FMTLIB>
FMTLIB 데이터셋 이름을 입력한다.
[-o]
바이너리 파일이 생성되는 디렉터리를 지정한다.
[-m]
특정 Region에서 사용하는 FMTLIB 데이터셋을 지정한다.
[-h]
프로그램 사용을 위한 자세한 사용법을 출력한다.
[-v]
osimfsgen의 버전 정보를 출력한다.
-
[options]
옵션 설명 [-d]
컴파일할 MFS 포맷 파일의 내용을 보여준다.
[-l <level>]
출력하는 메시지 로그의 레벨을 지정한다.
-
1: 컴파일할 소스의 전처리 과정을 출력한다.
-
2 : 미지원 구문을 출력한다.
-
3 : 지원 구문을 출력한다.
-
4 : 미지원, 지원 구문을 모두 출력한다.
[-p 1]
에뮬레이터에 나오는 화면을 1Byte 문자로 구성된 포맷으로 미리 보여준다.
[-p 2]
에뮬레이터에 나오는 화면을 2Byte 문자로 구성된 포맷으로 미리 보여준다.
-
사용예제
다음은 OIVP001.TXT 파일을 컴파일하여 IMSA의 FMTLIB(OSI.IMSA.MFSLIB)에 저장하는 예이다.
$ osimfsgen -m OSI.IMSA.MFSLIB OIVP001.TXT
osimfsgen 7.2.0(0) oframe@tmax:ofsrc/osi(#1) 2020-11-12 19:43:54
[/home/oframe/products/ofsrc/OpenFrame/volume_default/OSI.IMSA.MFSLIB/OIVP001.mfs] create ok.
[/home/oframe/products/ofsrc/OpenFrame/volume_default/OSI.IMSA.MFSLIB/OIVP001I.mfs] create ok.
[/home/oframe/products/ofsrc/OpenFrame/volume_default/OSI.IMSA.MFSLIB/OIVP001O.mfs] create ok.
9. osirtsddump
osirtsddump는 지정된 IMS 시스템의 RTSD(RunTime System Definition) 테이블에 저장된 시스템 정의 내용을 매크로 형태로 화면에 출력하는 툴이다. 출력된 매크로 내용은 다시 osisdgen의 입력으로 사용할 수 있다.
사용법
osirtsddump를 실행하는 방법은 다음과 같다.
Usage: osirtsddump <imsid> | osirtsddump [-h | -v]
-
입력 항목
항목 설명 <imsid>
시스템 서버(Control Region)의 ID를 지정한다.
-
[options]
옵션 설명 [-h]
프로그램 사용을 위한 자세한 사용법을 출력한다.
[-v]
osirtsddump의 버전 정보를 출력한다.
사용예제
다음은 osirtsddump로 IMSA라는 IMS 시스템의 RTSD 테이블에 저장된 시스템 정의를 읽어서 매크로 형태의 텍스트로 출력하는 예이다.
$ osirtsddump IMSA
DATABASE DBD=OIVPIDBD,ACCESS=EX
DATABASE DBD=OIVPIX1,ACCESS=EX
DATABASE DBD=OIVPIX2,ACCESS=EX
APPLCTN FPATH=NO,PSB=OIVPI001,PGMTYPE=(TP,,1),SCHDTYP=PARALLEL
TRANSACT CODE=OIVPMPP1,EDIT=(UC),FPATH=NO,INQUIRY=(NO),MAXRGN=0, X
MODE=SNGL,MSGTYPE=(SNGLSEG,RESPONSE,1),PARLIM=0,PROCLIM=(0,0), X
PRTY=(1,5,65535),SEGNO=0,SEGSIZE=0
APPLCTN FPATH=NO,PSB=OIVPI002,PGMTYPE=(TP,,1),SCHDTYP=PARALLEL
TRANSACT CODE=OIVPMPP2,EDIT=(UC),FPATH=NO,INQUIRY=(NO),MAXRGN=1, X
MODE=SNGL,MSGTYPE=(SNGLSEG,RESPONSE,1),PARLIM=0,PROCLIM=(0,0), X
PRTY=(1,5,65535),SEGNO=0,SEGSIZE=0
APPLCTN FPATH=NO,PSB=OIVPI003,PGMTYPE=(TP,,1),SCHDTYP=PARALLEL
TRANSACT CODE=OIVPMPP3,EDIT=(UC),FPATH=NO,INQUIRY=(NO),MAXRGN=0, X
MODE=SNGL,MSGTYPE=(SNGLSEG,RESPONSE,1),PARLIM=0,PROCLIM=(0,0), X
PRTY=(1,5,65535),SEGNO=0,SEGSIZE=0
TERMINAL NAME=(OIVPTRM1),ADDR=(),BACKUP=(0),EDIT=(NO,NO),LTERM= X
MSGDEL=SYSINFO,OPTIONS=(PAGDEL,OPNDST,PROT),OPTIONS=(TRSOSI), X
FPBUF=0,BUFSIZE=0,HEADCTL=0,FEAT=(CARD,PEN),COMPT=(),MODEL=1, X
PTRSIZE=120,TYPE=,SIZE=(0,0),OUTBUF=0,UNIT=,COMPT1=(,IGNORE), X
COMPT2=(,IGNORE),COMPT3=(,IGNORE),COMPT4=(,IGNORE),MODETBL=, X
SEGSIZE=0,SESSION=0
NAME N031E01,EDIT=(,ULC),OUTPUT=
TERMINAL NAME=(OIVPTRM2),ADDR=(),BACKUP=(0),EDIT=(NO,NO),LTERM= X
MSGDEL=SYSINFO,OPTIONS=(PAGDEL,OPNDST,PROT),OPTIONS=(TRSOSI), X
FPBUF=0,BUFSIZE=0,HEADCTL=0,FEAT=(CARD,PEN),COMPT=(),MODEL=1, X
PTRSIZE=120,TYPE=,SIZE=(0,0),OUTBUF=0,UNIT=,COMPT1=(,IGNORE), X
COMPT2=(,IGNORE),COMPT3=(,IGNORE),COMPT4=(,IGNORE),MODETBL=, X
SEGSIZE=0,SESSION=0
NAME N031E02,EDIT=(,ULC),OUTPUT=
TERMINAL NAME=(OIVPTRM3),ADDR=(),BACKUP=(0),EDIT=(NO,NO),LTERM= X
MSGDEL=SYSINFO,OPTIONS=(PAGDEL,OPNDST,PROT),OPTIONS=(TRSOSI), X
FPBUF=0,BUFSIZE=0,HEADCTL=0,FEAT=(CARD,PEN),COMPT=(),MODEL=1, X
PTRSIZE=120,TYPE=,SIZE=(0,0),OUTBUF=0,UNIT=,COMPT1=(,IGNORE), X
COMPT2=(,IGNORE),COMPT3=(,IGNORE),COMPT4=(,IGNORE),MODETBL=, X
SEGSIZE=0,SESSION=0
NAME N031E03,EDIT=(,ULC),OUTPUT=
10. osisddump
osisddump는 지정된 IMS 시스템의 시스템 정의(System Definition) 테이블에 MODBLKS 라이브러리로 저장된 레코드를 매크로 형태로 화면에 출력하는 툴이다. 출력된 매크로 내용은 다시 osisdgen의 입력으로 사용할 수 있다.
사용법
osisddump를 실행하는 방법은 다음과 같다.
Usage: osisddump <imsid> | osisddump [-h | -v]
-
입력 항목
항목 설명 <imsid>
시스템 서버(Control Region)의 ID를 지정한다.
-
[options]
옵션 설명 [-h]
프로그램 사용을 위한 자세한 사용법을 출력한다.
[-v]
osisdgen의 버전 정보를 출력한다.
사용예제
다음은 osisddump로 IMSA라는 IMS 시스템의 SD 테이블에서 MODBLKS 라이브러리로 저장된 시스템 정의를 읽어서 매크로 형태의 텍스트로 출력하는 예이다.
$ osisddump IMSA
DATABASE DBD=OIVPIDBD,ACCESS=EX
DATABASE DBD=OIVPIX1,ACCESS=EX
DATABASE DBD=OIVPIX2,ACCESS=EX
APPLCTN FPATH=NO,PSB=OIVPI001,PGMTYPE=(TP,,1),SCHDTYP=PARALLEL
TRANSACT CODE=OIVPMPP1,EDIT=(UC),FPATH=NO,INQUIRY=(NO),MAXRGN=0, X
MODE=SNGL,MSGTYPE=(SNGLSEG,1),PARLIM=0,PROCLIM=(0,0), X
PRTY=(1,5,65535),SEGNO=0,SEGSIZE=0
APPLCTN FPATH=NO,PSB=OIVPI002,PGMTYPE=(TP,,1),SCHDTYP=PARALLEL
TRANSACT CODE=OIVPMPP2,EDIT=(UC),FPATH=NO,INQUIRY=(NO),MAXRGN=1, X
MODE=SNGL,MSGTYPE=(SNGLSEG,1),PARLIM=0,PROCLIM=(0,0), X
PRTY=(1,5,65535),SEGNO=0,SEGSIZE=0
APPLCTN FPATH=NO,PSB=OIVPI003,PGMTYPE=(TP,,1),SCHDTYP=PARALLEL
TRANSACT CODE=OIVPMPP3,EDIT=(UC),FPATH=NO,INQUIRY=(NO),MAXRGN=0, X
MODE=SNGL,MSGTYPE=(SNGLSEG,1),PARLIM=0,PROCLIM=(0,0), X
PRTY=(1,5,65535),SEGNO=0,SEGSIZE=0
TERMINAL NAME=(OIVPTRM1),ADDR=(),BACKUP=(0),EDIT=(NO,NO),LTERM= X
MSGDEL=SYSINFO,OPTIONS=(PAGDEL,OPNDST,PROT),OPTIONS=(TRSOSI), X
FPBUF=0,BUFSIZE=0,HEADCTL=0,FEAT=(CARD,PEN),COMPT=(),MODEL=1, X
PTRSIZE=120,TYPE=,SIZE=(0,0),OUTBUF=0,UNIT=,COMPT1=(,IGNORE), X
COMPT2=(,IGNORE),COMPT3=(,IGNORE),COMPT4=(,IGNORE),MODETBL=, X
SEGSIZE=0,SESSION=0
NAME N031E01,EDIT=(,ULC),OUTPUT=
TERMINAL NAME=(OIVPTRM2),ADDR=(),BACKUP=(0),EDIT=(NO,NO),LTERM= X
MSGDEL=SYSINFO,OPTIONS=(PAGDEL,OPNDST,PROT),OPTIONS=(TRSOSI), X
FPBUF=0,BUFSIZE=0,HEADCTL=0,FEAT=(CARD,PEN),COMPT=(),MODEL=1, X
PTRSIZE=120,TYPE=,SIZE=(0,0),OUTBUF=0,UNIT=,COMPT1=(,IGNORE), X
COMPT2=(,IGNORE),COMPT3=(,IGNORE),COMPT4=(,IGNORE),MODETBL=, X
SEGSIZE=0,SESSION=0
NAME N031E02,EDIT=(,ULC),OUTPUT=
TERMINAL NAME=(OIVPTRM3),ADDR=(),BACKUP=(0),EDIT=(NO,NO),LTERM= X
MSGDEL=SYSINFO,OPTIONS=(PAGDEL,OPNDST,PROT),OPTIONS=(TRSOSI), X
FPBUF=0,BUFSIZE=0,HEADCTL=0,FEAT=(CARD,PEN),COMPT=(),MODEL=1, X
PTRSIZE=120,TYPE=,SIZE=(0,0),OUTBUF=0,UNIT=,COMPT1=(,IGNORE), X
COMPT2=(,IGNORE),COMPT3=(,IGNORE),COMPT4=(,IGNORE),MODETBL=, X
SEGSIZE=0,SESSION=0
NAME N031E03,EDIT=(,ULC),OUTPUT=
11. osisdgen
osisdgen은 매크로 형식의 리소스 정의가 정의되어 있는 스크립트 파일을 읽어서 지정된 IMS 시스템의 시스템 정의(System Definition) 테이블에 저장하는 툴이다. 이때 시스템 정의 테이블에는 MODBLKS라는 라이브러리 이름으로 저장된다. 리소스 정의 매크로 파일에 중복되는 정의가 있거나 시스템 정의 테이블내에 같은 리소스에 대한 레코드가 이미 존재하는 경우에는 새로운 정의로 대체한다.
사용법
osisdgen을 실행하는 방법은 다음과 같다.
Usage: osisdgen [-d] [-l] <file> <imsid> | osisdgen [-h | -v] | osisdgen -s [AP | DB | NM | TR | TRM] <sd_name> <imsid>
-
입력 항목
항목 설명 <file>
시스템 정의 테이블에 저장하려는 리소스 정의 매크로 파일을 지정한다.
<imsid>
시스템 서버(Control Region)의 ID를 지정한다.
-
[options1]
옵션 설명 [-d]
리소스를 저장하기 전에 시스템 정의 테이블에서 MODBLKS 라이브러리로 저장된 기존 레코드를 모두 삭제한다.
[-l]
OSI에서 지원하지 않는 매크로나 선행 매크로가 누락되어 무시되는 매크로를 화면에 표시한다.
[-s]
리소스명과 타입을 지정하여 단일 레코드를 테이블로부터 삭제한다. 만약 APPLCTN 혹은 TERMINAL 타입을 지정하여 리소스를 삭제하는 경우에는 하위에 속한 연관된 TRANSACT 혹은 NAME 리소스도 테이블에서 같이 삭제된다.
다음의 타입이 지정 가능하다.
-
AP : APPLCTN
-
DB : DATABASE
-
NM : NAME
-
TR : TRANSACT
-
TRM : TERMINAL
-
-
[options2]
옵션 설명 [-h]
프로그램 사용을 위한 자세한 사용법을 출력한다.
[-v]
osisdgen의 버전 정보를 출력한다.
사용예제
다음은 osi_sd.dat 파일에 들어있는 리소스 정의 매크로들을 읽어서 IMSA라는 IMS 시스템의 시스템 정의 테이블에 저장하는 예이다.
$ osisdgen -d osi_sd.dat IMSA
[2020-12-28T14:24:05.886998] [osisdgen(8205) ] [M] [OSI7203M] Processing result : Success[43], Ignore[0], Error[0]
다음은 단일 리소스 APPLCTN "OIVPI001" 을 IMSA라는 IMS 시스템의 시스템 정의 테이블로부터 삭제하는 예이다.
$ osisdgen -s AP OIVPI001 IMSA
[2020-12-28T14:24:17.123691] [osisdgen(8212) ] [M] [OSI7203M] Processing result : Success[1], Ignore[0], Error[0]
12. osiver
osiver는 배포된 OSI 시스템의 현재 버전 정보를 출력하는 툴이다.
사용법
osiver은 옵션이 없이 실행된다.
Usage: osiver
사용예제
다음은 osiver를 실행했을 경우 예제이다.
$ osiver
OpenFrame/OSI 7.2 64bit
13. osilogprt
osilogprt는 AIBTDLI의 LOG 커맨드로 저장한 로그를 출력하는 툴이다.
사용법
osilogprt를 실행하는 방법은 다음과 같다.
Usage: osilogprt <imsid> [options] | osilogprt [-h | -v]
-
입력 항목
항목 설명 <imsid>
컴파일하려는 MFS 포맷 파일의 이름을 입력한다.
[-h]
프로그램 사용을 위한 자세한 사용법을 출력한다.
[-v]
osilogprt의 버전 정보를 출력한다.
-
[options]
옵션 설명 [-d <date>]
특정 날짜<YYYYMMDD>의 로그를 출력한다.
[-r <date>]
특정 날짜<YYYYMMDD>의 로그를 삭제한다.
[-r -i <date>]
특정 날짜<YYYYMMDD>의 로그를 확인하지 않고 바로 삭제한다.
사용예제
다음은 AIBTDLI의 LOG 커맨드로 저장한 로그를 출력하는 예이다.
$ osilogprt IMSA -d 20230321
IMS control region : [IMSA]
Requested date : [20230321]
-------------------------------------------------------------------
NO. TIME TRAN PROGRAM LL C Text
1 13:44:55 TESTBMP1 TESTI001 45 ~ TESTBMP120230321123456782022050912345678
2 14:47:57 TESTBMP1 TESTI001 45 ~ TESTBMP120230321123456782022050912345678
3 17:18:00 TESTBMP1 TESTI001 45 ~ TESTBMP120230321123456782022050912345678
4 18:35:02 TESTBMP1 TESTI001 45 ~ TESTBMP120230321123456782022050912345678
5 19:05:04 TESTBMP1 TESTI001 45 ~ TESTBMP120230321123456782022050912345678
-------------------------------------------------------------------
14. osievtmgr
osievtmgr는 OSI의 이벤트 정보를 조회할 수 있는 툴이다.
사용법
osievtmgr를 실행하는 방법은 다음과 같다.
Usage: osievtmgr <imsid> <command> [options] | osievtmgr [-h | -v]
-
입력 항목
항목 설명 <imsid>
명령을 실행할 IMSID를 지정한다.
<command>
-
display : OSI 이벤트의 통계 정보를 조회한다.
-
detail : OSI 이벤트에 대해 상세 정보를 조회한다.
-
format : 모든 OSI 이벤트를 삭제하고 이벤트 순번을 초기화 한다.
-
-
[options]
커맨드 옵션 설명 display
(blank)
현재 날짜의 이벤트를 조회한다.
-d <date>
특정 날짜의 이벤트를 조회한다.
-f <date>
특정 날짜부터 현재 날짜까지의 이벤트를 조회한다.
-f <date1> -t <date2>
특정 기간의 이벤트를 조회한다.
-l <I|E|F>
특정 SEVERITY LEVEL의 이벤트를 조회한다.
-r
이벤트를 역순으로 출력한다.
detail
<seq no>
특정 OSI 이벤트에 대한 상세 정보를 조회한다.
format
-i
확인하지 않고 바로 초기화 한다.
(blank)
-h
프로그램 사용을 위한 자세한 사용법을 출력한다.
-v
osievtmgr의 버전 정보를 출력한다.
날짜 형식은 <YYYYMMDD> 또는 <YYYYMMDD:HHmmss> 형태를 사용할 수 있다. |
사용예제
다음은 OpenFrame OSI에서 이벤트 목록을 조회하는 예이다.
$ osievtmgr IMSA display -d 20240625
IMS control region : [IMSA]
Requested command : [display]
-------------------------------------------------------
From date : [20240625:000000.0000]
--------------------------------------------------------------------------------------------------------
NO. TIMESTAMP NODE PROCESS LV PR CODE DETAIL
--------------------------------------------------------------------------------------------------------
80495 20240625:170124.3695 NODE1 IMSAMPP_TCL4(578504) I N 3000 Region boot
80494 20240625:170124.3668 NODE1 IMSAMPP_TCL2(578500) I N 3000 Region boot
80493 20240625:170124.3518 NODE1 IMSAMPP_TCL1(578496) I N 3000 Region boot
80492 20240625:170124.3516 NODE1 IMSAMPP_TCL3(578502) I N 3000 Region boot
80491 20240625:170124.3516 NODE1 IMSAMPP_TCL1(578497) I N 3000 Region boot
80490 20240625:170124.3513 NODE1 IMSAMPP_TCL1(578498) I N 3000 Region boot
80489 20240625:170122.8625 NODE1 IMSASCHD(578393) I N 1000 Normal restart
80488 20240625:170122.8613 NODE1 IMSASCHD(578393) I N 1002 Simple checkpoint
다음은 OpenFrame OSI에서 특정 OSI 이벤트에 대한 상세 정보를 조회하는 예이다.
$ osievtmgr IMSA detail 80495
IMS control region : [IMSA]
Requested command : [detail]
--------------------------------------------------------------------------------------------------------
NO. : 80495
TIMESTAMP : 20240625:170124.3695
NODE : NODE1
JOBID : JOB06514
JOBNAME : IMSAMSG
STEPNAME : STEP1
PROCESS : IMSAMPP_TCL4
TYPE : MPP
PID : 578504
TRANSACT :
PROGRAM :
TERMINAL :
LTERM :
SEVERITY : I
MSGID :
ERROR_CODE : 0
PROC_YN : N
EVENT_CODE : 3000
EVENT_DETAIL : Region boot
REG_NODE : NODE1
REG_PROCESS : IMSAMPP_TCL4
REG_PID : 578504
--------------------------------------------------------------------------------------------------------
다음은 OpenFrame OSI의 MSG에 대한 상세 정보를 조회하는 예이다.
[root@oframe osievtmgr]# osievtmgr d -m 202405211650315122610000000000000173 osievtmgr version 7.2.0(0) root@oframe:ofsrc/osi(#1) 2024-02-28 11:22:36 OpenFrame OSI MQ Manager - MSG ID : 202405211650315122610000000000000173 - IMSID : IMSA - MSG Flag : - MSG Type : REQMSG - DEST Name : OIVPMPP1 - DEST Type : M - TERM Name : OIVPTRM8 - LTERM Name : N031E08 - MODE Name : OIVP001O - SVC Name : - GW Client ID : 13 - Client ID : 11 - Region Client ID : 0 - IP Address : 13.13.70.93 - MSG Input Date : 0024142C - MSG Input Time : 1650310C - Program MOD Y/N : Y - Prev. MSG ID : - MSG Sequence : 0 - PCB Flag : NULL - Segment Count : 0 - Error TRANSACT : - Command Option : - SPA Length : 0 - Error Code : 0 - Alt. Type : ISRTNOT - MSG Length : 20 - MSG State : D - Reg. Time : 2024/05/22 01:50:31.513769 - Upt. Time : 2024/05/22 01:50:31.540198 - Message > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> *offset*: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF 00000000: 14 00 00 00 4F 49 56 50 4D 50 50 31 20 20 20 20 ....OIVPMPP1 00000010: 49 4E 51 52 INQR >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
이벤트 코드
조회할 수 있는 이벤트 목록은 다음과 같다.
이벤트 코드 | 상세 정보 | 설명 |
---|---|---|
0500 |
Failed to connect to MQ Qmanager |
IBM MQ Qmanager에 연결하지 못하였다. |
0501 |
MQ connection has been lost |
IBM MQ 연결이 끊어졌다. |
0600 |
Sending OTMA transaction message failed |
OTMA 트랜잭션 메시지 전송에 실패하였다. |
0601 |
Sending OTMA response message failed |
OTMA 트랜잭션의 응답 메시지 전송에 실패하였다. |
1000 |
Normal restart |
NRESTART 커맨드가 성공적으로 처리되었다. |
1001 |
Emergency restart |
ERESTART 커맨드가 성공적으로 처리되었다. |
1002 |
Simple checkpoint |
SIMPLE CHECKPOINT가 발생하였다. |
1003 |
Shutdown checkpoint |
SHUTDOWN CHECKPOINT가 발생하였다. |
3000 |
Region boot |
Dependent Region이 기동하였다. |
3001 |
Region down |
Dependent Region이 종료되었다. |
3002 |
Region abend |
Dependent Region에서 ABEND가 발생하였다. USER ABNED인 경우 ABEND CODE가 함께 기록된다. |
4000 |
Transaction Failed |
트랜잭션 처리를 실패하였다. |
4001 |
PCB status code is ZZ |
DL/I call에서 예기치 못한 예외 상황이 발생하였다. |
15. osimqmgr
osimqmgr는 OSI의 메시지 큐에 대한 정보를 조회할 수 있는 툴이다.
사용법
osimqmgr를 실행하는 방법은 다음과 같다.
Usage : osimqmgr <command> [options]
-
입력 항목
항목 설명 <command>
-
summary : OSI MQ의 통계 정보를 조회한다.
-
list : OSI MQ에 대해 option에 정의한 조건으로 목록을 조회한다.
-
display : MSG ID를 지정하여 OSI MQ의 특정 메시지에 대해 상세 정보를 조회한다.
-
-
[options]
커맨드 옵션 설명 list
-i
IMS ID를 지정한다.
-sm
검색 시작 MSG ID를 지정한다.
-tm
검색 종료 MSG ID를 지정한다.
-term
Terminal ID를 지정한다.
-lterm
Logical terminal ID를 지정한다.
-w
출력 항목에 추가적인 정보를 출력한다.
-r
Message ID 역순으로 조회할 수 있도록 지정한다.
display
-m
OSI MSG ID를 지정한다.
OSI에서 MSG ID는 MSG ID를 발급한 'YYYMMDDHHMMSS…' 형식으로 작성되어 있다. 따라서 list 커맨드로 MSG ID지정시, 해당 내용을 참고하여 지정된 시각에 발행한 메시지를 조회할 경우에는 이 내용을 참조해서 조회할 수 있다. |
사용예제
다음은 OpenFrame OSI에서 MSG ID에 대한 통계 정보를 조회하는 예이다.
$ osimqmgr summary
osimqmgr version 7.2.0(0) root@oframe:ofsrc/osi(#1) 2024-02-28 11:22:36
OpenFrame OSI MQ Manager
# OSI message statistics by state
--------------------------------------
State Count
--------------------------------------
Waiting 4
- MPP 0
- BMP 4
- Term 0
- ISC 0
- OTMA 0
- Command 0
- Tool 0
Deleted 85
Total 89
--------------------------------------
다음은 OpenFrame OSI에서 MSG 목록을 조회하는 예이다.
$ osimqmgr list
osimqmgr version 7.2.0(0) root@oframe:ofsrc/osi(#1) 2024-02-28 11:22:36
OpenFrame OSI MQ Manager
MSGID IMS MTYPE DEST TERM LTERM STATE Registered Updated
---------------------------------------------------------------------------------------------------------------------------
202405061444209217810000000000000173 IMSA REQMSG /FOR OIVPTRM3 N031E03 D 2024/05/06 23:44:20 2024/05/06 23:44:20
---------------------------------------------------------------------------------------------------------------------------
- Total 1 message(s) were printed
다음은 OpenFrame OSI의 MSG에 대한 상세 정보를 조회하는 예이다.
[root@oframe osimqmgr]# osimqmgr d -m 202405211650315122610000000000000173 osimqmgr version 7.2.0(0) root@oframe:ofsrc/osi(#1) 2024-02-28 11:22:36 OpenFrame OSI MQ Manager - MSG ID : 202405211650315122610000000000000173 - IMSID : IMSA - MSG Flag : - MSG Type : REQMSG - DEST Name : OIVPMPP1 - DEST Type : M - TERM Name : OIVPTRM8 - LTERM Name : N031E08 - MODE Name : OIVP001O - SVC Name : - GW Client ID : 13 - Client ID : 11 - Region Client ID : 0 - IP Address : 13.13.70.93 - MSG Input Date : 0024142C - MSG Input Time : 1650310C - Program MOD Y/N : Y - Prev. MSG ID : - MSG Sequence : 0 - PCB Flag : NULL - Segment Count : 0 - Error TRANSACT : - Command Option : - SPA Length : 0 - Error Code : 0 - Alt. Type : ISRTNOT - MSG Length : 20 - MSG State : D - Reg. Time : 2024/05/22 01:50:31.513769 - Upt. Time : 2024/05/22 01:50:31.540198 - Message > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> *offset*: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF 00000000: 14 00 00 00 4F 49 56 50 4D 50 50 31 20 20 20 20 ....OIVPMPP1 00000010: 49 4E 51 52 INQR >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
16. osilogana
osilogana는 OSI의 DR 리전의 트랜잭션 정보를 분석할 수 있는 툴이다.
사용법
osilogana를 실행하는 방법은 다음과 같다.
Usage: osilogana [input] [options] | osilogana [-h | -v]
-
[input]
입력 설명 -f <file>
트랜잭션 로그를 파일에서 입력을 받는다.
(none)
트랜잭션 로그를 stdin에서 입력을 받는다.
-
[options]
옵션 설명 -r
트랜잭션 정보를 역순으로 출력한다.
-h
프로그램 사용을 위한 자세한 사용법을 출력한다.
-v
osilogana의 버전 정보를 출력한다.
사용예제
다음은 OpenFrame OSI의 MPP 서버 로그를 입력받아 트랜잭션 정보를 분석하는 예이다.
$ osilogana -f IMSAMPP_TCL106262024.out
LINE COUNT : 490
OFM LOG COUNT : 284
* No. 1
MSGID : 202406261715436833610000000000000109 PROCESS ID: 3105887
TRANSACT: OIVPMPP2 LOG COUNT : 281
APPLCTN : OIVPI002 PSB : OIVPI002
STARTED : 2024-06-26T17:15:43.687641 START LINE: 3
ENDED : 2024-06-26T17:15:43.712614 END LINE : 489
ELAPSED : 0.024973
--------------------------------------------------------------------------------------------------------
SEQ DL/I PCB IDX DBD SEGMENT ST TIMESTAMP ELAPSED TX_ELAPSED LINE
--------------------------------------------------------------------------------------------------------
1 GU IO 1 2024-06-26T17:15:43.698290 0.000963 0.011612 221-259
2 GU DB 3 OIVPIDBD DBSEG 2024-06-26T17:15:43.699337 0.001247 0.012943 262-333
3 CHNG ALT 2 2024-06-26T17:15:43.700640 0.001251 0.014250 337-360
4 ISRT ALT 2 2024-06-26T17:15:43.701932 0.000664 0.014955 362-393
5 PURG ALT 2 2024-06-26T17:15:43.702628 0.000558 0.015545 395-417
6 ISRT IO 1 2024-06-26T17:15:43.703217 0.000646 0.016222 419-457