주식회사 누리아이티

정보자산의 보안강화를 위한 3단계 인증 보안SW(BaroPAM) 전문기업인 누리아이티

▶ Tuxedo/기술자료

TUXEDO/Q 개념과 qmadmin 사용방법

누리아이티 2012. 3. 16. 13:05

1. TUXEDO/Q 개념

Ø  TUXEDO Version 6.X Disk Queuing 만을 제공

Ø  TUXEDO Version 7.1 부터는 Memory Queuing 제공

Ø  Queued Message 흐름도

  참고사항) 개념을 근거로 하여 SK NATE 구성된 TUXEDO 구성화일을 참조

 

2. TUXEDO/Q 적용사례

Ø  SK NATE TUXEDO 구성화일

Ø  발췌일자 : 2002-04-15 월요일 기준으로 발췌

*RESOURCES

IPCKEY            33333

MASTER            SITE1

UID               104

GID               20

PERM              0666

MAXACCESSERS      1610

MAXACLGROUPS      16384

MAXGTT            2048

MAXGROUPS         100

MAXNETGROUPS      8

MAXMACHINES       256

MAXQUEUES         400

MAXDRT   0

MAXRFT   0

MAXRTDATA         4

MAXSERVERS        400

MAXSERVICES       8500

MAXCONV           1

MODEL             SHM

LDBAL             Y

CMTRET            COMPLETE

MAXBUFTYPE        16

MAXBUFSTYPE       32

SCANUNIT 10

SANITYSCAN        12

DBBLWAIT 2

BBLQUERY 30

BLOCKTIME         30

NOTIFY            DIPIN

SYSTEM_ACCESS     FASTPATH

USIGNAL           SIGUSR2

 

*MACHINES

"nateifs1"        LMID="SITE1"

         TUXCONFIG="/home01/IFS/env/tuxconfig"

         TUXDIR="/home01/tuxedo"

         APPDIR="/home01/IFS/app"

         TLOGDEVICE="/home01/IFS/env/TLOG"

         TLOGNAME="TLOG"

         TLOGSIZE=2048

         ULOGPFX="/data/log/tux_log/ulog/ULOG"

         MAXWSCLIENTS=64

         CMPLIMIT="MAXLONG,MAXLONG"

         NETLOAD=0

         SPINCOUNT=5000

         MAXACLCACHE=100

 

*GROUPS

"GRPNXA1"         LMID="SITE1"      GRPNO=101

         TMSCOUNT=3

"DEV_GRP"         LMID="SITE1"      GRPNO=102

         TMSCOUNT=3

"CNCNN_GRP"    LMID="SITE1"   GRPNO=310

        OPENINFO="TUXEDO/QM:/user1/CNCNN:S_CNCNN"

        TMSNAME="TMS_QM"

        TMSCOUNT=2

"CNSTO_GRP"    LMID="SITE1"   GRPNO=320

        OPENINFO="TUXEDO/QM:/user2/CNSTO:S_CNSTO"

        TMSNAME="TMS_QM"

        TMSCOUNT=2

"QMAIL_GRP"    LMID="SITE1"   GRPNO=330

        OPENINFO="TUXEDO/QM:/user3/QMAIL:S_QMAIL"

        TMSNAME="TMS_QM"

        TMSCOUNT=2

"ALARM_GRP"    LMID="SITE1"   GRPNO=340

        OPENINFO="TUXEDO/QM:/user1/ALARM:S_ALARM"

        TMSNAME="TMS_QM"

        TMSCOUNT=2

"CMYPC_GRP"    LMID="SITE1"   GRPNO=350

        OPENINFO="TUXEDO/QM:/user2/CMYPC:S_CMYPC"

        TMSNAME="TMS_QM"

        TMSCOUNT=2

"CNHAN_GRP"    LMID="SITE1"   GRPNO=360

        OPENINFO="TUXEDO/QM:/user3/CNHAN:S_CNHAN"

        TMSNAME="TMS_QM"

        TMSCOUNT=2

"WSGRP1" LMID="SITE1"      GRPNO=901

         TMSCOUNT=3

"JSLGRP" LMID="SITE1"      GRPNO=902

         TMSCOUNT=3

"JREPGRP"         LMID="SITE1"      GRPNO=903

         TMSCOUNT=3

"DOMGRP" LMID="SITE1"      GRPNO=905

         TMSCOUNT=3

 

*NETGROUPS

 

*SERVERS

