Middleware

What Is a UBBCONFIG File ?

The UBBCONFIG file is a text version of the configuration file that defines a BEA Tuxedo application. You can create and edit a UBBCONFIG file with any text editor.

 

The TUXCONFIG file is a binary version of UBBCONFIG. It contains information used by tmboot(1) to start the servers and initialize the bulletin board of a BEA Tuxedo application in an orderly sequence. A TUXCONFIG file is created by executing the tmloadcf(1) command on the UBBCONFIG file.

 

참고

https://docs.oracle.com/cd/E13203_01/tuxedo/tux71/html/tedgub2.htm

 

 

원문을 스스로 번역하고 이해하며 쓴 것이라 가독성이 떨어질 수 있습니다...

 

 

 

UBBCONFIG 파일은 만든 후에, TUXCONFIG 파일을 생성하기 위해서는 tmloadcf() 명령어를 실행해야합니다.

TUXCONFIG는 ASCII로 구성된 텍스트 파일인 UBBCONFIG의 Binary 파일입니다. (컴퓨터는 ASCII를 읽을 수 없기 때문에 2진법으로 바꿔줘야...) 

tmloadcf -y ubbconfing 

위 명령어를 사용함으로써 TUXCONFIG 파일의 이름을 지정할 수 있다.

 

TUXCONFIG 파일은 무엇을 나타내나?

 

TUXCONFIG 파일은 MASTER MACHINE에 대한 위치를 정의하고 있습니다.

MASTER MACHINE은 tmboot() 명령어를 사용하여 Binary 파일인 TUXCONFIG를 사용합니다.

따라서 TUXCONFIG 환경변수는 TUXCONFIG가 loaded 되는 system file이나 device로 끝나는 절대경로로 지정되어야합니다.

MP MODEL에서 MASTER MACHINE은 Domain 내에 TUXEDO 시스템 소프트웨어의 최신 버전을 기동시켜야합니다.

TUXEDO domain을 위한 MASTER MACHINE는 어플리케이션을 booting 시키기 위해 tmboot() 명령어를 사용함으로써 모든 server machine에 전파 받은 TUXCONFIG 파일의 master copy를 가지고 있습니다.

 

 

 

*RESOURCES

PCKEY 42299

MASTER SITE1

UID 150

GID 20

PERM 0666

MAXGROUPS 100

MAXSERVERS 50

MAXSERVICES 100

MODEL SHM

*MACHINES

 

         hp2 LMID=SITE1

         TUXCONFIG="/work1/espuser/piper/tuxcfg/cfg/tuxconfig"

         TUXDIR="/work1/tux6"

         TLOGDEVICE="/work1/espuser/piper/tuxcfg/cfg/TLOG"

         TLOGNAME="TLOG"

         TLOGSIZE=10

         ULOGPFX="/work1/espuser/piper/tuxcfg/log/ULOG"

         MAXWSCLIENTS=10

 

*GROUPS

GROUP1 LMID=SITE1 GRPNO=1

 

         OPENINFO="Oracle_XA:Oracle_XA+Acc=p/insa/insa000+SesTm="

         TMSCOUNT=2 TMSNAME=ORACLE73_TMS

 

*SERVERS

DEFAULT: RESTART=Y MAXGEN=3 REPLYQ=Y CLOPT="-A -r -n 10 "

samplesvr SRVGRP=GROUP1 SRVID=101

 

         CLOPT="-A -r -o /work1/espuser/piper/tuxcfg/log/samplesvr.out"

 

*SERVICES

DEFAULT: LOAD=50 MAKEDESPOIT PRIO=50

'Middleware > Tuxedo' 카테고리의 다른 글

미들웨어 개념 및 종류  (0) 2022.08.09
[Tuxedo] UBBCONFIG 환경 파일  (0) 2022.08.09
[Tuxedo] UBBCONFIG 환경파일 설정 (업데이트 중 )  (0) 2022.08.08
[Tuxedo] 3-Tier & SHM 모델  (0) 2022.08.08
[Tuxedo] Oracle TUXEDO 기능  (0) 2022.08.08

UBBCONFIG 파일이라고 하는 TUXEDO 구성 파일은 가장 중요한 TUXEDO 환경 또는 어플리케이션에 대한 구성 파일 입니다. UBBCONFIG 파일은 TUXEDO 어플리케이션을 구조화 할 수 있는 다양한 섹션들을 가지고 있는 파일입니다. 그리고 각 섹션은 TUXEDO application을 구성하고 관리할 수 있는 values가 내장된 parameter들을 가지고 있습니다.

8개의 섹션이 있으며, 그 중 5개의 섹션이 required 입니다. (필수사항) 

(RESOURCES, MACHINES, GROUPS, SERVERS, and SERVICES)

나머지 섹션 (NETGROUPS, NETWORK, and ROUTING)은 옵션입니다. 

UBBCONFIG 파일은 텍스트 파일이기에 텍스트 편집기를 사용하여 생성하고 유지할 수 있습니다.

 

UBBCONFIG 파일. TUXEDO 어플리케이션의 전반적인 구조를 보여준다.

 

 

 

UBBCONFIG 환경파일 설정

 

TUXEDO 운영을 위한 제반 사항들을 설정합니다. 환경파일은 위의 그림과 같이 Required/Optional로  총 8개의 Section으로 구성되며 각 Section별 구성은 다음과 같습니다.

 

 

*RESOURCES : 서버, 서비스의 개수 등과 같은 시스템 리소스 전반에 걸친 정의

 

*MACHINES : Physical 시스템에 대한 논리적 시스템명을 부여하며, 각 시스템의 환경 변수들을 설정한다. MP 시스템의 경우 마스터 뿐만 아니라 슬래이브의 환경도 설정

 

*NETWORKS : MP 모델로 운영 시에만 기술하며 네트웍 환경에 대한 정보를 기술

 

*GROUPS : 서버 그룹에 대한 정보를 기술

 

*SERVERS : 서버의 세부적인 정보를 기술

 

*SERVICES : 운영될 서비스들에 대한 정보를 기술

 

*ROUTING : 라우팅에 관한 정보를 기술

 

 

+

 

*INTERFACE

 

 

환경파일 Section 

 

RESOURCES Section

 

 

 

 

IPCKEY                  numeric_value
MASTER                  string_value1[,string_value2]
DOMAINID                string_value

 

 

IPCKEY : 내부적으로 Bulletin Board, Message Queue, 세마포어 등을 할당하기 위한 값으로 사용됨.  Single Processor Mode(SHM)에서는 bulletin Board의 명명에 사용되고 Multi Processor Mode(MP)에서는 DBBL의 메세지 큐의 명명에 사용합니다. 지정되는 키 값은 시스템 내에서 유일한 값이어야 하며 범위는 32768 - 262143 사이의 값이어야 합니다.

- 전체 시스템에서 유일한 값으로 숫자 또는 16진수이어야 함

 

MASTER

- Binary 환경 파일인 'tuxconfig'의 원본이 존재하는 시스템의 LMID를 지정함. - 마스터로 지정된 시스템에서 시스템의 Booting과 관리를 담당하게 됨.

- MP 모델의 경우 마스터 시스템에서 DBBL processor가 실행되며 마스터 파라미터에 복수개의 LMID가 지정되고 서버 Migration이 허용된 경우 먼저 기술된 시스템이 마스터로서 작업 수행이 불가능한 오류가 발생했을 경우  두번째 기술한 LMID로 마스터 시스템을 변경하여 시스템 복구가 가능해짐

- 한 개 또는 두 개의 논리적인 머신 구분자 LMID(Logical Machine Identifier)로 주어짐

- 두 개의 구분자는 서버 이동(Server Migration)이 허용된 경우를 말함

- 임의의 30자 이내 문자 또는 16진수이어야 함

 

DOMAIN 

- 논리적인 도메인을 구분할 수 있는 구분자를 지칭함.

- 임의의 30자 이내 문자 또는 16진수이어야 함.

 

 

 

UID                     numeric_value
GID                     numeric_value
PERM                    numeric_value
MAXACCESSERS            numeric_value
MAXSERVERS              numeric_value
MAXSERVICES             numeric_value

 

 

UID GID PERM

어플리케이션에 대한 접근을 관리하기 위한 값들 

 

 

UID TUXEDO 
관리 사용자의 사용자 ID를 기술 

Tuxedo System/T 관리자의 User-ID

 

GID TUXEDO 

관리 사용자의 그룹 ID를 기술

Tuxedo System/T 관리를 위한 Group-ID

 

PERM

IPC 자원에 대한 접근을 관리하기 위한 퍼미션을 설정

Unix의 permission 기술 방식을 따름

기술하지 않을 경우 Default 값으로 '0600' 이 적용

 

 

MAXACCESSERS, MAXSERVERS, MAXSERVICES

 

- IPC 자원은 빠른 처리를 위해 할당이 되므로 적당한 크기로 설정.

    (과다하게 설정 시, 메모리 소모가 많고 너무 적게 설정 시 한계에 걸림)

 

- MAXACCESSERS : MACHINES 단위로 Tuxedo/T와 접속 가능한 프로세스의 수.

    MAXACCESSERS = MachineAP Server수  + MachineTMS

                 + MachineWSL수        + MachineWSH

                 + MachineMAXCLIENTS+ Native Client

                 + (Machinetmadmin Process개수 - 1)

    MACHINES 섹션에서 재설정할 수 있음.

    1개의 프로세스에 대해 1개의 세마포어가 사용됨.

    '0 < MAXACCESSERS < 32,768' 범위의 값 설정(기본값 50)

 

- MAXSERVERS : 시스템 전체에서 사용이 되는 서버 프로세스의 최대값

    '0 < MAXSERVERS < 8,192' 범위의 값 설정(기본값 50)

 

- MAXSERVICES : 시스템 전체에서 사용이 되는 서비스 수의 최대값

    '0 < MAXSERVICES < 32,768' 범위의 값 설정(기본값 100)

 

 

MAXGROUPS               numeric_value
MAXNETGROUPS            numeric_value
MAXMACHINES             numeric_value
MAXQUEUES               numeric_value
MAXACLGROUPS            numeric_value
MODEL                   {SHM | MP}

 

 

MAXGROUPS

  - GROUP의 최대 개수로 '100 ≤ MAXGROUPS < 32,768' 범위의 값 설정(기본값 100).

MAXNETGROUPS

  - Network Group으로 지정할 수 있는 최대 개수.

  - 1 ≤ MAXNETGROUPS < 8,192' 범위의 값 설정(기본값 8).

 

MAXMACHINES

  - Network 환경으로 구성할 UNIX Machine의 최대 개수

  - 256 ≤ MAXMACHINES < 8,191' 범위의 값 설정(기본값 256)

 

MAXQUEUES

  - Requested Message를 저장할 Message Queue의 최대 개수.

  - '1 ≤ MAXQUEUES < 8,192' 범위의 값 설정.

  - 이 값을 설정하지 않으면 MAXSERVERS의 값으로 설정됨.

 

MAXACLGROUPS

  - ACL 사용 시 설정한 ACL Group-ID의 최대 개수(1≤MAXACLGROUPS ≥16K).

 

MODEL

  - BB(Bulletin Board) 구성에 필요한 인수.

  - SHM(Shared Memory) : 전역 공유 메모리를 사용하는 단일 프로세서 상의 응용 프로그램.

    MP(Multi Process ) : 여러 프로세스, 네트워크 상에서 동작하는 응용 프로그램.

 

 