"svrnxa1"         SRVGRP="GRPNXA1"  SRVID=1000

         CLOPT="-A -r -o /data/log/tux_log/out/svrnxa1.out -e /data/log/tux_log/stderr"

         SEQUENCE=1

         RQPERM=0666       REPLYQ=Y RPPERM=0666       MIN=2    MAX=2    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

"svrnxa2"         SRVGRP="GRPNXA1"  SRVID=1100

         CLOPT="-A -r -o /data/log/tux_log/out/svrnxa2.out -e /data/log/tux_log/stderr -uid nate -pw nate@CUSTDB"

         SEQUENCE=2

         RQPERM=0666       REPLYQ=Y RPPERM=0666       MIN=2    MAX=2    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

"svrnxa3"         SRVGRP="GRPNXA1"  SRVID=1200

         CLOPT="-A -r -o /data/log/tux_log/out/svrnxa3.out -e /data/log/tux_log/stderr -uid nate -pw nate@CUSTDB"

         SEQUENCE=3

         RQPERM=0666       REPLYQ=Y RPPERM=0666       MIN=5    MAX=5    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

"svrnxa4"         SRVGRP="GRPNXA1"  SRVID=1300

         CLOPT="-A -r -o /data/log/tux_log/out/svrnxa4.out -e /data/log/tux_log/stderr -uid nate -pw nate@CUSTDB"

         SEQUENCE=4

         RQPERM=0666       REPLYQ=Y RPPERM=0666       MIN=2    MAX=2    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

"svrnxa5"         SRVGRP="GRPNXA1"  SRVID=1400

         CLOPT="-A -r -o /data/log/tux_log/out/svrnxa5.out -e /data/log/tux_log/stderr -uid nate -pw nate@CUSTDB"

         SEQUENCE=5

         RQPERM=0666       REPLYQ=Y RPPERM=0666       MIN=2    MAX=2    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

"svrnxa6"         SRVGRP="GRPNXA1"  SRVID=1500

         CLOPT="-A -r -o /data/log/tux_log/out/svrnxa6.out -e /data/log/tux_log/stderr"

         SEQUENCE=6

         RQPERM=0666       REPLYQ=Y RPPERM=0666       MIN=2    MAX=2    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

"svrnxa7"         SRVGRP="GRPNXA1"  SRVID=1600

         CLOPT="-A -r -o /data/log/tux_log/out/svrnxa7.out -e /data/log/tux_log/stderr -uid nate -pw nate@CUSTDB"

         SEQUENCE=7

         RQPERM=0666       REPLYQ=Y RPPERM=0666       MIN=2    MAX=2    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

"svrdom" SRVGRP="DOMGRP"   SRVID=1700

         CLOPT="-A -r -o /data/log/tux_log/out/svrdom.out -e /data/log/tux_log/stderr"

         SEQUENCE=8

         RQPERM=0666       REPLYQ=Y RPPERM=0666       MIN=5    MAX=5    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

"TMQUEUE"      SRVGRP="CNCNN_GRP"     SRVID=3100

        CLOPT="-s S_CNCNN:TMQUEUE -r -o /data/log/tux_log/out/CNCNN.out -e /data/log/tux_log/stderr"

        SEQUENCE=11

        RQPERM=0666    REPLYQ=Y       RPPERM=0666    MIN=3   MAX=3   CONV=N

        SYSTEM_ACCESS=FASTPATH

        MAXGEN=255     GRACE=0 RESTART=Y

"TMQUEUE"      SRVGRP="CNSTO_GRP"     SRVID=3200

        CLOPT="-s S_CNSTO:TMQUEUE -r -o /data/log/tux_log/out/CNSTO.out -e /data/log/tux_log/stderr"

        SEQUENCE=12

        RQPERM=0666    REPLYQ=Y       RPPERM=0666    MIN=3   MAX=3   CONV=N

        SYSTEM_ACCESS=FASTPATH

        MAXGEN=255     GRACE=0 RESTART=Y

"TMQUEUE"      SRVGRP="QMAIL_GRP"     SRVID=3300

        CLOPT="-s S_QMAIL:TMQUEUE -r -o /data/log/tux_log/out/QMAIL.out -e /data/log/tux_log/stderr"

        SEQUENCE=13

        RQPERM=0666    REPLYQ=Y       RPPERM=0666    MIN=3   MAX=3   CONV=N

        SYSTEM_ACCESS=FASTPATH

        MAXGEN=255     GRACE=0 RESTART=Y

"TMQUEUE"      SRVGRP="ALARM_GRP"     SRVID=3400

        CLOPT="-s S_ALARM:TMQUEUE -r -o /data/log/tux_log/out/ALARM.out -e /data/log/tux_log/stderr"

        SEQUENCE=14

        RQPERM=0666    REPLYQ=Y       RPPERM=0666    MIN=3   MAX=3   CONV=N

        SYSTEM_ACCESS=FASTPATH

        MAXGEN=255     GRACE=0 RESTART=Y