LDBAL                   {Y | N}

CMTRET                  {COMPLETE | LOGGED}

OPTIONS                 {[LAN | MIGRATE | NO_XA | NO_AA],*}

LDBAL

  - 시스템 전체의 Load Balancing 알고리즘을 적용할 것인가를 표시함.

  - 서비스가 하나 이상의 큐를 사용하는 서버들로 구성 될 경우에 사용.

    하나의 서버 혹은 MSSQ : LDBAL  N

    그외의 경우           : LDBAL  Y

  - LDBALN인 경우는 Round-Robin 방식을 채택함.

  - Load BalancingLoad Factor Message Queue에 쌓인 데이터 건수에 의해 결정.

 

CMTRET

  - tpcommit()에 대한 성격을 규정(반환값을 제어함).

  - COMPLETE : TP_CMT_COMPLETE 설정과 같음(Phase Ⅱ 후에 반환됨).

    LOGGED   : TP_CMT_LOGGED   설정과 같음(Phase Ⅰ 후에 반환됨).

  - 기본 설정값은 COMPLETE.

  - tpscmt()에 의해 재설정될 수도 있음.

 

OPTIONS

  - 시스템 구성 옵션을 설정하는데, 하나 이상의 옵션을 선택한 경우 Comma로 옵션을 구분함.

  - LAN     : 네트워크 상의 응용 프로그램.

    MIGRATE : 서버 이동이 필요함을 표시.

    NO_XA   : XA Transaction을 허용하지 않음.

    NO_AA   : 보안과 관련된 감사와 인증 관련 함수를 호출할 수 없음.

 

 

 


SYSTEM_ACCESS           {FASTPATH | PROTECTED}[,NO_OVERRIDE]

SECURITY                {NONE | APP_PW | USER_AUTH | ACL | MANDATORY_ACL}

AUTHSVC                 string_value

MAXGTT                  numeric_value

 

SYSTEM_ACCESS

  - 응용 프로그램의 클라이언트/서버로부터 공유 메모리에 있는 시스템 테이블에 대한 접근을 제한함.

  - PROTECTED   : 응용 프로그램과 같이 컴파일된 /T 라이브러리는 시스템 코드를 실행시키지 않고는

                  공유 메모리에 접근할 수 없음.

    FASTPATH    : /T 라이브러리는 항상 공유 메모리에 접근할 수 있음.

    NO_OVERRIDE : 위의 설정이 tpinit() 호출이나 SERVERS 섹션에 의해 재설정되지 않음.

  - 기본 설정값은 FASTPATH.

 

SECURITY

  - 어플리케이션을 접근을 할 수 있는 권한을 설정하여 접근을 제한함.

  - NONE          : Security를 부여하지 않음.

    APP_PW        : 어플리케이션 비밀번호에 의한 보안.

    USER_AUTH     : 사용자 인증에 의한 보안.

    ACL           : Access Control List에 의한 보안.

    MANDATORY_ACL : Mandatory ACL에 의한 보안.

 

AUTHSVC

  - 인증 서비스의 이름(APP_PW가 설정 되어 있어야 함)

 

MAXGTT

  - 하나의 머신에서 동시에 허용되는 GTRID(Global Transaction-ID)

    최대값(0≤MAXGTT≥2048, 0 : Non-Transactional system).

  - MACHINES 섹션에서 재설정할 수 있음(기본 설정값은 100).

 


MAXCONV                 numeric_value

MAXBUFTYPE              numeric_value

MAXBUFSTYPE             numeric_value

SCANUNIT                numeric_value

SANITYSCAN              numeric_value

DBBLWAIT                numeric_value

BBLQUERY                numeric_value

BLOCKTIME               numeric_value

MAXCONV

  - MachineConversational mode의 최대값.

  - '0 < MAXCONV < 32,768' 범위의 값 설정(기본 설정값 1).

 

MAXBUFTYPE, MAXBUFSTYPE

  - 응용 프로그램에서 사용하는 버퍼와 하위 버퍼 유형의 최대 개수.

  - '0 < MAXBUFTYPE(MAXBUFSTYPE) < 32,768' 범위의 값 설정.

  - 기본 설정값은 MAXBUFTYPE : 16, MAXBUFSTYPE : 32

 

SCANUNIT, SANITYSCAN, DBBLWAIT, BBLQUERY, BLOCKTIME

  - Time-out과 정기적인 검사를 위해 설정하는 시간(초 단위).

  - SCANUNIT   : 검사를 위한 시간 단위(5의 배수로 설정해야 함).

  - SANITYSCAN : 서버의 온전성을 정기적으로 검사하기 위한 시간 단위.

                 기본 설정값은 (SCANUNIT * SANITYSCAN) 120초 임.

                 최대 300 초를 넘어선 안됨.

 

- DBBLWAIT   : BBL의 응답을 얼마나 기다릴 것인가를 결정.

                 (SCANUNIT * DBBLWAIT) .

                 최대 20초 혹은 SCANUNIT

 

- BBLQUERY   : DBBLBBL이 정상적인지를 검사하는 시간 간격을 결정.

                 (SCANUNIT * BBLQUERY)

                 최대 1800.

 

- BLOCKTIME  : Blocking Message에 대한 Time-out .

                 기본 설정값은 (SCANUNIT * BLOCKTIME) 60초 이며, 최대 300 초를 넘어선 안됨.

 

 

MAXGROUPS 

설정 할 수 있는 그룹의 최대 개수를 지정함.

범위는 100-32768이며 기술하지 않을 경우 Default 값으로 100이 적용됨

 

MAXSERVERS