"TMQUEUE"      SRVGRP="CMYPC_GRP"     SRVID=3500

        CLOPT="-s S_CMYPC:TMQUEUE -r -o /data/log/tux_log/out/CMYPC.out -e /data/log/tux_log/stderr"

        SEQUENCE=15

        RQPERM=0666    REPLYQ=Y       RPPERM=0666    MIN=3   MAX=3   CONV=N

        SYSTEM_ACCESS=FASTPATH

        MAXGEN=255     GRACE=0 RESTART=Y

"TMQUEUE"      SRVGRP="CNHAN_GRP"     SRVID=3600

        CLOPT="-s S_CNHAN:TMQUEUE -r -o /data/log/tux_log/out/CNHAN.out -e /data/log/tux_log/stderr"

        SEQUENCE=16

        RQPERM=0666    REPLYQ=Y       RPPERM=0666    MIN=3   MAX=3   CONV=N

        SYSTEM_ACCESS=FASTPATH

        MAXGEN=255     GRACE=0 RESTART=Y

"WSL"    SRVGRP="WSGRP1"   SRVID=100

         CLOPT="-A -- -n //70.12.202.119:5550 -w WSH -m 2 -M 4 -x 10 -Z 0"

         SEQUENCE=21

         RQPERM=0666       REPLYQ=N RPPERM=0666       MIN=1    MAX=2    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

"WSL"    SRVGRP="WSGRP1"   SRVID=110

         CLOPT="-A -- -n //203.236.40.87:5550 -w WSH -p 5551 -P 5554 -m 2 -M 4 -x 10"

         SEQUENCE=22

         RQPERM=0666       REPLYQ=N RPPERM=0666       MIN=1    MAX=2    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

"WSL"    SRVGRP="WSGRP1"   SRVID=120

         CLOPT="-A -- -n //150.31.132.119:5550 -w WSH -m 2 -M 2 -x 10 -Z 0"

         SEQUENCE=23

         RQPERM=0666       REPLYQ=N RPPERM=0666       MIN=1    MAX=2    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

"JSL"    SRVGRP="JSLGRP"   SRVID=220

         CLOPT="-A -- -n //70.12.202.119:5570 -d /dev/tcp -m 1 -M 2 -x 5 "

         SEQUENCE=24

         RQPERM=0666       REPLYQ=N RPPERM=0666       MIN=1    MAX=2    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

"DMADM"  SRVGRP="DOMGRP"   SRVID=16

         CLOPT="-A"

         RQPERM=0666       REPLYQ=N RPPERM=0666       MIN=1    MAX=1    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

"GWADM"  SRVGRP="DOMGRP"   SRVID=17

         CLOPT="-A"

         RQPERM=0666       REPLYQ=N RPPERM=0666       MIN=1    MAX=1    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

"GWTDOMAIN"       SRVGRP="DOMGRP"   SRVID=18

         CLOPT="-A"

         RQPERM=0666       REPLYQ=Y RPPERM=0666       MIN=1    MAX=1    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

"JREPSVR"         SRVGRP="JREPGRP"  SRVID=260

         CLOPT="-A -r -- -P /home01/IFS/env/jolt/jrepository -W "

         RQPERM=0666       REPLYQ=N RPPERM=0666       MIN=1    MAX=2    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

"devsvr" SRVGRP="DEV_GRP"  SRVID=1800

         CLOPT="-A -r -o /data/log/tux_log/out/devsvr.out -e /data/log/tux_log/stderr"

         RQPERM=0666       REPLYQ=Y RPPERM=0666       MIN=5    MAX=5    CONV=N

         SYSTEM_ACCESS=FASTPATH

         MAXGEN=255        GRACE=0  RESTART=Y

 

*SERVICES

 

*ROUTING

 

 

 

 

3. qmadmin 사용방법

Ø  해당 명령어에 대한 자세한 설명은 TUXEDO/Q User Manual 참조

Ø  명령어 라인상에서 아래와 같은 형식으로 qmadmin 명령을 수행한다.

[nateifs1:/home/nate]qmadmin /user1/CNCNN

qmadmin - Copyright (c) 1996 BEA Systems, Inc.

Portions * Copyright 1986-1997 RSA Data Security, Inc.

All Rights Reserved.

Distributed under license by BEA Systems, Inc.

TUXEDO is a registered trademark.

QMCONFIG=/user1/CNCNN

 

참고사항) 위에서 /user1/CNCNN TUXEDO 구성화일의 GROUPS 섹션에 정의된 Queue

          Device 명이다.

          , CP(Contents Provider) 별로 다른 Queue Device 사용하므로 모니터하고자 하는

          CP(Contents Provider) 대해서는 해당 Queue Device 명을 인자로 넘겨주어 실행

          해야 한다.

 

Ø  Qmadmin 도움말(Help) qmadmin Prompt 상에서 help 라고 입력하면 된다.

> help

chdl [[dlindex] newdevice]

crdl [device [offset [size]]]

dsdl [-y] [dlindex]

echo (e) [{off|on}]

help (h) [{command|all}]

ipcrm [-f] [-y] [queue_space_name]

ipcs [queue_space_name]

lidl [dlindex]

livtoc

paginate (page) [{off|on}]

qaborttrans (qabort) [-y] [tranindex]

qaddext [queue_space_name [pages]]

qclose

qchange [queue_name [out-of-order [retries

        [delay [ high [ low [ cmd]]]]]]]

qchangeprio (qcp) [-y] [newpriority]

qchangequeue (qcq) [-y] [newqueue]

qchangetime (qct) [-y] [newtime]

qcommittrans (qcommit) [-y] [tranindex]

qcreate (qcr) [queue_name [qorder [out-of-order [retries

        [delay [ high [ low [ cmd]]]]]]]]

qdeletemsg (qdltm) [-y]

qdestroy (qds) [{-p | -f}] [-y] [queue_name]

: <= Enter Key 를 누른다

qcommittrans (qcommit) [-y] [tranindex]

qcreate (qcr) [queue_name [qorder [out-of-order [retries

        [delay [ high [ low [ cmd]]]]]]]]

qdeletemsg (qdltm) [-y]

qdestroy (qds) [{-p | -f}] [-y] [queue_name]

qinfo [queue_name]

qlist (ql)

qmap

qopen [queue_space_name]

qprinttrans (qpt)

qscan [{ [-t time1[-time2]]

        [-p priority1[-priority2]] [-m msgid] [-i corrid] | none}]

qset [queue_name]

qsize [pages [queues [transactions [processes [messages]]]]]

qspacechange (qspch) [queue_space_name [ipckey [trans

        [ procs [ messages [errorq [inityn [blocking]]]]]]]]

qspacecreate (qspc) [queue_space_name [ipckey [ pages

        [ queues [trans [ procs [ messages [errorq[inityn[blocking]]]]]]]]

qspacedestroy (qspds) [-f] [-y] [queue_space_name]

qspacelist (qspl) [queue_space_name]

quit (q)

verbose (v) [{off|on}]

 

 

Ø  Qmadmin 명령어 상태를 종료하려면 quit 명령을 입력한다.

> quit

 

Ø  TUXEDO/Q 사용하려면 아래와 같은 절차에 의해 Queue Device 생성해야 한다.

Ø  예제) /user1/CNCNN Queue Device 생성하는 경우

[nateifs1:/home/nate]qmadmin /user1/CNCNN

qmadmin - Copyright (c) 1996 BEA Systems, Inc.

Portions * Copyright 1986-1997 RSA Data Security, Inc.

All Rights Reserved.

Distributed under license by BEA Systems, Inc.

TUXEDO is a registered trademark.

QMCONFIG=/user1/CNCNN

 

>echo

>crdl /user1/CNCNN 0 100200 <= Queue Device Size(Offset=0 부터 100200 Blocks 확보)

Created device … 생략

>qspacecreate

Queue space name: S_CNCNN <= Queue Space 설정

IPC Key for queue space: 76188 <= IPC 자원사용에 대한 Key 할당

Size of queue space in disk pages: 100100 <= Queue Device Size –100(관리정보 보관)

Number of queues in queue space: 2 <= Queue Sapce 내에서의 Queue Max 갯수

Number of concurrent transactions in queue space: 150 <= Current Transaction 갯수

Number of concurrent processes in queue space: 150 <= Current Process 갯수

Number of messages in queue space: 100000 <= Queue Space 내에서의 Message 갯수

Error queue name: E_CNCNN <= Error Queue 설정

Initialize extents (y, n [default=n]): y <= Queue Space 생성후 초기화 작업 여부

Blocking factor [default=16]: 16 <= Queue Space 내에서의 /출력 단위

>qopen S_CNCNN

>qcreate

Queue name: Q_CNCNN <= 생성할 Queue 이름(일반적으로 서비스명과 동일한 이름을 부여)

Queue order (priority, time, fifo, lifo): fifo <= 쌓여 있는 Message 추출방법

Out-of-ordering enqueuing (top, msgid, [default=none]): none

Retries [default=0]: 2 <= Retry 횟수(Retry 상황 : TPENOENT 또는 TPFAIL 경우)

Retry delay in seconds [default=0]: 1 <= Retry 발생하는 주기로서 단위는

High limit for queue capacity warning (b for bytes used, B for blocks used,

 % for percent used, m for messages [default=100%]): 80% <= Message Queue 최대 수용량

Reset (low) limit for queue capacity warning [default=0%]: 0% <= 일반적으로 0% 설정

Queue capacity command:

No default queue capacity command

Queue 'Q_CNCNN' created

>qcreate

Queue name: E_CNCNN

Queue order (priority, time, fifo, lifo): fifo

Out-of-ordering enqueuing (top, msgid, [default=none]): none

Retries [default=0]: 2

Retry delay in seconds [default=0]: 1

High limit for queue capacity warning (b for bytes used, B for blocks used,

 % for percent used, m for messages [default=100%]): 80%

Reset (low) limit for queue capacity warning [default=0%]: 0%

Queue capacity command:

No default queue capacity command

Q_CAT:1438: INFO: Create queue - error queue E_CNCNN created

Queue 'E_CNCNN' created

>quit

참고사항) SK NATE 에서는 Queue Device 만드는 명령을 셀 스크립트로 만들어 사용한다.