동시에 실행 할 수 있는 서비스의 최대 개수를 지정.

 

MODEL

운영 모델을 설정.

single 시스템 내에서의 운영일 경우에는 'SHM'로 설정하고, 네트워크 상에서 N개의 시스템에서 운영될 경우에는 'MP'로 설정

 

 

Tuxedo 시스템 구성 파일의 구성  RESOURCES 섹션(SHM)


*RESOURCES

IPCKEY              98665

MASTER              UCLICK

DOMAINID            EDUDOMAIN

UID                 108

GID                 100

PERM                0666

MAXACCESSERS        50

MAXSERVERS          500

MAXSERVICES         1000

MAXGROUPS           100

MAXNETGROUPS        8

MAXMACHINES         256

MAXQUEUES           500

MAXACLGROUPS        16384

MODEL               SHM

LDBAL               Y

CMTRET              COMPLETE

SYSTEM_ACCESS       FASTPATH

MAXGTT              2048

MAXCONV             1

MAXBUFTYPE          16

MAXBUFSTYPE         32

SCANUNIT            10

SANITYSCAN          60

DBBLWAIT            2

BBLQUERY            60

BLOCKTIME           30

NOTIFY              DIPIN

USIGNAL             SIGUSR2

 

Tuxedo 시스템 구성 파일의 구성 RESOURCES 섹션(MP)


*RESOURCES

IPCKEY              98665

MASTER              UCLICK1,UCLICK2

DOMAINID            EDUDOMAIN

UID                 105

GID                 104

PERM                0660

MAXACCESSERS        1000

MAXSERVERS          200

MAXSERVICES         1000

MAXGROUPS           100

MAXNETGROUPS        8

MAXMACHINES         256

MAXQUEUES           200

MAXACLGROUPS        16384

MODEL               MP

LDBAL               Y

CMTRET              COMPLETE

OPTIONS             MIGRATE,LAN

SYSTEM_ACCESS       FASTPATH

MAXGTT              800

MAXCONV             1

MAXBUFTYPE          16

MAXBUFSTYPE         32

SCANUNIT            10

SANITYSCAN          12

DBBLWAIT            2

BBLQUERY            30

BLOCKTIME           30

NOTIFY              DIPIN

USIGNAL             SIGUSR2

MACHINES Section

 


uname LMID = string_value

TUXCONFIG = string_value

TUXDIR = string_value

APPDIR = string_value

UID = number

GID = number

PERM = number

 

uname LMID

  - uname는 *MACHINES 섹션의 맨 앞에 존재.

  - 물리적인 프로세스의 이름을 나타냄("uname -n" 명령에서 반환되는 값).

  - "hostname"반환값과 "uname -n" 명령의 반환값은 동일하여야 함.

  - LMID의 값은 물리적인 프로세서에 대한 논리적인 머신 이름.

    Alpha-numeric 값이며, *MACHINES 섹션 내에서 유일한 값이어야 함.

 

TUXCONFIG

  - 현 프로세스에서의 바이너리로 된 구성 파일을 나타냄.

  - 64 Byte 까지 가능.

 

TUXDIR, APPDIR

  - TUXDIR : Tuxedo 서버 모듈이 존재하는 디렉토리를 나타냄.

  - APPDIR : 서버 어플리케이션이 존재하는 디렉토리를 나타냄.

 

UID, GID, PERM

  - 응용 프로그램에 대한 접근을 관리하기 위한 값들.

  - UID : Tuxedo System/T 관리자의 User-ID.

  - GID : Tuxedo System/T 관리를 위한 Group-ID.

  - UID, GID의 기본 설정값은 tmloadcf 명령을 사용하는 User-ID이다.

  - PERM : Tuxedo IPC 자원에 대한 접근을 관리함(0111 ~ 0777).

           (기본 설정값은 0666)

 

 


MAXACCESSERS = number

MAXWSCLIENTS = number

MAXCONV = number

MAXGTT = number

MAXACCESSERS

  - IPC 자원은 빠른 처리를 위해 할당이 되므로 적당한 크기로 설정.

    (과다하게 설정 시, 메모리 소모가 많고 너무 적게 설정 시 한계에 걸림).

  - MAXACCESSERS  : MACHINES 단위로 Tuxedo/T와 접속 가능한 프로세스의 수.

    MAXACCESSERS = MachineAP Server수  + MachineTMS

                 + MachineWSL수        + MachineWSH

                 + MachineMAXCLIENTS+ Native Client

                 + (Machinetmadmin Process개수 - 1).

    1개의 프로세스에 대해 1개의 세마포어가 사용됨.

    '0 < MAXACCESSERS < 32,768' 범위의 값 설정(기본값 50).

 

MAXWSCLIENTS

  - Machine에 접속할 수 있는 최대 /WS 클라이언트의 수.

  - 정의된 값보다 많은 클라이언트가 접속을 시도할 경우 오류 발생.

  - '0 ≤MAXWSCLIENTS ≤32,768' 범위의 값 설정(기본 설정값은 0).

 

MAXCONV

  - MachineConversational mode의 최대값.

  - '0 < MAXCONV < 32,768' 범위의 값 설정(기본 설정값 1).

 

MAXGTT

  - 하나의 머신에서 동시에 허용되는 GTRID(Global Transaction-ID)의 최대값.

  - '0≤MAXGTT≥2048' 범위의 값 설정(기본 설정값은 100).

  - 0 : Non-Transactional system.

 

 

 


TYPE = string_value

CMPLIMIT = string_value1[,string_value2]

NETLOAD = numeric_value

SPINCOUNT = numeric_value

 