참고설명) IPC Key 할당 가능범위는 32768 < IPC Key < 262143 이다.

Initialize extents ‘n’ 을 입력한 경우에는 초기화 작업 qmadmin qopen

  명령으로 최초로 해당 Queue Space 를 오픈할 때 수행된다.

Out-of-ordering enqueuing 에서 top 은 해당 메시지를 Queue 의 맨 앞에 삽입하며,

  Msgid 은 지정된 msgid 앞에 삽입한다.

Out-of-ordering enqueuing 사용시 해당 메시지 삽입방식을 변경하려면

  해당 Queue Destory 한 후에 Recreate 해야 하므로 주의깊게 설정해야 한다.

Blocking factor Queue Space 생성후 초기화 작업시 Disk /출력단위가 된다.

 

Ø  TUXEDO/Q 모니터링 방법

Ø  Qmadmin 명령 수행시는 반드시 오픈하고자 하는 Queue Device 인자로 넘겨주어야 한다.

[nateifs1:/home/nate]qmadmin /user1/CNCNN

참고설명) Queue Device 실제로 Physical Disk File 명이다.

참고사항) SK NATE Queue Device 여러 있음

 

Ø  대상 Queue Space 명을 지정하여 Queue Space 오픈한다.

>qopen S_CNCNN

참고설명) Queue Space 명은 Logical 영역에 대한 이름이다.

 

Ø  현재 Queue 쌓여 있는 메시지를 보는 명령

> qinfo

참고설명) 특정 Queue 있는 메시지를 보려면 qinfo 다음에 해당 Queue 지정한다.

 

 

Ø  특정 Queue 대한 Msgid 보고자 하는 경우

> qset Q_CNCNN

> qlist

  참고설명) qset 명령으로 list Queue 지정한 후에 qlist 명령을 실행한다.

 

Ø  특정 Queue 대한 메시지를 삭제하고자 하는 경우

> qset Q_CNCNN

> qdeletemsg

참고설명) qdeletemsg 명령 수행시 qscan 으로 삭제할 메시지를 제한하지 않으면 모든 메시지가

         삭제되므로 qscan 명령으로 삭제 대상 메시지를 제한하도록 한다.

 

Ø  삭제할 메시지를 제한한 후에, 해당 메시지를 삭제하는 방법

> qset Q_CNCNN

> qscan -m 1018829864.40.0

> qlist

> qdeletemsg –y

참고설명) qscan 명령으로 설정된 범위를 해제하고자 하는 경우는 qscan none 실행한다.

         Qscan 상세한 설명은 TUXEDO/Q User Manual 참조

 

Ø  생성된 Queue Space 대한 세부내용을 보고자 하는 경우

> qspacelist S_CNCNN

참고설명) qspacecreate 명령수행시 설정한 파라미터 값을 모두 있다.

 

Ø  현재 수행중인 명령어 출력결과를 세부적으로 보고자 하는 경우

> verbose

참고설명) verbose Mode toggle 방식으로 on/off 된다.

 

 

 

4. 참고사항

Ø  설명에서 부족한 부분은 TUXEDO/Q User Manual 참조한다.