TYPE

  - 데이터의 표현 방식이 다른 Machine을 구분하기 위한 구분자.

  - 30 Byte 까지 가능.

  - TYPE 항이 같으면 같은 Machine으로 취급하여 데이터 교환시 Encode/Decode를 위한 루틴을 호출하지 않음.

  - 네트워크로 연결된 머신들이 이기종일 때 설정.

 

CMPLIMIT

  - 데이터 압축을 적용시키는 데이터의 최소 길이.

  - 설정된 값보다 큰 데이터를 전송할 경우에는 데이터를 압축하여 전송함.

  - '<Remote Machine 데이터 압축한계>,<Local Machine 데이터 압축한계>'

  - 일반적으로 Local Machine 내에는 압축을 적용하지 않는 것이 빨리 데이터를 전송함.

  - MAXLONG은 데이터를 압축을 행하지 않음(기본 설정값은 "MAXLONG,MAXLONG"

 

NETLOAD

  - 분산 네트워크 환경에서 Machine간의 부하 분산을 위해 설정.

  - '0 ≤NETLOAD ≤32,768' 범위의 값 설정(기본 설정값 0).

 

SPINCOUNT

  - 서버 프로그램이 IPC 자원에 접근하고자 할 경우에 해당 자원을 다른 머신에서 사용하고 있어서 대기해야

    할 경우에 대기 상태로 들어가기 전에 재 시도할 횟수를 지정.

  - 해당 머신의 CPU가 하나라면 '0'로 설정하여 바로 대기 상태로 들어가도록 하여 이전에 그 자원을 사용하던

    프로세스가 CPU를 사용할 수 있도록 해주고, 2개 이상의 CPU를 갖는 머신이라면 '0'보다 큰 값을 설정.

 


TLOGDEVICE = string_value

TLOGNAME = string_value

TLOGSIZE = size

ULOGPFX = string_value

ENVFILE = string_value

TLOGDEVICE

  - TLOG를 포함하는 Tuxedo 파일 시스템의 이름.

  - 이 값이 없으면 TLOG가 없는 것으로 간주.

  - 최대 스트링의 길이 64 Byte 까지 가능.

 

TLOGNAME

  - 분산 네트워크 환경 하에서 각 머신의 트랜잭션 로그의 이름.

  - 기본 설정값은 TLOG.

 

TLOGSIZE

  - 물리적 페이지의 TLOG 크기.

  - '0 ≤NETLOAD ≤2,048' 범위의 값 설정(기본 설정값 100).

  - 일반적으로 MAXGTT설정값과 일치.

 

ULOGPFX

  - TPESYSTEM 코드에서 반환하는 모든 ATMI 에러를 설명하는 에러 로그 파일의 이름.

  - 기본설정은 APPDIR"ULOG.mmddyy"로 생김.

 

ENVFILE

  - System/T에 의해 기동이 되는 프로세스에 대한 환경변수 설정을 위한 파일.

  - TUXDIR, APPDIR 환경변수는 미리 설정이 됨.

  - FIELDTBLS, FLDTBLDIR 등의 환경변수가 설정이 됨.

  - 모든 환경변수는 Hard Coded 되어야 함(FLDTBLDIR=$APPDIR은 불가).

 

 

 

LMID : Physical 시스템의 논리적 시스템 이름을 지정합니다.

 

TUXDIR : TUXEDO의 홈 디렉토리를 지정합니다.

 

TUXCONFIG : 바이너리 환경 파일인 'tuxconfig'의 위치를 지정합니다.

 

APPDIR : 실행 가능한 서버의 바이너리 파일의 디렉토리를 지정합니다.

 

TLOGDEVICE : TLOG 파일의 위치를 지정합니다.

 

ULOGPFX :  사용자 로그 파일의 디렉토리를 지정합니다. 위 나열한 Parameter중 TLOGDEVICE 까지는 반드시 기술해야하며, 나머지 Parameter들은 기술하지 않을 경우 Default값이 설정 됩니다.

 

 

Tuxedo 시스템 구성 파일의 구성 MACHINES 섹션(SHM)

*MACHINES

black        LMID=UCLICK

             TUXCONFIG="/tux81/env/tuxconfig"

             TUXDIR="/tux81"

             APPDIR="/tux81/apps"

             MAXACCESSERS=500

             MAXWSCLIENTS=120

             MAXCONV=1

             MAXGTT=2048

             TYPE=INTEL

             CMPLIMIT="MAXLONG,MAXLONG"

             NETLOAD=0

             SPINCOUNT=200

             TLOGDEVICE="/tux81/env/TLOG"

             TLOGNAME="TLOG"

             TLOGSIZE=2048

             ULOGPFX="/tux81/log/ULOG"

             ENVFILE="/tux81/env/tux.env"

             MAXACLCACHE=100

 

 

Tuxedo 시스템 구성 파일의 구성 MACHINES 섹션(MP)

*MACHINES
black  LMID=UCLICK1
       TUXCONFIG="/tux81/env/tuxconfig"
       TUXDIR="/tux81"
       APPDIR="/ccbs2/tux/bin"
       MAXWSCLIENTS=400
       CMPLIMIT="4096,MAXLONG"
       NETLOAD=30000
       SPINCOUNT=100
       TLOGDEVICE="/tux81/env/TLOG"
       TLOGNAME="TLOG"
       TLOGSIZE=800
       ULOGPFX="/tux81/log/ULOG"
       MAXACLCACHE=100

white  LMID=UCLICK2
       TUXCONFIG="/tux81/env/tuxconfig"
       TUXDIR="/tux81"
       APPDIR="/ccbs2/tux/bin"
       MAXWSCLIENTS=400
       CMPLIMIT="4096,MAXLONG"
       NETLOAD=30000
       SPINCOUNT=100
       TLOGDEVICE="/tux81/env/TLOG"
       TLOGNAME="TLOG"
       TLOGSIZE=800
       ULOGPFX="/tux81/log/ULOG"
       MAXACLCACHE=100

 

아래 처럼 가능.

*MACHINES
DEFAULT:
             TUXCONFIG="/tux81/env/tuxconfig"
             TUXDIR="/tux81"
             APPDIR="/ccbs2/tux/bin"
             MAXWSCLIENTS=400
             CMPLIMIT="4096,MAXLONG"
             NETLOAD=30000
             SPINCOUNT=100
             TLOGDEVICE="/tux81/env/TLOG"
             TLOGNAME="TLOG"
             TLOGSIZE=800
             ULOGPFX="/tux81/log/ULOG"
             MAXACLCACHE=100

black        LMID=UCLICK1
white        LMID=UCLICK2

 

 

GROUPS Section

 

 

  • 서버 그룹에 대한 정보를 기술하며, 하나의 시스템에 대해 적어도 한 개 이상의 그룹이 정의되어야 합니다.
  • 트랜잭션 모드, 분산 환경이 아닌 경우에는 그룹이름과 그룹번호, LMID만을 사용하여 정의됩니다.     
Ex) Group1 GRPNO=1 LMID=SITE1

  • Transaction Mode일 경우에는 다음과 같은 파라미터가 추가 됩니다. 
-TMSNAME : 트랜잭션 관리자 서버의 실행 파일 이름
-TMSCOUNT : 트랙잭션 관리 서버의 갯수 (Default : 3) 
-OPNEINFO, CLOSEINFO : 트랜잭션 관리자를 시작하거나 종료하기 위한 정보를 기술합니다.  

 

Ex) Oracle의 경우 $TUXDIR/udataobj/RM 파일 내에 다음과 같이 지정된 경우 

Oracle_XA:xaosw:/work/2/ora73/app/orcle/product/7.3.2/lib/libclntsh.sl -lcl -lm 
OPENINFO="Oracle_XA:Oracle_XA+ACC=P/piper/piper+SesTm=60"

Oracle_XA  : RM 파일 내에 첫번째 필드에 정의된 이름 
P/piper/piper : Oracle 사용자명, 패스워드가 'piper', 'piper' 일 경우 
SesTm=60 : Session의 Timeout을 60초로 설정 

 

 

 

 

NETWORKS Section 

 

 

 

분산 Network 환경에서 Network에 관련된 정보를 기술

 

 

Syntax) LMID NADDR = "networtkaddress" NLSADDR="networkaddress"

 

  • LMID : MACHINE Section 내에 설정한 논리적 시스템 명

 

  • NADDR : 각 시스템의 BRIDGE processor에서 통신을 위한 값으로 유이하게 지정합니다. 
TCP/IP의 경우 : NADDR = "0x0002xxxxyyyyyyyy" 
0002 : INET Address/Provider Family 
xxxx : Port Number 
yyyyyyyy : Network Address

 

 

  • BRIDGE : Bridge Processor에서 정보를 보내기 위해 사용하는 디바이스를 나타냅니다.

 

  • NLSADDR : system/T 가 최초 기동할 때 사용하는 Listener의 주소로써 Listener는 이 주소로 Message를 받고 TUXEDO / Agent Processor(tagent)를 기동 시킵니다. 값을 지정하는 방식은 NADDR의 설정 방식과 동일합니다.

 

  • TUXEDO 시스템을 기동 시키기 전에 tlisten Processor를 실행시켜야 합니다.

 

 

SERVERS Section 

 

TUXEDO 시스템에서 수행될 모든 서버에 대한 정보를 기술

 

Syntax) Server Name SRVGRP=GROUPNAME SRVID=서버 ID Number 

Ex) AUTH_STRING SRVGRP=GROUP1 SRVID=301

 

 

Server Name : 수행될 서버의 실행 파일 명 

SRVGRP : 서버가 속할 그룹명(GROUP Section에서 정의)

SRVID : 서버의 ID Number로 유일한 숫자 값이어야 합니다.

n CLOPT : 커맨드라인 상의 Option을 넘기기 위한 매개 변수 정의 

 

 

 

SERVICES Section

 

 

 

TUXEDO 시스템에서 수행될 모든 서비스에 대한 정보를 기술

 

Syntax) Service Name LOAD=Load value PRIO=Priority Value

Ex) MARKETRANS LOAD=50 PRIO=10

 

  • n Service Name : 서비스 명을 기술

 

  • n LOAD : Load Balancing을 위한 값으로, RESOURCES Section에 LDBAL의 값을 Y로 설정할 경우 해당 서비스가 실행될 때 마다 주어진 값 만큼 증가하게 되며, 이 값을 기반으로 해당 서비스의 로드를 계산하여 밸런싱을 하게 됩니다.

 

  • n PRIO : 서버의 Message Queue 에서 값을 꺼내는 순서를 결정 합니다.  즉, 클라이언트의 요청 중 우선 순위를 부여하게 됩니다. 이 값이 크면 클 수록 중요도가 높은 것을 의미하며, 해당 서버의 Message Queue에 N개의 요청이 도착하여 대기하고 있다면 그중 가장 PRIO 값이 높은 요청이 먼저 꺼내지고 수행됩니다.

 

 

 

 

 

 

 

ROUTING Section 

 

 

NETGROUP Section 

 

'Middleware > Tuxedo' 카테고리의 다른 글

[Tuxedo] UBBCONFIG 환경 파일  (0) 2022.08.09
[Tuxedo] SHM 모델 환경파일 sample  (0) 2022.08.08
[Tuxedo] 3-Tier & SHM 모델  (0) 2022.08.08
[Tuxedo] Oracle TUXEDO 기능  (0) 2022.08.08
[Tuxedo] Oracle TUXEDO 개요  (0) 2022.08.08

[Tuxedo] 3-Tier & SHM 모델

2022. 8. 8. 11:12

TUXEDO의 서비스 처리 절차 

 

① 클라이언트에서 BBL 프로세서를 통하여 공유 메모리내의 구조 정보를 참조한다.

② 클라이언트는 접속 정보를 참조하여 서버에 요청을 보낸다. 이때 클라이언트의 접속 인터페이스 방식(ESQL, XA)에 따라 리소스 관리자가 작업 수행에 관여 할 수도 있다.

③ 클라이언트의 요청을 접수한 서버는 해당하는 서비스를 호출, 수행한 후 결과를 클라이언트로 보낸다.

 

 

TUXEDO의 3tier / 서비스 처리 절차


TUXEDO를 이용한 3-Tier 시스템의 구성 예

 

Presentation Rules, Business Rules, Data Access Rules 이 클라이언트에 집중되어 있는 클라이언트/서버 시스템과 달리 클라이언트는 입출력을 위한 Presentation 만을 담당하고 나머지 기능들은 Server에 이관함으로써, 작업 분담의 효율과 Business Rules의 일괄적인 관리를 통한 유지/보수의 편리성을 가질 수 있습니다.

 

3-Tier


SHM 모델 ?

 

단일 시스템에서 1개의 TUXEDO System/T 만이 운영되는 모델

 

 

SHM 모델의 프로세스 구성도 

 

클라이언트는 TUXEDO 클라이언트 ATMI를 이용하여 서버의 System/T와 접속을 한다.
Listener(WSL)는 클라이언트의 요청을 받아 연결시 새로운 인스턴스(WSH)를 생성하여 클라이언트와의 연결을 유지한다.

 

SHM 모델 프로세스 (1 model - 1 Instance)

 

운영 절차 

 

SHM 운영 절차

1 . 환경 변수 설정   

TUXEDO 사용을 위한 환경변수들을 설정합니다.

설정되는 환경변수(TUXDIR,APPDIR,TUXCONFIG...)들은 환경파일 내에서 MACHINES Section 내에 설정하는 환경과 동일해야 하며, 절대경로를 지정해야 합니다.

일반적으로 TUXEDO 관리 사용자의 '.profile' 내에 설정을 하여 사용하게 됩니다.

 

TUXDIR : TUXEDO 홈 디렉토리를 지정

APPDIR : 실행가능한 서버 바이너리 파일의 디렉토리를 지정

TUXCONFIG : 바이너리 환경 파일의 위치를 지정

TLOGDEVICE : TLOG 파일의 위치를 지정

LD_LIBRARY_PATH : TUXEDO 서버를 컴파일할 경우(buildserver) 링크될 라이브러리 패스를 지정

ULOGPFX : 사용자 로그 파일의 디렉토리를 지정

 

각 환경 변수들의 값은 이후 작업인 환경 파일 설정시 MACHINE Section내에 설정값과 동일해야 합니다.

#TUXEDO Environment Setup export HOME=/work1/espuser/piper export TUXDIR=/work1/tux6 export ROOTDIR=/work1/tux6 export APPDIR=$HOME/tuxsample/server export TUXCONFIG=$HOME/tuxcfg/cfg/tuxconfig export TLOGDEVICE=/work1/espuser/genie/tux/sample/TLOG export LD_LIBRARY_PATH=/work2/ora73/app/oracle/product/7.3.2/lib export LD_LIBRARY_PATH=/work1/tux6/lib:$LD_LIBRARY_PATH export SHLIB_PATH=/work1/tux6/lib export ULOGPFX=$HOME/tuxcfg/log/ULOG

 

 

2. ASCII 환경파일 작성 & 운영 전반에 대한 제반 환경을 설정합니다.

 

- 환경 파일 설정 참조

 

3. tmloadcf() 명령을 이용하여 ASCII 환경파일을 Binary로 변환

 

- Binary로 변환된 환경들은 TUXEDO 기동시 공유 메모리에 일정한 구조로 상주하게 되며 BBL processor는 이 정보를 참조, 변경 함으로써 TUXEDO 운영 전반에 대한 상태를 저장 및 관리하게 됩니다.

-Syntax) tmloadcf() -y ubbsample & 변환된 Binary 파일의 이름은 'tuxconfig'가 되며 이는 반드시 환경 변수 TUXCONFIG에 지정된 경로에 위치해야 합니다.

 

4. Resource 관리자 실행 파일 생성(optional) & Application에서 데이터베이스를 사용할 경우 해당 데이터베이스에 맞는 TMS(Transaction Manager Server)가 로드할 리소스 관리자 파일을 생성합니다.

 

- 생성된 리소스 관리자는 System/T 혹은 System/D와 함께 분산 트랜잭션을 처리합니다.- 리소스 관리자 생성시 TUXDIR/udataobj/RM 파일 내에 생성하고자 하는 리소스 관리자의 정보가 지정되어 있어야 합니다.

Syntax) buildtms -o r_name -r rm_name

 

-o : 생성될 리소스 관리자의 파일 이름 

-r : 생성하고자 하는 리소스 관리자의 종류 (RM 파일내에 기술)

 

5. TLOG 디바이스 생성 & TMS가 트랜잭션 관리를 위해 사용할 TLOG 디바이스를 생성합니다. (tmadmin 참조...)

 

- TLOG 파일을 특정 시스템에 할당합니다.

 

Syntax) /work1/espuser/tux63> tmadmin > crdl -b 500 -z
/work1/espuser/tux63/cfg/TLOG Device created :
/work1/espuser/tux63/cfg/TLOG > crlog -m SITE crlog successfully completed. > quit

 

6. tmboot() 명령을 이용하여 System/T, 리소스 관리자, 서버 등을 기동합니다.

 

7. tmshutdown() 명령을 이용하여 TUXEDO를 종료합니다.

 

 

 

 

 

 

 

 

 

 

 

 

MP 모델은 추후에 포스팅

[Tuxedo] Oracle TUXEDO 기능

2022. 8. 8. 10:40

TUXEDO 주요 기능 

 

성능 측면

- 서버의 부하 조절(Load Balancing) 및 서비스의 우선 순위(Priority) 기능 

- 사용자 수 증가 시에 Funneling 시킴으로써 H/W 또는 DB 리소스의 효율적인 사용이 가능

 

확장성 측면 

- 이 기종 H/W 및 이 기종 DB에 대한 전역 트랜잭션 보장

- X/OPEN의 DTP 모델을 지원함으로써 확장성 보장

 

데이터 정합성 측면 

- 2단계 commit을 통한 분산 데이터에 대한 정합성 보장 

 

관리 측면

- Domain 관리로 지역별, 기능별 응용 프로그램 구성 및 통합의 편리성

- 응용(서버) 프로세서들을 중앙에서 관리 및 통제 가능 

- 비정상 종료된 프로세스에 대해 자동으로 복구 시킴

- 트랜잭션 report 출력 기능(서비스 수행 시간 및 수행 건 수 출력 됨)

 

가용성 측면 

- X/OPEN 표준 환경 지원 

 

개발 향상성 측면 

- 명명 서비스를 제공함으로써 서비스명 정보로 해당 서비스 호출 가능

- 입력된 데이터 값에 따른 경로 (Routing) 지원 

- OS에 동일한 API를 제공함으로써 프로그램 이식성 보장 

 

보안 측면 

- Security 관리를 위한 ACL(Access Control List) 기능 제공 

- 전송되는 메세지에 대한 암호/복호화 지원 

 

 

 


네이밍 서비스 기능 

 

BEA TUXEDO 시스템의 기본적인 기능으로 클라이언트가 서비스를 호출할 경우  서비스가 위치한 시스템과 서비스가 속한 실행 파일을 찾는 기능입니다. 사용 가능 시스템과 사용 가능 프로그램을 위한 테이블을 유지하고 관리 함으로써 클라이언트는 서비스에 대한 정보를 유지할 필요 없이 호출할 서비스를 선택하고 파라미터만 넘겨 줌으로써 작업을 수행할 수 있습니다.

 

네이밍 서비스

 

 

 

 

서비스 큐잉 기능

 

클라이언트에서 특정 서비스를 호출하게 되면 어플리케이션 서버별로 해당 작업을 큐에 보관한다. 단 처리 중인 작업은 종료시 까지 다른 작업에 양보 하지 않습니다. 큐잉된 길이에 따라 특정 서버에 집중 정도를 판단 할 수 있으므로 부하 분산 처리가 가능합니다.

 

Sevice Queueing

 

 

로드밸런싱 기능

 

 

큐잉된 큐의 길이에 따라 특정 서버에 작업이 집중 정도를 판단 할 수 있으므로 부하 분산 처리가 가능합니다.

 

Load Balancing

 

분산 트랜잭션 기능

 

 

서로 다른 N개의 데이터베이스에 대한 트랜잭션 작업을 하나의 트랜잭션으로 묶어 처리 할 수 있는 데이타 무결성을 보장합니다

 

 

장애 발생시 대처 방안 

 

 장애의 유형은 예외 상황에 의한 프로세스 장애와, TUXEDO 시스템 자체 장애 그리고 하드웨어 시스템 장애로 나눌 수 있습니다. 하드웨어 시스템 장애는 하드웨어 벤더에서 제공하는 Safe Guard나 Clustering 시스템과 함께 대처하고 나머지 장애는 TUXEDO 프로세스 감시나 TP-Monitor를 통해 장애 여부를 파악해 적절한 조치를 취합니다.

 

 프로세스 장애 - 프로그램 설계상의 예외 데이타 입력 등의 이유로 어플리케이션 서버가 비정상 종료 되었을 경우에는 환경 파일 내에 해당 서버의 Booting Option에 Restart Option을 지정함으로써 일정 시간 후에 자동적으로 해당 서버를 재기동 시킬 수 있습니다.

 

TUXEDO 시스템 장애 - TUXEDO 시스템 자체 장애에 대해서는 MP 모델의 경우 백업 시스템을 지정하여 TUXEDO 제어를 장애가 발생한 시스템에서 백업 시스템으로 넘긴 후 해당 복구 작업을 수행한 후 다시 마스터 시스템으로 제어를 넘길 수 있습니다.

 

하드웨어 시스템 장애 - Disk Array의 Crash 등의 하드웨어 장애는 해당 하드웨어 벤더에서 제공하는 소프트웨어를 이용합니다.

 

[Tuxedo] Oracle TUXEDO 개요

2022. 8. 8. 10:26

 

Transactions for Unix, Extended Distributed Operation의 약자인 TUXEDO

 

 

1. TUXEDO는 프로그래밍 인터페이스, 실행 시간(Run-Time) 라이브러리와 관련 유틸리티 등의 모듈을 제공하고 플랫폼이 다른 분산 서비스 환경에서 안정적인 관리를 할 수 있는 환경을 제공

 

2. TUXEDO의 프로세스 모델에서 일반적인 데스크탑 어플리케이션인 client는 TUXEDO서버 Domain에 서비스 호출

 

3. DBMS에서 데이터의 무결성을 위해 가장 중요한 요소로 작용하는 데이터의 변경을 가하는 함수가 트랜잭션 범위 내에서 이루어질 경우 DBMS와 공조해서 트랜잭션 관리가 가능.

 

 

BEA TUXEDO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts