검색결과 리스트
(R)eference에 해당되는 글 14건
- 2013.02.26 linux bonding (네트워크 2개를 1개의 인터페이스로 구성)
- 2012.08.29 리눅스에서 데몬 자동 구동 또는 구동 되지 않도록 수정
- 2012.03.06 CentOS 6.2 Kernel Source 설치하기
- 2011.01.05 2011년 새해 달라진 교통 법규 및 범칙금
- 2010.07.16 자동차 보럼료에 대해 자세히 알자
- 2009.07.06 [펌] 리눅스서버 보안관리 1
- 2009.07.06 [펌] 턱시도(TUXEDO) 오류 정리 1
- 2008.11.18 find에서 atime,mtime,ctime...
- 2008.11.06 Mathematics : C
- 2008.11.06 극좌표와 극방정식
글
시골청년 이 작성.
현재 거의 모든 서버들은 랜카드가 1G를 지원한다 [Bonding 모드 종류] 0 : balance-round robine ( 2개의 NIC를 통한 분배 + Fault Tolerance ) 1 : active-standby ( Active상태의 NIC에 문제 발생시 Fault Tolerance ) 2 : balance-xor ( 0과 비슷하지만 xor연산을 이용한 목적지 Mac과 근원지 Mac을 이용한 분배 + Fault tolerance) 3 : broadcast ( 2개의 NIC에 어떤 규칙 없이 데이터 통신 + Fault Tolerace) 4 : 802.3ad (link aggregation) – switch 에 aggregation 그룹생성이 필요 eth0 Link encap:Ethernet HWaddr 00:16:17:A2:F8:EB eth1 Link encap:Ethernet HWaddr 00:16:17:A2:F8:EB lo Link encap:Local Loopback Bonding Mode: IEEE 802.3ad Dynamic link aggregation 802.3ad info Slave Interface: eth0
하지만 백업서버나 대역폭을 요구하는 서버의 경우 1G 이상이 필요한데
그렇다고 10G 랜카드를 살수 없는것이고. 이럴때 사용하는 기능이 bonding 기술이다
리눅스에서 간단하게 구성할수 있다
환경 : CENTOS
1. bond1 인터페이스 추가
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
IPADDR=10.10.10.66
NETMASK=255.255.255.0
BROADCAST=10.10.10.255
GATEWAY=10.10.10.1
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=4 miimon=100"
저장
위에 옵션에서 mode 부분은 bond의 모드 부분이다
2. 실제 인터페이스 랜카드 eth0 / eth1 내용 수정
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
SLAVE=yes
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
SLAVE=yes
네트워크 환경 설정 파일 내용 추가
[root@localhost ~]# vi /etc/sysconfig/network
추가
GATEDEV=bond0
3. 모듈 구성
[root@localhost ~]# vi /etc/modprobe.conf
추가
alias bond0 bonding
options bond0 miimon=100
[root@localhost ~]# modprobe bonding
[root@localhost ~]# lsmod | grep bonding
bonding 126649 0
ipv6 432161 26 bonding,ip6t_REJECT
4. 네트워크 재시작 ( 여기서 네트워크를 재시작시 네트워크가 끊기는 현상이 있으니 로컬에서 작업하는것을 추천)
[root@localhost ~]# service network restart
5. 인터페이스 확인
bond0 Link encap:Ethernet HWaddr 00:16:17:A2:F8:EB
inet addr:10.10.10.1 Bcast:10.10.10.255 Mask:255.255.255.0
inet6 addr: fe80::216:17ff:fea2:f8eb/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:172575 errors:0 dropped:0 overruns:0 frame:0
TX packets:239301 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:16180948 (15.4 MiB) TX bytes:28025443 (26.7 MiB)
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:164853 errors:0 dropped:0 overruns:0 frame:0
TX packets:57261 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:15280216 (14.5 MiB) TX bytes:7327202 (6.9 MiB)
Interrupt:169 Memory:dd100000-dd110000
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:7722 errors:0 dropped:0 overruns:0 frame:0
TX packets:182040 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:900732 (879.6 KiB) TX bytes:20698241 (19.7 MiB)
Interrupt:193 Memory:dd310000-dd320000
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:223 errors:0 dropped:0 overruns:0 frame:0
TX packets:223 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:55612 (54.3 KiB) TX bytes:55612 (54.3 KiB)
실제 인터페이스는 2개이며 가상의 bond0 이라는 인터페이스 생성되었다
bond0의 인터페이스는 master이며 실제 물리적 인터페이스는 slave로 표시가 된다
그러면 이제 bonding 이 잘되었는지 확인해 본다
[root@localhost ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.4.0 (October 7, 2008)
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
LACP rate: slow
Active Aggregator Info:
Aggregator ID: 3
Number of ports: 2
Actor Key: 17
Partner Key: 1
Partner Mac Address: 28:c0:da:37:69:00
MII Status: up
Link Failure Count: 3
Permanent HW addr: 00:16:17:a2:f8:eb
Aggregator ID: 3
Slave Interface: eth1
MII Status: up
Link Failure Count: 4
Permanent HW addr: 00:16:17:a2:f8:ea
Aggregator ID: 3
위에서 bond모드를 4로 지정을 해서 802.3ad가 나온다 ( 상단에서 LACP기능을 구현)
만약 모드를 1로 지정할 경우 Round robin으로 나올것이다
리눅스 자체 서버에서 2G로 통신이 되는지는 확인할수 가 없어 상단 LACP를 구현한
SW에서 확인
root# run show interfaces ae0
Physical interface: ae0, Enabled, Physical link is Up
Interface index: 154, SNMP ifIndex: 162
Link-level type: Ethernet, MTU: 1514, Speed: 2000mbps, BPDU Error: None, MAC-REWRITE Error: None, Loopback: Disabled,
설정
트랙백
댓글
글
cd etc/rc.d/init.d
chkconfig --level=2345 iptables off
- rc2.d, rc3.d, rc4.d, rc5.d에 iptables관련 스크립트가 K로 시작하게 변경됨
runlevel 2,3,4,5에서 iptables가 구동 되지 않는다.
chkconfig --level=2345 iptables on
- rc2.d, rc3.d, rc4.d, rc5.d에 iptables관련 스크립트가 S로 시작하게 변경됨
runlevel 2,3,4,5에서 iptables가 구동된다.
설정
트랙백
댓글
글
- 모듈 컴파일을 위한 kernel source 가져오기
1. root 계정에서 yum으로 kernel-devel을 설치 하면 됨
yum install kernel-devel
2. 끝. ( 더이상 바라지 마세요. /usr/src/kernel/{커널버전} 에 설치 된겁니다. )
- 어떠한 이유가 되었든 (공부를 위해서...) 전체 kernel source가 필요할때,
1. root 계정에서 아래 명령들 yum으로 설치
yum install rpm-build redhat-rpm-config unifdef
2. 일반 계정에서 아래 명령어 실행 (root만 아니면 됩니다)
[user@host]$ mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} [user@host]$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
[user@host]$ rpm -i http://vault.centos.org/6.2/updates/Source/SPackages/kernel-2.6.32-220.4.1.el6.src.rpm 2>&1 | grep -v mockb
-- 위에 kernel-2.6.32-220.4.1.el6.src.rpm 부분은 설치할 kernel 버전에 맞춤
[user@host]$ cd ~/rpmbuild/SPECS [user@host SPECS]$ rpmbuild -bp --target=`uname -m` kernel-2.6.spec 2> prep-err.log | tee prep-out.log
3. 명령 실행 후 별 Action이 없으면 실패이다. prep-err.log를 확인하기 바란다. 나 같은 경우는 디펜던시가 걸려 추가로 필요한 패키지를 더 설치 하였다. 그리고 다시 2번 마지막 명령을 재실행 하여 끝냈다. 만약 정상 설치가 되었다면 4번으로...
[user@host] $ cat prep-err.log
설정
트랙백
댓글
글
원문 : http://kr.blog.yahoo.com/polinlove/178
제목 : 운전자.. 이것 모르면 반드시 후회한다.
매년 새해가 되면 달라지는 제도나 법규가 신문이나 방송뉴스를 통해 알려지고 있지만 정작 운전자들은 흘려 듣는 경우가 많다.
그것은 현재 운전을 하고 있지만 단속에 적발되지 않아서 더욱 그럴법도 한 대 정작 적발이 되고 나면 언제 법이 바꿨나요 항의하는 경우가 대부분이다.
운전자라면 누구나 관심을 가져야 하는 것이 달라지는 관련 법규정이다.
올해는 자칫 소홀히 지나치고 가다간 큰 낭패를 볼 만한 굵직한 관련법이 변경되어 운전자라면 관심을 가져야 후회하는 일이 없을 것이다.
◈ 2011년 1월 1일부터 시행되고 있는 교통법규
?
오전 8시부터 오후 8시까지 학교 주변 어린이 보호구역 내 도로에서 통행금지· 제한위반, 주·정차 위반, 속도위반, 신호·지시위반, 보행자보호의무 불이행 등의 위반시 교통범칙금이 배로 강화된 것이다.
▶ 통행금지?제한 위반의 경우
승합자동차 등은 일반도로에서 5만원이지만 보호구역내에서는 9만원이며, 승용자동차 등은 일반도로에서 4만원인 반면 보호구역에서는 8만원이며, 이륜자동차 등은 일반도로에서 3만원인 반면 보호구역에서는 6만원의 범칙금을 물게 된다.
▶주?정차위반의 경우
승합자동차등은 일반도로에서 5만원, 보호구역에서는 9만원이 적용되고, 승용자동차등은 일반도로에서는 4만원, 보호구역에서는 8만원이 적용된다. 이륜차자동차등은 일반도로에서 3만원, 보호구역에서는 6만원이 적용된다.(구체적인 내용은 아래표 참조)
《 범칙금 》(시행령 별표 7)
위 반 행 위 |
승합자동차등 |
승용자동차등 |
이륜자동차등 |
자전거등 |
||||||
일반 |
보호구역 |
일반 |
보호구역 |
일반 |
보호구역 |
일반 |
보호구역 |
|||
통행금지?제한 위반 |
5만원 |
9만원 |
4만원 |
8만원 |
3만원 |
6만원 |
2만원 |
4만원 |
||
주?정차 위반 |
5만원 |
9만원 |
4만원 |
8만원 |
3만원 |
6만원 |
2만원 |
4만원 |
||
속도위반 |
40km/h 초과 |
10만원 |
13만원 |
9만원 |
12만원 |
6만원 |
8만원 |
- |
- |
|
20~40km/h |
7만원 |
10만원 |
6만원 |
9만원 |
4만원 |
6만원 |
- |
- |
||
20km/h 이하 |
3만원 |
6만원 |
3만원 |
6만원 |
2만원 |
4만원 |
- |
- |
||
신호?지시위반 |
7만원 |
13만원 |
6만원 |
12만원 |
4만원 |
8만원 |
3만원 |
6만원 |
||
보행자보호의무 불이행 |
횡단보도 |
7만원 |
13만원 |
6만원 |
12만원 |
4만원 |
8만원 |
3만원 |
6만원 |
|
일반도로 |
5만원 |
9만원 |
4만원 |
8만원 |
3만원 |
6만원 |
2만원 |
4만원 |
《 운전면허 벌점 》(시행규칙 별표 28)
위반행위 |
일반도로 |
어린이보호구역 |
|
속도 위반 |
40km/h 초과 |
30점 |
60점 |
20~40km/h |
15점 |
30점 |
|
20km/h 이하 |
없음 |
15점 |
|
신호?지시위반 |
15점 |
30점 |
|
보행자보호의무 불이행 |
횡단보도 |
10점 |
20점 |
일반도로 |
▶ 벌점도 함께 부과
또한 단지 범칙금만 배로 증가되는 것이 아니다. 속도위반의 경우 40km/h초과시 일반도로는 30점이지만 어린이보호구역에서는 60점, 20∼40km/h인경우 일반도로는 15점이지만, 보호구역에서는 30점을 받게되며, 일반도로의 경우 20km/h이하인 경우는 벌점이 없지만 보호구역에는 15점을 받게되어 자칫 벌점초과로 면허가 정지되는 불상사를 당할 수 있다.
◈ 2011년 1월 24일부터 시행되는 교통법규
▶ 도로 외의 곳에서의 음주 · 약물운전 및 뺑소니 처벌
그동안 도로가 아닌 주자장이나 학교 경내 등에서의 음주운전이나 뺑소니를 한 경우에 형사처벌을 하지 못했으나, 오는 1월 24일부터는 처벌이 가능해져 일반도로와 마찬가지로 음주운전으로 사고를 낼 경우 징역 3년 이하의 형사처벌이 가능해졌습니다.
▶ 폭주족 처벌 강화 및 운전면허 행정처분 등
운전자에게 불안감을 조성하고 교통질서를 문란시키는 폭주족에 대한 처벌이 강화되었으며, 공동위험행위로 형사입건된 경우 운전면허에 벌점 40점을 부과하며, 구속된 경우에는 해당 운전면허를 취소하게 된다.
▶ 교통단속 회피장치 장착 차량 운전 등 처벌 강화
교통단속을 회피할 목적으로 교통단속용 장비의 기능을 방해하는 장치를 장착한 차량을 운전한 사람에 대한 처벌이 대폭 강화되어 20만원 벌금(범칙금 2만원)에서 6월이하 징역, 200만원이하의 벌금에 처해진다. 또한 이러한 장치를 제작?수입?판매한 사람도 함께 처벌된다.
◈ 2011년 3월 31일부터 시행
▶ 자동차전용차로에서의 모든 차량 全 좌석 안전띠 착용
현재 자동차전용도로는 운행속도나 사고 위험성 등이 고속도로와 비슷함에도"모든 차량"에 대해 全 좌석 안전띠 착용이 의무화 되어 있는 고속도로와 달리, 全 좌석에서 안전띠를 착용해야 하는 차량이 "고속시외버스"로 한정되어 있었으나, 오는 3월 31일부터는 자동차전용도로에서의 교통사고 피해 감소를 위해 고속도로와 같이 전 좌석 안전띠 착용 대상을 "모든 차량"으로 확대하였다.
변경된 교통법규의 시행으로 일부 운전자의 경우 벌써 범칙금을 배로 받거나 벌점을 배로 받았을 것이다. 운전자라면 몰랐다고 항변하기보다는 변경된 법규에 관심을 가지고 이를 위반하지 않도록 노력해야 할 것이다.
광주지방경찰청 홍보담당관실 전승일
설정
트랙백
댓글
글
설정
트랙백
댓글
글
* 리눅스서버 보안관리
***********************************************************
1. 중요한 시스템 파일들 퍼미션과 속성 재설정
2. 중요한 시스템파일들 별도 압축보관하기
3. 시스템디스크와 데이터디스크를 가능한 구분하라.
4. 백업데이터 자정공간을 별도의 파티션이나 별도의 디스크를 이용
5. root의 crontab에 로컬백업설정해 두기
6. /etc/xinetd.d/ 에서 불필요한 서비스 파일들 삭제
7. /etc/rc.d/init.d/에서 불필요한 초기화 파일들 삭제
8. /etc/services에서 사용하지 않는 포트정보 주석처리
9. /etc/hosts.allow, /etc/hosts.deny 파일에서 접근허용 설정
10. ssh에서 root의 원격접속 금지설정
# vi /etc/ssh/sshd_config
PermitRootLogin yes -> root 로그인 허용
PermitRootLogin no -> root 로그인 허용하지 않음
11. FTP서비스에서 root의 원격접속 금지설정
# vi proftpd.conf
RootLogin off
12. 일반사용자의 FTP접속에서 상위디렉토리 이동제한 설정하기
# vi proftpd.conf
DefaultRoot ~
DefaultRoot ~ !wheel
13. FTP 익명(anonymous) 접속금지 설정
14. su 명령어 사용제한설정 및 중요한 관리자 명령어 사용제한 설정하기
# chmod 4750 /bin/su
# chown root:wheel /bin/su
# chattr +i /bin/su
# grep wheel /etc/group
wheel:x:10:root,bible,admin
# chmod 750 /usr/sbin/useradd
# chmod 750 /usr/bin/top
# chmod 750 /sbin/fdisk
# chmod 750 /sbin/mkfs
# chmod 750 /sbin/fsck
# chown root:wheel /usr/sbin/useradd
# chown root:wheel /usr/bin/top
# chown root:wheel /sbin/fdisk
# chown root:wheel /sbin/mkfs
# chown root:wheel /sbin/fsck
# chattr +i /usr/sbin/useradd
# chattr +i /usr/bin/top
# chattr +i /sbin/fdisk
# chattr +i /sbin/mkfs
# chattr +i /sbin/fsck
15. root소유의 setuid, setgid 파일 찾아서 조치하기
# find / -user root -perm -4000 -print
16. 기본 실행되는 불필요한 프로세스를 죽이기
17. ntsysv에서 초기 실행할 서비스데몬 내리기
18. 리눅스서버 설치직후 파일시스템의 badblock 점검하기
19. 시스템 정보유출파일 삭제 및 수정하기
/etc/issue 콘솔에서 로그인 시도시에 보여줄 메시지 저장
/etc/issue.net 원격에서 로그인 시도시에 보여줄 메시지 저장
/etc/redhat-release 원격에서 로그인 시도시에 리눅스 배포판 정보를 보여주는 메시지
/etc/motd 로그인 이후에 보여줄 공지사항 저장
20. rootkit점검을 위한 chkrootkit 설치 및 실행결과 확인
21. 파일 무결성을 위한 tripwire 설치 및 초기화 설정
22. /etc/sysctl.conf파일에서 커널 옵션값 설정하기
23. 로그보안을 위한 원격로그서버 설정
24. /etc/rc.d/rc.local내에 부팅시 실행할 내용 등록
25. 서버의 정확한 시간을 위한 설정
# crontab -l | grep rdate
00 01 * * * su - root /usr/bin/rdate -s time.bora.net && /sbin/clock -w
26. 아파치 설정파일(httpd.conf) 보안설정하기
- 4XXX : setuid 비트를 의미함
- 2XXX : setgid 비트를 의미함
- 1XXX : sticky-bit 비트를 의미함
- 지정된 일자 이후에 변경된 모든 파일 찾기
# find / -used 2 -exec ls -l {} \;
-> 2일전부터 현재까지 변경된 적이 있는 파일들을 검색
- 지정된 파일보다 이후에 생성된 파일 찾기
# find / -newer /root/file1.txt -exec ls -l {} \;
-> /root/file1.txt라는 파일이 생성된 날짜 이후에 생성된 파일들만을 검색
- root 소유의 setuid파일 찾기
# find / -user root -perm -000 -print
-> 소유자가 root이고 setuid가 설정되어 있는 파일을 검색
# find / -type f \( -perm -004000 -o -perm -002000 \) -exec ls -lg {}\;
-> 퍼미션에 setuid가 있거나 setgid가 있는 파일들을 모두 검색
- 서버내의 백도어파일 찾기
# find /dev -type f -exec ls -l {} \;
-> /dev 내에 존재하는 파이들 중 일반적인 보통파일을 검색
- 서버내부의 .rhosts 파일 찾아서 확인
# find / -name .rhosts -exec ls -l {} \;
- 서버내부에 .bash_history파일을 모두 찾아서 확인
# find / -name .bash_history -exec ls -l {} \;
-> 시스템전체를 대상으로 .bash_history파일을 찾아서 보여달라는 의미.
- 소유자가 없는 파일 또는 소유그룹이 없는 무적파일을 찾기
# find / -nouser -o -nogroup -print
-> 소유자가 없거나 소유그룹이 없는 파일을 검색한다.
chattr 사용법 : # chattr [-RV] [-v 설정버전] [+-=설정모드] 대상파일들
-R : 서브디렉토리이하까지 그 속성을 변경할 수 있다.
-V : 자세한 출력모드를 제공한다.
-v version : 지정된 파일에 버전을 설정할 수 있다.
[설정모드]
+ : 지정한 속성을 부여한다.
- : 지정한 속성을 해제한다.
= : 원래 파일이 가지고 있던 그 속성만을 유지하게 한다.
-a : 해당 파일을 추가만 할 수 있다.
-c : 이 속성이 설정된 파일은 커널에 의해 디스크상에 자동적으로 압축된 상태로 저장이 된다.
-d : 이 속성이 설정된 파일은 dump로 백업이 되지 않는다.
-i : 이 속성이 지정되어 있다면 해당파일의 변경, 삭제, 이름변경뿐 아니라 파일추가 및 리으파일도 만들수 없게 된다.
-s : 이 속성이 설정된 파일은 파일삭제가 될 경우에 해당블럭이 모두 0으로 되어버리고 디스크에 다시 쓰기가 발생하나.
-S : 이 속성이 설정된 파일은 변경이 될 경우에 디스크동기화가 일어나는 효과를 그대로 누릴 수 있다.
-u : 이 속성을 가진 파일이 삭제가 되었을 경우에는 그 내용이 저장이 되며 삭제되기 전의 데이터로 복구가 가능해진다.
lsattr 사용법 : # lsattr [-RVadv] [대상파일들]
- 파일의 삭제, 변경, 추가등을 불가능하게 하는 속성 설정
# lsattr rc.local
------------- rc.local
# chattr +i rc.local
# lsattr rc.local
----i-------- rc.local
# rm -f rc.local
rm: cannot remove `rc.local': 명령이 허용되지 않음
- 파일의 삭제, 변경, 추가 등을 불가능하게 하는 i속성 제거
# chattr -i rc.local
# lsattr rc.local
------------- rc.local
# rm -f rc.local
#
- 파일의 삭제는 불가능하지만 내용추가는 가능하도록 하는 속성 설정하기
# chattr +a messages
# lsattr messages
-----a------- messages
# rm -f messages
rm: cannot remove `messages': 명령이 허용되지 않음
# chattr -a messages
# lsattr messages
------------- messages
# rm -f messages
#
- 특정 디렉토리내의 모든 파일과 디렉토리에 대하여 한번에 속성부여하고 확인하기
# chattr -R +i directory
- 특정 디렉토리내의 모든 파일과 디렉토리에 부여되어 있는 속성을 동시에 제거하기
# chattr -R -i directory
사용형식 : nmap [스캔타입] [옵션] <대상서버[네트워크|IP주소]>
스캔옵션
-sS : TCP SYN 스캔
-sT : TCP 연결을 스캔
-sF -sX -sN : Stealth FIN, Xmas Tree, 또는 NUll 스캔모드
-sP : Ping 스캐닝
-sU : UDP 스캐닝
-sO : IP 프로토ㅗㄹ 스캔
-sI <zombi host[:probeport]> : Idle scan
-sA : ACK 스캔
-sW : Window 스캔
-sR : RPC 스캔
-sL : LIST 스캔
- nmap 설치
# wget http://download.insecure.org/nmap/dist/nmap-3.75.tgz
# tar xvf nmap-3.75.tgz
# cd nmap-3.75
# ./configure
# make
# make install
- nmap으로 로컬서버 스캔하기
# nmap -sT -O -v localhost
-sT : TCP conect에 대한 스캔을 한다.
-O : TCP/IP fingerprinting을 통하여 지정한 서버를 확인한다.
-v : 스캔별과를 자세히 보여준다.
- 원격지의 특정 서버에 대한 스캔작업하기
# nmap -sT -O -v 192.168.0.101
- 원격서버의 UPD 사용포트 스캔작업하기
# nmap -sU -O -v 192.168.0.101
# grep PermitRootLogin /etc/ssh/sshd_config
PermitRootLogin no
# grep RootLogin /etc/proftpd/conf/proftpd.conf
RootLogin off
# grep telnet /etc/services
telnet 30023/tcp
# /etc/init.d/xinetd restart
원격지에서 스ㅐㄴ하는 것을 실시간으로 차단할 수 있는 도구이다.
portsentry는 ping이나 기타 다른 도구들을 이용하여 불법적인 스캔을 이지하고 이를 차단하려고 할 때 /etc/hosts.deny파일에 실시간으로 추가되어 서버접근 및 포트스탬을 막는 막강한 보안툴이다.
portsentry는 다음과 같은 프로톸ㄹ의 스캔을 실시간으로 차단할 수 있다.
tcp 프로토콜 스캔차단(basic port-bound TCP mode)
stcp 프로토콜 스캔차단(Stealth TCP scan detection)
atcp 프로토콜 스캔차단(Advanced Stealth TCP scan detection)
udp 프로토콜 스캔차단(basic port-bound UDP mode)
sudp 프로토콜 스캔차단(Stealth UDP scan detection)
audp 프로토콜 스캔차단(Advanced Stealth UDP scan detection)
- 설치
# wget ftp://ftp.superuser.co.kr/secureity/portsentry/portsentry-1.0.tar.gz
# tar xvfz portsentry-1.0.tar.gz
# cd portsentry-1.0
# make linux
# make install
# ls -l /usr/local/psionic/portsentry/
# cat /etc/rc.d/rc.local
#!/bin/sh
/usr/local/psionic/portsentry/portsentry -tcp # tcp 프로토콜 스캔차단
/usr/local/psionic/portsentry/portsentry -stcp # stcp 프로토콜 스캔차단
/usr/local/psionic/portsentry/portsentry -atcp # atcp 프로토콜 스캔차단
/usr/local/psionic/portsentry/portsentry -udp # udp 프로토콜 스캔차단
/usr/local/psionic/portsentry/portsentry -sudp # sudp 포트토콜 스캔차단
tripwire는 파일시스템무결성 점검을 하는 서버보안도구로서 파일들의 변경사항유무를 검사할 수 있는 대표적인 보안툴이다.
이 툴을 이용하면 파일들의 추가/삭제/변경유무를 확인할 수 있다.
- 설치
# wget ftp://ftp.superuser.co.kr/security/tripwire/tripwire-2.3-47.bin.tar.gz
# tar xvfz tripwire-2.3-47.bin.tar.gz
# cd tripwire-2.3
# ./install.sh
- 파일확인
/usr/sbin/tripwire tripwire의 주된 실행파일
/usr/tripwire/* tripwire에 관련된 설정파일과 key파일 및 정책파일들이 저장될 디렉토리
/var/lib/tripwire/report tripwire실행결과 보고서가 저장될 디렉토리
/var/libtripwire tripwire DB파일이 저장될 디렉토리
- tripwire 데이터베이스 생성하기(tripwire 초기화)
tripwire 초기화는 점검했던 파일들의 무결성 점검결과를 저장하고있던 DB를 초기화 하다는 것이다.
즉, 초기화시키기 전의 변공사항은 이후에는 적용되지 않는다.
# tripwire --init
- tripwire 실행으로 파일 생성/변조/삭제유무 점거마기
# tripwire --check
- tripwire 설정파일확인 및 변경
twcfg.txt 파일은 tripwire의 주설정파일로서 /etc/tripwire/twcfg.txt 에 존재한다.
이 파일은 tripwire가 어떤 환경으로 실행될 것인가를 정의해둔 파일이다.
즉, tripwire실행파일의 위치, 정책파일(tw.pol)의 위치, tripwire 데이터베이스파일의 위치등을 모두 이 파일에서 정의하고 있다.
- tripwire정책파일 수정 및 변경
tripwire는 /etc/tripwire/twcfg.txt파일을 이용하여 점검할 대상파일을 결정한다.
이 파일을 수정해서 점검할 파일을 추가/삭제할 수 있다.
이 파일에 등록된 파일들은 tw.pol파일(바이너리로 되어있음)에 적용되어 tripwire에서 사용하게 된다.
백도가 설치되어 있는가를 검사하는 툴이다.
chkrootkit을 이용해서 다음과 같은 검색이 가능하다.
rootkit의 흔적 및 설치여부를 검색(chkrootkit)
NIC으 promisc모드 설정여부 검색(ifpromisc)
lastlog의 변조 및 삭제여부 검색(chklastlog)
wtmp의 변조 및 삭제여부 검색(chkwtmp)
기타 파일벼조여부를 검색
chkrootkit툴에는 다음가 같은 파일들이 존재하며 이 파일들은 다음과 같은 역할을 한다.
ifpromisc.c 랜카드가 promiscuous mode로 설정되어 있는가를 검사
chklastlog.c /var/log/lastlog의 삭제유무 검사
chkwtmp.c /var/log/wtmp의 삭제유무 검사
check_wtmpx.c wtmpx파일의 삭제유무검사(Solaris의 경우만 해당됨)
chkproc.c LKM트로이목가 검사
strings.c 점검되는 파일들의 변조여부 검사
- 설치
# chkroot.tar.gz다운로드
# tar xvfz chkrootkit.tar.gz
# cd chkrootkit-0.44
# 컴파일 전 로그파일위치 확인 및 수정하기
모든 파일을 열어서 로그파일의 정확한 위치를 확인한다.
chklastlog.c 파일에 리눅스에 대한 설정부분을 추가해 준다.
#ifdef _LINUX_
#define WTMP_FILENAME "/var/log/wtmp"
#define LASTLOG_FILENAME "/var/log/lastlog"
#endif
# make sense
- chkrootkit으로 rootkit설치여부 및 서버점검하기
# ./chkrootkit
* 리눅스 서버관리를 위한 쉘스크립트
***********************************************************
쉘프로그램내에서 실행한 명령의 결과가 정상적으로 종료되었다는 의미로 true를 실행하여 실행이 정상적으로 완료되었음을 알려주는 역할을 한다.
이 때 true가 반한하는 종료상태값은 실행성공을 의미하는 0이다.
그리고 false는 쉘프로그램내에서 특정 명령수행이 항상 실패햤음을 의미하는 1을 반환한다.
- 사용자 입력값 처리하는 read문 기본 사용법
read -p "Select Number(1, 2, 3 or 4): " MENU1
화면에 "Select Number(1, 2, 3 or 4): "가 출력이 된 후에 사용자의 입력을 대기한다. 사용자가 입력한 내용을 MENU1에 저장한다.
- 쉘프로그램내에서 read 문에서 배열로 받아서 처리하기
입력내용을 받아들일 지정된 변수를 배열변수로 사용하려면 -a 옵션을 사용해야 한다.
쉘프로그램에서도 C와 마찬가지로 배열인자는 0부터 시작한다.
배열변수를 출력하려면 ${변수명[인자]}와 같은 형식을 사용한다.
logger는 로그메시지를 시스템로그파일(/var/log/messages 등)에 기록할 수 있는 로그리고기이다.
logger명령어를 사용하여 원하는 로그를 기록하면 지정된 메시지가 시간표시와 함께 시스템로그파일(/var/log/messages)에 기록된다.
사용형식 : logger [-is] [-f file] [-p pri] [-t tag] [메시지]
# logger SystemCheck
# tail -1 /var/log/messages
Apr 3 00:55:03 rh9 4월 3 00:55:03 widemail: SystemCheck
select문은 반복되는 메뉴방식의 쉘프로그램을 만들 때에 최적이다.
사용형식 :
select 변수 in 메뉴리스트
do
실행될 명령문들
done
select문으로 반복메뉴방식의 쉘프로그램을 작성할 때에는 PS3라는 쉘변수를 사요하는 것이 일반적이다.
즉, PS3쉘변수를 사용하면 PS3에 지정된 메시지를 화면으로 출력하고 사용자의 입력을 기다린다.
select문이 실행되면 in 다음의 메뉴리스트에 번호를 붙여서 화면으로 출력한다.
그리고 선택된 번호가 지정되면 변수에 메뉴리스트에서 선택된 해당리스트를 저장한 다음 "do ~ done"의 내용이 실행된다.
# cat prokill.sh
#!/bin/sh
ps -ef | grep $1 | awk '{ print $2 }' | xargs kill -9 {}
* 리눅스서버 응급복구와 삭제파일 복구
***********************************************************
# fdisk -l -> 깨진 파일시스템 확인
# e2fsck -j ext3 /dev/sda3 -> 파일시스템 점검
파일시스템이 깨졌을 때 : e2fsck로 파일시스템 복구
비밀번호 및 로그인장애 : /etc/passwd 파일 점검
grub정보로 부팅장애 : /boot/grub/grub.conf 파일 점검
부팅시 마운트정보 장애 : /etc/fstab 점검
현재 상태에서는 장치파일명이 생성되어있지 않으며 마운트도 되어있지 않기 때문에 현재 시스템의 어떠한 수정작업도 할 수 없는 상황이다.
먼저 필요할 것 같은 장치명들을 임의대로 생성한다.
# mknod /dev/sda -> /dev/sda 장치명 생성
# mknod /dev/sda1 -> /dev/sda1 장치명 생성
# mknod /dev/sda2 -> /dev/sda2 장치명 생성
생성한 장치와 마운트할 마운트포인트(디렉토리)를 생성한다.
# mkdir /temp
# mkdir /temp1
# mkdir /temp2
위에서 생성한 각 장치명과 각 디렉토리들을 마운트한다.
# mount /dev/sda1 /temp1
# mount /dev/sda2 /temp2
- ALT + SysRq + S : Alt키와 SysRq키와 S키를 동시에 누른다. sync 작업
- ALT + SysRq + E : Alt키와 SysRq키와 E키를 동시에 누른다. tem SIG 작업
- ALT + SysRq + U : Alt키와 SysRq키와 U키를 동시에 누른다. umount 작업
- ALT + SysRq + B : Alt키와 SysRq키와 B키를 동시에 누른다. reboot 작업
safedelete라는 명령어는 파일을 삭제하는 명령어이다.
단 rm과는 달리 safedelete라는 명령어로 파일을 삭제하면 특정한 디렉토리에 삭제된 파일을 보관하게 된다.
그리고 삭제된 사용자의 홈디렉토리에 삭제 파일리스트를 저장하고 있는 로그파일에 그 파일정보들을 보관한다.
그리고 safedelete명령어로 삭제된 파일은 undelete라는 명령어로 복구가 가능하다.
따라서, 이 툴로서 삭제된 파일을 복구하려면 파일삭제시에 사용하는 명령어를 rm 대신에 safedelete 명령어를 사용해야한다.
이 툴의 이름은 safedelete이며 삭제와 복구시에 사용되는 명령어는 다음과 같다.
safedelete : rm 대신에 사용하게 될 파일보구가 가능한 삭제명령어
undelete : safedelete로 삭제한 파일을 복구하는 명령어
safecnvt : safedelete 로그파일(.safedelete.log)을 컨버전하는 명령어
safedelchk : 지정한 일자 이후의 safedelete로 삭제한 파일을 완전 삭제함
- safedelete 설치
# wget ftp://ftp.nuri.net/pub/RedHat/redhat/redhat-7.1-en/powertools/i386/RedHat/RPMS/saedelete-1.3-0.i386.rpm
# rpm -Uvh saedelete-1.3-0.i386.rpm
- rm 명령어를 safedelete로 대체하기
# grep safedelete ~/.bashrc
alias rm='safedelete'
- 설치
http://www.fish.com/tct 에서 다운로드한다.
# tar xvfpz tct-.09.tar.gz
# cd tct-1.09
# make
# cd bin
# cp rnrm /usr/local/bin
# cp lazarus /usr/local/bin
- 삭제파일 복구
# /usr/local/bin/unrm /dev/sda1 > /tmp_dir/dump_temp
# /usr/local/bin/lazarus -h /tmp_dir/dump_temp
- e2fsck 종료코드
0 - 에러없이 정상적인 종료를 의미함
1 - 파일시스템을 복구하였음을 의미함
2 - 파일시스템이 복구되어 시스템이 재부팅되어야함을 의미함.
4 - 작업대상 파일시스템에 문제가 있으나 복구하지 않고 그대로 두었음을 의미함.
8 - 실행에러를 의미함
16 - 사용법 또는 문법에러를 의미함
32 - e2fsck작업이 사용자에 의해서 취소되었음을 의미함.
128 - 공유 라이브러리에러를 의미함
- e2fsck작업에서 기본적으로 점검하는 항목
inode 점검
blocks 점검
sizes 점검
디렉토리구조 점검
디렉토리 연결성점검
파일링크 정보
전체파일갯수 점검
전체블록수중 사용중인 블록 정검
- 사용형식
e2fsck [-pacnyrdfvtFV] [-b 수퍼블록] [-B 블록크기] [-l|-L 배드블록목록화일] 장치명
마운트되어 있는 상태에서 e2fsck실행을 자제한다.
- e2fsck 명령어로 특정 파일시스템의 점검 및 복구하기
# e2fsck /dev/hda1
- e2fsck로 특정 파일시스템 강제 점검 및 복구하기
# e2fsck -f /dev/hda1
- ext3(저널링)파일시스템 점검 및 복구하기
# e2fsck -j ext3 /dev/hda1
- e2fsck로 특정 파일시스템 강제 점검 및 상세 작업내역보기
# e2fsck -fv /dev/hda1
- 파일시스템의 수퍼블록을 이용한 파일시스템 복구
-b superblock
Instead of using the normal superblock, use an alternative
superblock specified by superblock. This option is normally
used when the primary superblock has been corrupted. The loca-
tion of the backup superblock is dependent on the filesystem's
blocksize. For filesystems with 1k blocksizes, a backup
superblock can be found at block 8193; for filesystems with 2k
blocksizes, at block 16384; and for 4k blocksizes, at block
32768.
mke2fs program using the -n option to print out where the
superblocks were created. The -b option to mke2fs, which spec-
ifies blocksize of the filesystem must be specified in order for
the superblock locations that are printed out to be accurate.
not opened read-only, e2fsck will make sure that the primary
superblock is updated appropriately upon completion of the
filesystem check.
# e2fsck -b 8193 /dev/hda1
# e2fsck -b 16385 /dev/sda1
- e2fsck로 파일시스템 점검시 버퍼캐쉬의 내용을 디스크에 저장하기
-F옵션을 사용하면 e2fsck를 수행하기 이전에 sync작업을 수행한다.
# e2fsck -F /dev/sda1
- e2fsck로 특정 파일시스템 점검시 오류 자동수정하기
# e2fsck -p /dev/sda1
- e2fsck로 파일시스템 점검시 모든 질문항목에 yes라고 자동입력하기
# e2fsck -y /dev/sda1
- e2fsck로 파일시스템 점검시 모든 질문항목에 no라고 자동입력하기
# e2fsck -n /dev/sda1
* 리눅스서버 NFS와 NIS
***********************************************************
- rpc.nfsd : NFS 데몬
- rpc.mountd : rpc 기반하에서 NFS 사용을 위한 마운트를 가능하게 하는 데몬
- portmap : NFS가 원래 RPC기반하에서 작동되는 깃이기 때문에 rpcbind를 필요로 하면, rpcbind의 매핑을 위해 필요한 데몬이 portmap이다.
- /etc/exports : 마운트를 허용한 디렉토리와 사용옵션 nfs 설정파일
- NFS 데몬
# /etc/init.d/nfs start
# /etc/init.d/nfs stop
# /etc/init.d/nfs restart
- portmap 데몬
# /etc/init.d/portmap start
# /etc/init.d/portmap stop
# /etc/init.d/portmap restart
"rpcinfo -p"라고 하면 현재 NFS서버에서 구동중인 NFS관련 데몬들을 점검해 볼 수 있다.
관련된 데몬은 portmapper, mountd, nfs, nlockmgr, rquotad, status 가 있다.
# rpcinfo -p
프로그램 버전 원형 포트
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100011 1 udp 736 rquotad
100011 2 udp 736 rquotad
100011 1 tcp 739 rquotad
100011 2 tcp 739 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100021 1 udp 32780 nlockmgr
100021 3 udp 32780 nlockmgr
100021 4 udp 32780 nlockmgr
100005 1 udp 32781 mountd
100005 1 tcp 33434 mountd
100005 2 udp 32781 mountd
100005 2 tcp 33434 mountd
100005 3 udp 32781 mountd
100005 3 tcp 33434 mountd
# rpcinfo -p 192.168.0.102
프로그램 버전 원형 포트
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100011 1 udp 736 rquotad
100011 2 udp 736 rquotad
100011 1 tcp 739 rquotad
100011 2 tcp 739 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100021 1 udp 32780 nlockmgr
100021 3 udp 32780 nlockmgr
100021 4 udp 32780 nlockmgr
100005 1 udp 32781 mountd
100005 1 tcp 33434 mountd
100005 2 udp 32781 mountd
100005 2 tcp 33434 mountd
100005 3 udp 32781 mountd
100005 3 tcp 33434 mountd
설정형식 : [마운트할 디렉토리] [허용할 NFS크라리언트](설정옵션들)
# cat /etc/exports
/web_data 192.168.0.101(rw) # 192.168.0.101 NFS 클라이언트에서 NFS 서버의 /web_data 로 read와 write가 가능하도록 마운트를 허용한다.
/db_data 192.168.0.101(rw)
/data 192.168.0.109(ro) # NFS서버의 /data 디렉토리를 NFS클라이언트에서 read 만 가능하도록 마운트 허용
/home 192.168.0.109(rw) # NFS서버의 /home 디렉토리 전체를 NFS 클라이언트가 마운트하도록 허용
/home/sspark 192.168.0.109(noaccess) # /home/sspark 은 NFS마운트를 허용하지 않는다.
/var/log 192.168.0.109(rw,root_squash) # NFS클라이언트에서 NFS서버로 root권한으로 마운트를 할 경우에 NFS서버에서 root권한을 부여하는 것이 아니라 nfsnobody권한을 부여한다.
NFS클라이언트에서 NFS서버의 마운트시에 root를 일치시키려면 no_root_squash 옵션을 사용한다.(기본값은 root_squash)
/var/log 192.168.0.109(rw,no_root_squash)# NFS클라이언트그의 root는 NFS서버로 마운트 할 때 NFS서버에서의 root와 일치한다. 가능한 이 설정은 보안을 위해 사요하지 마라.
/home 192.168.0.109(rw,all_squash) # root사용자와는 반대로 일반사용자으 경우에는 no_all_squash가 기본값이다.
NFS클라이언트에서 NFS서버로 마운트할 때 동일사용자가 존재한다면 root를 제외한 일반사용자는 도일한 사용자로 매핑이 된다.
all_squash라는 옵션을 사용했기 때문에 일반사용자의 경우에도 모두 nfsnobody로 매핑이 된다.
설정형식 : mount -t nfs NFS서버_IP주소_또는_호스트명:/NFS서버_마운트포인트 /NFS클라이언트_마운트포인트
-t nfs 파일시스템형식을 nfs로 지정
NFS서버_IP주소_또는_호스트명 NFS서버의 IP주소 또는 호스트명
NFS서버_마운트포인트 NFS서버에서 NFS클라이언트의 마운트가 허용되어 있는 위치를 지정
NFS클라이언트_마운트포인트 NFS클라이언트의 마운트포인트 지정
# mount -t nfs 192.168.0.102:/web_data /web_data
# mount -t nfs 192.168.0.103:/db_data /db_data
/etc/fstab 에서 사용가능한 NFS 마운트 옵션들
- rsize=n 지정된 NFS서버로부터 읽어오는 바이트수를 지정. 기본값은 1024
- wsize=n 지정된 NFS서버에 쓰기를 할 때 사용하는 바이트수를 지정. 기본값은 1024
- timeo=n RPC타임아웃이 발생되고 나서 첫번째 재전송요구를 보낼 때 사용되는 시간
- retrans=n timeout이 발생시 재전송시도 횟수를 제한한 것임. 기본값은 3
- port=n 지정된 NFS서버와 연결할 때의 포트번호 지정
- fg 첫번째 마운트시도하여 timeout되면 바로 중단됨. default값
- intr timeout발생시 신호를 보내는 NFS호추를 인터럽트함.
- hard timeout이 발생하면 "server not responding"이라는 메시지를 출력한 후에 계속 재시도 함
- soft timeout이 발생하면 I/O에러가 발생하였을을 알려줌.
# cat /etc/fstab | grep nfs
192.168.0.100:/home/bible /bible nfs timeo=10,intr
* 리눅스 서버이전
***********************************************************
- 서버 네트워크환경문제
- 일반사용잘의 ID와 패스워드문제
- 사용자들의 도메인문제
- 서버내의 홈페이지 데이터들의 문제
- 아파치웹서버 이전문제
- MySQL 데이터베이스 이전문제
구분 이전하기전 서버(A) 이전후 서버(B)
작업자 김길동
작업일시 2006년 4월 5일 새벽 04시부터 06시까지
지역 용산구 구로구
IDC(업체)명 A-IDC B-IDC
IDC(업체)담당자명 박길동 이길동
IDC(업체)연락번호 111-1111 222-2222
서버모델명(서버명) SU-S2001(A서버) SU-2002(B서버)
서버IP주소 192.168.0.101 192.168.1.211
네트워크주소 192.168.0.0 192.168.1.0
브로드캐스트주소 192.168.0.255 192.168.1.255
넷마스크주소 255.255.255.0 255.255.255.0
웹서버(위치) APACHE(/usr/local/apace2) APACHE(/usr/local/apace2)
DB서버(위치) MySQL(/usr/local/mysql) MySQL(/usr/local/mysql)
FTP서버 Proftpd(/usr/local/proftpd) Proftpd(/usr/local/proftpd)
DNS서버 BIND9 BIND9
메일서버 SENDMAIL, Qpopper SENDMAIL, Qpopper
사용자수 10명 10명
기타 gd,libpng,freetype,zlib 등 gd,libpng,freetype,zlib 등
주의사항 이전하기전 사용 도메인 TTL값 최소화
cron설정주의
로그파일들 이전주의(/var/log)
이전후 홈페이지로딩테스트 및 게시판업로드테스트
작업 7일전 작업관련 홈페이지 공지사항 등록
각 사용자에게 작업관련 메일발송
서버이전 작업을 시작하기 쵯 몇일전에 각 도메인들의 DNS정보가 세팅된 네임서버에서 각 도메인들의 zone파일들에 설정된 TTL값을 0또는 1로 설정한다.
즉, 도메인의 IP주소를 변경하기 전에 DNS의 TTL값을 0 또는 1로 설정해 둔다.
- 웹서비스 중지
- 메일서비스 중지
- 데이터베이스 서버 중지
서비스를 중지하는 이유는 서버이전을 하는 도중에 계속 서비스를 하게 되면 작업하는 동안에 업데이트된 데이터들은 유실되기 때문이다.
다음과 같이 네트워크 설정명령어들과 파일들을 통하여 새로운 네트워크 환경을 설정한다.
- route 서버라우팅 설정 명령어
- ifconfig 네트워크 인터페이스 설정 명령어
- netconfig 네트워크 설정 명령어
- /etc/resolv.conf DNS설정 파일
- /etc/sysconfig/network 기본게이트웨이 설정파일
- /etc/sysconfig/network-scripts/ifcfg-eth0 첫번째 NIC 네트워크 설정파일
- /etc/sysconfig/network-scripts/ifcfg-eth1 두번째 NIC 네트워크 설정파일
- /etc/init.d/network 설정된 네트워크 start|stop|restart
- /etc/passwd파일내의 사용자계정부분 이전하기
A서버의 /etc/passwd 파일에서 일반사용자들의 계정정보만을 복사해서 B서버의 /etc/passwd에 복사한다.
- /etc/group파일내의 사용자 그룹설정 부분 이전하기
A서버의 /etc/group파일에서 시스템사용 그룹설정 부분을 제외한 나머지 그룹부분들을 그대로 복사하여 B서버의 /etc/group파일에 그대로 추가한다.
- /etc/shadow 파일내의 사용자 설정부분 이전하기
/etc/shadow파일에서 사용자들의 정보만을 복사해서 B서버의 /etc/shadow에 복사한다.
- A서버에서 home을 모두 압축한다.
# cd /
# tar cvfpz home.tar.gz home
- B서버에서 home.tar.gz 파일을 가져온다.
# cd /
# ncftp -u bible 192.168.0.101
ncftp / > get /home.tar.gz
- B서버에서 가져온 home.tar.gz 압축을 해제한다.
# tar xvfpz home.tar.gz -C /
아파치를 이전할 때에는 다음과 같은 주의사항이 있다.
1. httpd.conf파일 내에 설정되어 있는 가상호스트정보 수정
2. httpd.conf파일 내의 DocumentRoot정보의 확인 및 수정
3. httpd.conf파일 내의 ServerName정보의 확인 및 수정
4. httpd.conf파일 내의 UserDir정보의 확인 및 수정
- A서버에서 APACHE 디렉토리를 압축한다.
# cd /usr/local
# tar cvfp apache2.tar.gz apache2
- B서버에서 A서버에 있는 apache2.tar.gz 파일을 가져오고 압축을 해제한다.
# cd /usr/local
# ncftp -u bible 192.168.0.101
ncftp /usr/local > get /usr/local/apache2.tar.gz
# tar xvfpz apche2.tar.gz
- httpd.conf 파일 수정
NameVirtualHost 값 수정
VirutalHost 부분 수정
DocumentRoot 저옵 수정
ServerName 정보 수정
- php와 Zend 이전
- A서버에서 MySQL을 압축한다.
# cd /usr/local
# tar xvfpz mysql.tar.gz mysql
- A서버에서 압축한 파일을 B서버로 가져오고 압축을 해제한다.
# cd /usr/local
# ncftp -u bible 192.168.0.101
ncftp /usr/local > get /usr/local/mysql.tar.gz
# tar xvfpz mysql.tar.gz
- MySQL 실행에러문제 해결하기
호스트명 인식불능문제
/usr/local/mysql/var/호스트명.pid
/usr/local/mysql/var/호스트명.err
/usr/local/mysql/var 소유자 계정확인
- A서버에서 /etc/mail 디렉토리를 압축하여 B서버로 가져온 후에 원래위치에 압축해제한다.
- A서버의 /usr/local/lib/popper파일을 B서버로 가져와서 원래위치에 넣어둔다.
- A서버의 /var/spool/mail 디렉토리내용과 /var/spool/mqueue 디렉토리의 내요을 그대로 가져와서 B서버에 넣어둔다.
- A서버의 /etc/xinetd.d 디렉토리내에 있는 pop3파일을 B서버로 가져와서 넣어둔다.
- A서버의 /usr/sbin/sendmail 파일과 /etc/aliases 파일을 B서버로 가져와서 각자 위치에 넣어둔다.
- 이와 같이 작업한 후에 B서버에서 /etc/init.d/sendmail 스크립트를 이용하여 sendmail을 재시작하고 /etc/init.d/xinetd 스크립트를 재시작하여 /etc/xinetd.d/pop3 파일이 적용되도록 한다.
- A서버의 /etc/hosts파일의 정보를 확인하고 필요한 정보는 B서버의 /etc/hosts파일에 등록한다.
- A서버의 /etc/hosts.allow파일과 /etc/hosts.deny파일의 내용을 B서버에 그대로 설정한다.
- A서버의 /var/spool/cron 디렉토리내의 파일들을 B서버로 그대로 가져와서 설정한다.
- A서버의 /var/log 디렉토리내에 존재하는 필요한 로그파일들(특히 wtmp, secure 파일)을 B서버로 가져와서 /var/log에 저장한다.
- A서버의 /etc/sysctl.conf 파일의 내용을 B서버의 서버사양에 맞도록 수정하여 적용한다.
- A서버의 /etc/motd, /etc/issue, /etc/issue.net 파일들의 니용을 B서버로 가져와서 해당 파일들에 저장한다.
- A서버의 /etc/rc.d/rc.local 파일을 그대로 가져와서 B서버에 복사한다.
도메인들의 DNS서버에서 각 도메인들의 IP주소를 B서버의 IP주소(192.168.1.211)ㄹ 변경한다.
TTL값을 원래의 값으로 복원한다.
1. 홈페이지가 정상로딩 테스트
2. 홈페이지의 게시판 및 업로드 테스트하기
3. 사용자계정 정보확인 및 로그인 테스트
4. 메일수발신 테스트와 MySQL접속 테스트
5. B서버에서 응용프로그램들의 경로 확인하기
* PROC 파일시스템을 이용한 커널최적화 및 시스템튜팅
***********************************************************
1. /etc/sysctl.conf 파일에 등록한다.
지속적으로 적용하려면 이 파일에 넣어둔다.
2. sysctl 명령어를 이용한다.
"sysctl -w 파라미터변수=값"의 형식으로 변경이 가능하다.
3. /proc/sys 디렉토리내에 존재하는 각가의 파일들을 vi로 열어서 직접 변경한다.
좋지않은 방법으로 추천하지 않는다.
4. echo 명령어를 이용한다.
"echo 1 > 파일위치"와 같은 방법으로 간편하게 수정할 수 있다.
5. redhat-config-proc을 이용한다.
- sysclt
configure kernel parameters at runtime 으로서 커널 파라미터를 설정하는 명령어이다.
- 커널옵션값 전체 확인하기
# sysctl -a
- 특정커널옵션값의 설정
# sysctl -w net.ipv4.tcp_syncookies=1
- 서버의 호스트네임 확인
# cat /proc/sys/kernel/hostname
- 커널버전 확인
# cat /proc/sys/kernel/osrelease
- 운영체제명 확인
# cat /proc/sys/kernel/ostype
- 커널 매직키(Magic Key)사용가능 확인
# cat /proc/sys/kernel/sysrq
- 외부의 ping 막기
# cat /proc/sys/net/ipv4/icmp_echo_ignore_all
0
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
- smurf 공격방지를 위한 broadcast 패킷방지하기
# cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
0
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
- 세션 종료시간 조정
tcp_fin_timeout은 TCP 세션이 종료된 후에 얼마나 오랫동안 세션연결을 유지하고 있을 것인가를 설정한다.
# cat /proc/sys/net/ipv4/tcp_fin_timeout
60
# echo 20 > /proc/sys/net/ipv4/tcp_fin_timeout
- tcp keepalive time 설정
# cat /proc/sys/net/ipv4/tcp_keepalive_time
7200
# echo 1200 > /proc/sys/net/ipv4/tcp_keepalive_time
- 서버에서 로컬 포트사용범위 설정
# cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
- IP 포워딩(forwarding)기능 막기
# cat /proc/sys/net/ipv4/ip_forward
0
- 서버의 날짜정보 유출막기
# cat /proc/sys/net/ipv4/tcp_timestamps
1
# echo 0 > /proc/sys/net/ipv4/tcp_timestamps
- SYN_Flooding 공격 막기
일종의 서비스거부공격(DoS: Denial of Service)의 일종이다.
TCP세션을 맺기 위해서는 패킷을 보낼 서버와 받을 서버간에 몇단계 확인작업을 거치게 되는데 SYN과 ACK패킷을 이용하여 송수신 준비확인을 한다.
SYN패킷을 박은 목적지 서버는 SYN과 ACK패킷을 보낸 후에 소스서버에서 ACK패킷을 보내기를 기다리게 된다.
이 때에 계속적으로 기다리는 것이 아니라 백로그큐(Backlog Queue)가 허용하는 공간에 연결정보를 보관한다.
이런 상태가 숟없이 쌓이게 되면 복적지 서버의 특정 서비스가 정상적으로 이루어 지지않는 서비스다운상태가 된다.
해결방법은 백로그큐를 늘려주거나 tcp_syncookies값을 로 설정하는 것이다.
# cat /proc/sys/net/ipv4/tcp_syncookies
0
# echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# cat /proc/sys/net/ipv4/tcp_max_syn_backlog
1024
- ICMP redirect의 변조된 패킷 차단(accept패킷 차단설정)
# cat /proc/sys/net/ipv4/conf/default/accept_redirects
1
# echo 0 > /proc/sys/net/ipv4/conf/default/accept_redirects
- ICMP redirect 의 변조된 패킷 차단(send 패킷 차단설정)
# cat /proc/sys/net/ipv4/conf/default/send_redirects
1
# echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
- DoS공격 source로 사용 차단(IP 스푸핑 방지하기)
# cat /proc/sys/net/ipv4/conf/default/rp_filter
1
# echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
- 스푸핑등의 패킷에 대한 로그를 남기자
# cat /proc/sys/net/ipv4/conf/default/log_martians
0
# echo 1 > /proc/sys/net/ipv4/conf/default/log_martians
- source route 패킷허용 막기(신뢰받는 호스트로 위장하는 것 막기)
# cat /proc/sys/net/ipv4/conf/default/accept_source_route
0
# echo 0 > /proc/sys/net/ipv4/conf/default/accept_source_route
- 커널에서 사용할 수 있는 푀대파일 수 설정하기
# cat /proc/sys/fs/file-max
102709
- 현재 활동중인 파일 수 확인
# cat /proc/sys/fs/file-nr
834 0 102709
- cpu 정보 확인
# cat /proc/cpuinfo
- 사용중이거나 사용가능한 장치(device)파일 확인
# cat /proc/devices
- 현재 커널에서 인식되어 있는 파일시스템 타입 확인
# cat /proc/filesystems
- 현재 사용되고 있는 메모리 번지별 사용내역 확인
# cat /proc/iomem
- 입출력포트의 번지별 사용내역
# cat /proc/ioports
- 서버 펴윤부하율 정보 확인
# cat /proc/loadavg
- 메모리 일반정보 확인
# cat /proc/meminfo
- 커널에 로드ㅗ디어 있는 모듈확인
# cat /proc/modules
- 현재 마운트되어 있는 정보확인
# cat /proc/mouts
- 현재 설정된 파티션정보 확인
# cat /proc/partitions
- 커널버전 정보확인
# cat /proc/version
- IRQ값 정보확인
# cat /proc/interrupts
* SAMBA 서버
***********************************************************
삼바서버패키지 : samba-3.0.8-0.pre1.3
삼바클라이언트 패키지 : samba-client-3.0.8-0.pre1.3
삼바서버와 클라이언트에서 모두 사용하는 파일들 패키지 : samba-common-3.0.8-0.pre1.3
삼바서버 웹관리 패키지 : samb-swat-3.0.8-0.pre1.3
삼바서버 설정툴 패키지 : system-config-samba-1..21-1
# wget http://ftp.superuser.co.kr/pub/fedora/core3/RPMS/samba-3.0.8-0.pre1.3.rpm
# wget http://ftp.superuser.co.kr/pub/fedora/core3/RPMS/samba-client-3.0.8-0.pre1.3.rpm
# wget http://ftp.superuser.co.kr/pub/fedora/core3/RPMS/samba-common-3.0.8-0.pre1.3.rpm
# wget http://ftp.superuser.co.kr/pub/fedora/core3/RPMS/samb-swat-3.0.8-0.pre1.3.rpm
# wget http://ftp.superuser.co.kr/pub/fedora/core3/RPMS/system-config-samba-1..21-1.rpm
# rpm -Uvh --nodeps samba-3.0.8-0.pre1.3.rpm
# rpm -Uvh --nodeps samba-client-3.0.8-0.pre1.3.rpm
# rpm -Uvh --nodeps samba-common-3.0.8-0.pre1.3.rpm
# rpm -Uvh --nodeps samb-swat-3.0.8-0.pre1.3.rpm
# rpm -Uvh --nodeps system-config-samba-1..21-1.rpm
설치된 주요 파일들
/etc/logrotate.d/samba : 삼바로그를 관리하기 위한 삼바로그 로테이트 스크립트 파일
/etc/init.d/smb : 삼바데몬(nmbd, smbd)을 실행(종료, 재시작)하기 위한 스크립트파일
/etc/sysconfig/samba :삼바 제어판 설정파일
/usr/bin/smbstatus : 삼바서버에 로그인한 정보를 확인하기 위한 유틸리티
/usr/sbin/nmbd : 삼바 NetBIOS 데몬
/usr/sbin/smbd : 윈도우서버와 파일 및 프린터공유를 위한 삼바 주데몬
/usr/bin/smbclient : 삼바 클라이언트 유틸리티로서 삼바서버로 접속이 가능하도록 제공함.
/usr/bin/smbmount : 삼바 원격마운트 유틸리티
/usr/bin/smbumount : 삼바 원격마운트 해제 유틸리티
/etc/samba : 삼바의 주된 디렉토리
/etc/samba/lmhosts : 삼바서버 NetBIOS 호스트파일(삼바서버에서 사용하는 호스트정보파일)
/etc/samba/smb.conf : 삼바서버의 주설정파일
/usr/bin/smbpasswd : 삼바사용자 생성, 삭제 및 삼바사용자 패스워드 설정, 변경 유틸리티
/usr/bin/testparm : 삼바서버 설정파일(smb.conf)점검 유틸리티
/etc/xinetd.d/swat : 삼바서버의 웹관리를 위한 xinetd환경의 삼바설정파일
/usr/sbin/swat : 삼바서버 웹관리툴
/usr/bin/system-config-samba : X환경에서의 삼바설정 유틸리티
/var/log/samba/ : 삼바로그 저장 디렉토리
/etc/samba/smbusers : 리눅스ID와 삼바ID가 다를 경우에 이를 매칭하기 위한 매칭 테이블파일
- 삼바데몬 시작
# /etc/init.d/smb start
# /usr/sbin/smbd -D
# /usr/sbin/nmbd -D
/etc/samba/smb.conf 파일의 설정에는 다음과 같이 기본적으로 세부분으로 나뉘어져 있습니다.
1. 글로벌 설정: 이 설정은 삼바서버가 공유하는 자원들에 공통적으로 적용할 기본값을 설정하는 곳이다.
이 글로벌설정은 [global]이라는 선언으로 시작하는 부분이다.
2. 자동홈디렉토리 : 리눅스 사용자들의 홈디렉토리를 로그인홈으로 사용하기 위한 설정으로서 [homes]로 시작하는 부분의 설정이다.
3. 프린터설정 : 네트워크 공유프린트에 대한 설정부분으로서 [printers]로 시작하는 부분의 설정이다.
- unix charset = cp949
dos charset = cp949
display charset = cp949
리눅스(유닉스) 문자셋, 도스문자셋, 그리고 디스플레이 문자셋을 각각 설정한다.
- workgroup = superuser
workgroup옵션에는 NT도메인명 또는 워크그룹명을 지정하면 된다.
작업그룹명이므로 윈도우에서 Workgroup으로 사용하는 이름을 입력한다.
- server string = SUPERUSER File Server
삼바서버의 이름쯤으오 생각하면 된다.
- hosts allow = 192.168.1. 192.168.2. 127.
이 옵션은 삼바서버의 보안을 위하여 매우 중요한 옵션이다.
이 옵션은 삼바서버로의 접근을 허용하기 위한 설정이다.
- load printers = yes
자동프린트 목록을 사용하기 위한 값으로 yes를 주면 된다.
네트워크 프린터를 삼바서버에서 관리하도록 하려면 반드시 yes로 설정한다.
- printcap name = /etc/printcap
printcap파일의 위치가 다른 곳에 있다면 그곳을 지정한다.
- printing = bsd
사용하는 프린터가 표준이 아니라면 주석처리를 하는 것이 좋다.
현재 지원되는 프린터시스템의 종류로는 bsd, sysv, plp, lprng, aix, hpux, qnx 등이 있다.
- guest account =pcguest
삼바서버의 guest사용자를 허용하고자 할 때에는 이 주석을 제거한다.
이 옵션은 삼바서버에 손님권한으로 접속할 때 어떤 권한을 부여할 것인가를 설정한다.
가능한 시스템에 특별한 권한이 없는 nobody와 같은 권한으로 설정한다.
- log file = /var/log/samba/log.%m
이 설정은 삼바서버로 접속하는 개별 사용자들의 호스트정보를 %m 으로 받아서 개별 로그파일을 생성하도록 한다.
- log file = /var/log/samba/smbd.log
접속한 호스트별로 로그파일을 사용하지 않는다면 하나의 로그파일을 사용할 수도 있다.
- max log size = 50
로그파일의 용량크기를 KB단위로 제한하기 위한 옵션이다.
제한하지 않으려면 0을 입력한다.
- security = share
보안모드를 설정하는 것으로서 대부분의 삼바접속자들에게는 user레벨이 가장 알맞다.
user레벨을 설정하면 삼바서버에 접속하는 사용자는 반드시 윈도우에서 사용하는 로그인ID와 동일해야 한다.
만약 위의 설정과 같이 share레벨은 공유디렉토리등에 설정하는 것으로서 ID와 패스워드의 인증엇이 접속하는 것을 허용하는 레벨이다.
또한 server레벨은 별도의 인증서버에서 ID와 패스워드인증을 받도록하는 레벨이다.
가능하면 삼바서버보안을 위하여 user레벨을 사용하는 것이 좋다.
- password server = <NT-Server-Name>
위의 security 옵션값이 server로 설정되었을 때에만 설정할 수 있는 옵션으로서 인증서버로 사용할 서버를 지정하는 옵션이다.
- password level = 8
패스워드 문자로 대소문자를 조합하여 사용할 문자의 개수를 지정한 옵션이다.
- username level = 8
삼바사용자명을 대소문자 조합하여 사용할 문자의 개수를 지정한 옵션이다.
- encrypt passwords = yes
패스워드를 암호화하여 사용하려면 "encrypt passwords" 옵션값을 yes로 설정한다.
- smb passwd file = /etc/samba/smbpasswd
이 옵션은 삼바사용자들의 암호파일의 위치를 지정한 것이다.
- unix password sync = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authenticateion*tokens*updated*successfully*
삼바사용자가 원격지에서 삼바패스워드를 변경할 수 있도록 하기위한 설정이다.
이 설정을 사용하여 원격에서 패스워드를 변경하도록 허용하려면 앞의 encrypt passwords옵션값에 yes라고 해야하고 smb passwd file옵션에 반드시 삼바사용자패스워드파일의 경로를 지정한다.
- username map = /etc/samba/smbusers
대부분 삼바에서 사용하는 ID와 리눅스계정ID는 동일하게 사용한다.
만약 삼바사용자명과 리눅스 계정사용자명을 다르게 사용할 경우에 이를 매칭할 수 있도록 하기 위한 옵션이다.
매칭테이블 파일을 /etc/samba/smbusers 파일로 사용하는 설정이다.
- include = /etc/samba/smb.conf.%m
이 옵션은 삼바접속자의 플랫폼에 따라서 각기 다른 설정파일을 적용할 수 있도록 지원하기 위해 사용하는 옵션이다.
%m 은 접속자 시스템의 NetBIOS이름으로 대체되어 접속한 사용자의 플랫폼종류에 따라서 각기 다른 삼바설정파일을 적용할 수 있다.
- socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
삼바서비스 성능향상을 위한 옵션이다. speed.txt 파일을 참조하라.
- interfaces = 192.168.12.2/24 192.168.13.2/24
삼바서버에서 두개 이상의 네트워크 인터페이스(NIC)를 사용하도록 지원하기 위한 옵션이다.
- remote browse sync = 192.168.3.25 92.168.5.255
remote annouce = 192.168.1.255 192.168.2.44
지역서브넷에서 삼바서버를 잘 인식하도록 하기 위하여 자기자신을 알리도록 한다.
- local master = no
이 옵션은 특정 서브네트워크내에서 삼바서버가 로컬마스트브라우즈가 되도록 하는 옵션이다.
- os level = 33
이 옵션은 마스터브라우즈 선거(master browser elections)에서 이 서버의 우선구너을 가질 수 있도록 허용한다.
- domain master = yes
삼바서버가 Domain Master Browser가 되도록 한다.
삼바가 Domain Master Browser가 되면 서브네트워크들로부터 브라우즈 목록을 수집하는 역할을 한다.
- domain logons = yes
삼바서버를 윈도우95기반의 워크스테이션에 대한 도메인로그인서버 역할을 하도록 하려면 이 옵션을 사용하라.
- logon script = %m.bat
각 플랫폼별 또는 각 사용자별로 로그온스크립트(login script)를 구분하여 사용할 수 있도록 한다.
- logon path = file://%25L/Profiles/%25U
오직 윈도우95 또는 윈도우NT에서 로우빙프로파일(roving profile)을 어디에 저장해 둘것인가를 지정하는 설정이다.
- wins support = yes
윈도우 인터넷네임서비스인 WINS를 지우너하기 위한 섹션이다.
- wins server = w.x.y.z
WINS 서버를 지정한다.
- wins proxy = yes
WINS프락시 : WINS기능이 없는 클라이언트 대신 질의에 답하도록 하기위한 옵션이다.
- dns proxy = no
DNS의 nslookup을 사용하여 NetBIOS이름을 찾을 것인가 아닌가를 지정하는 옵션이다.
- preserve case = no
short preserve case = no
대소문자를 유지보존할 것인가를 지정하는 옵션이다.
- default case = lower
DOS파일들의 기본 문자는 대문자로 인식한다.
만약 lower로 설정하면 소문자로 인식한다.
- case sensitive = no
대소문자의 구분을 할것인가 말것인가를 지정하는 옵션이다.
- [homes]
comment = Home Directories
browseable = no
writable = yes
사용자들의 홈디렉토리서버스에서 사용하는 기본적인 설정값이다.
- [netlogon]
comment = Network Logon Service
path = /home/netlogon
guest ok = yes
writable = no
share modes = no
도메인로그온 기능을 사용하기 위한 netlogin을 위한 설정이다.
- [Profiles]
path = /home/profiles
browseable = no
guest ok = yes
로우빙프로파일(roving profile)을 지정하려면 주석을 제거한다.
- [printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
BSD타이의 프린트시스템을 가지고 있다면 개별 설정없이 바로 사용할 수 있다.
- [tmp]
comment = Temporary file space
path = /tmp
read only = no
public = yes
삼바사용자들의 임시공유 디렉토리로 사용하기 위한 설정이다.
- [public]
comment = Public Stuff
path = /home/samba/public
public = yes
read only = no
write list = @staff
삼바사용자라면 누구나 접근이 가능한 공유디렉토로서 staff그룹에 등록된 사용자들을 제외한 일반사용잗ㄹ은 읽기전용으로만 사용할 수 있다.
사용형식 : smbclient '\\서버\서비스' [-U 삼바사용자] [패스워드] [옵션]
# smbclient -L localhost -> 리눅스서버에 설치되어 있는 삼바서버의 접속 및 운용상태 확인
# smbclient '\\files\papa' -U papa -> 원격지의 file이라는 로스트로 papa라는 계정을 이용하여 삼바서버로 접속
서버명으로 file이라는 호스트명을 사용하려면 /etc/samba/lmhosts파일에 호스트정보가 등록되어 있어야 한다.
# smbclient -L 192.168.0.100
# smbclient -U papa -L 192.168.0.100
사용형식 : smbmount //호스트명(또는 IP)/서비스 /마운트포인트
smbumount /마운트포인트
# smbmount //192.168.0.100 /tmp/share
# smbumount /tmp/share
- 새로운 삼바사용자 생성과 패스워드 설정하기
삼바서버에서 사용자를 드록하기 위해서는 smbpasswd라는 명령어를 사용한다.
삼바사용자의 삼바패스워드 또는 smbpasswd라는 명령어를 사용한다.
삼바사용자를 새로 생성하기 전에 리눅스 계정생성을 먼저해야 한다.
# useradd dhan
# passwd dhan
# smbpasswd -a dhan
- 삼바사용자 패스워드 변경하기
root 사용자일 경우 : smbpasswd [options] [username]
root 사용자가 아닌 경우 : smbpasswd [options]
- 삼바사용자 사용하지 못하도록 사용중지 설정하기
# smbpasswd -d dhan -> 사용 중지
# smbpasswd -e dhan -> 사용 재개
- 삼바사용자 삭제하기
# smbpasswd -x dhan
사용형식 : smbstatus [-P] [-b] [-d] [-L] [-p] [-S] [-s <설정파일>] [-u 삼바계정]
# smbstatus -> 현재 삼바서버로 로그인되어 있는 사용자들을 확인
# smbstatus -b -> 삼바서버로 로그인한 삼바사용자염을 간단하게 확인
# smbstatus -u papa -> 특정 계정의 삼바사용자의 로그인 정보만을 확인
이 파일의 주된 목적은 삼바에서 사용할 호스트명정보(주로 IP주소)를 쉽게 찾을 수 있돍 하기위한 것이다.
이 파일에 등록된 호스트정보를 이용하여 smbclient와 같은 삼바유틸리티에서 등록된 호스트의 삼바서버로 접속할 때에 호스트명만으로 사용할 수 있다.
사용형식 : testparm [-s] [-h] [-x] [-L <서버명>] 설정파일명 [호스트 IP]
# testparm
# testparm -l 192.168.0.100
- 웹폴더 사용을 위한 삼바서버 설정
# useradd dhan
# passwd dhan
Changing password for user dhan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
# smbpasswd -a dhan
New SMB password:
Retype new password:
Added user dhan.
# vi /etc/samba/smb.conf
[dhan]
comment dhan web folder
path = /home/dhan
valid users = dhan
read only = no
writable = yes
public = no
browseable = yes
printable = no
crate mask = 0750
# /etc/init.d/smb restart
- 개인 PC의 탐색기에서 운격삼바디스크 사용하기
- 웹브라우즈에서 웹폴더 형식으로 사용하기
* DHCP 서버
***********************************************************
- dhcp서버 rpm으로 설치 및 dhcp서비스 파일들
# wget http://ftp.superuser.co.kr/pub/redhat/9/RPMS/dhcp-3.0pl1-23.i386.rpm DHCP서버와 중계 에이전트
# wget http://ftp.superuser.co.kr/pub/redhat/9/RPMS/dhcp-devel-3.0pl1-23.i386.rpm DHCP서버와 접속시키기 위한 개발용 헤더 파일들과 라이브러리들
# wget http://ftp.superuser.co.kr/pub/redhat/9/RPMS/dhclient-3.0pl1-23.i386.rpm DHCP서버와 접속시키기 위한 클라이언트
# rpm -Uvh dhcp-3.0pl1-23.i386.rpm
# rpm -Uvh dhcp-devel-3.0pl1-23.i386.rpm
# rpm -Uvh dhclient-3.0pl1-23.i386.rpm
- dhcp 서버 소스로 컴파일하여 설치하기
1. dhcp 소스가져오기
# wget ftp://ftp.isc.org/isc/dcp/dhcp-3.0.1.tar.gz
2. dhcp 소스 압축풀기
# tar xvfz dhcp-3.0.1.tar.gz
3. configure하기
# ./configure
4. 컴파일하기(make)
# make
5. 컴파일된 파일 설치하기
# make install
- DHCP 데몬파일
dhcp 서버데몬 : /usr/sbin/dhcpd
dhcp 릴레이에이전트 데몬 : /usr/sbin/dhcrelay
- DHCP 메인설정파일
dhcp서버의 설정파일 : /etc/dhcpd.conf
- DHCP IP할당로그파일
dhcp IP할당ㄹ그파일 : /var/lib/dhcp/dhcpd.leases
- DHCP서버 실행과 종료 및 재시작
# /etc/init.d/dhcpd start
# /etc/init.d/dhcpd restart
# /etc/init.d/dhcpd stop
이 파일은 /usr/share/doc/dhcp-3.0pl1/ 디렉토리에 존재하는 dhcpd.conf.sample 파일을
/etc/dhcpd.conf 파일로 복사하여 편집한다.
subnet 192.168.0.0 netmask 255.255.255.0 {
-> 192.168.0.0/255.255.255.0 네트워크의 범위에 해당하는 IP주소 가운데 아래 reage항목에 나오는 바와 같이 192.168.0.128부터 192.168.0.255까지의 IP주소를 DHCP클라이언트 컴퓨터에 유동사설IP주소를 할당하기 위한 설정이다.
option routers 192.168.0.1;
-> DHCP클라이언트들이 사용할 기본게이트웨이이다.
-> IP주소를 할당받은 DHCP클라이언트가 사용할 Subnet Mask를 의미한다.
option domain-name "domain.org";
-> DHCP 서버의 자체 도메인이름을 의미한다.
-> IP주소를 할당받은 DHCP클라이언트가 사용할 DNS서버를 설정한다.
# option ntp-servers 19.168.1.1;
# option netbios-name-servers 192.168.1.1;
# - Select point-to-point node(default is hybrid). Don't change this unless you understand NetBIOS very well
# option netios-node-type 2;
-> DHCP클라이언트에게 할당할 수 있는 IP주소의 범위이다.
-> 할당시간이 설정되어 있지 않은 DHCP클라이언트가 할당받은 IP주소를 가지고 있을 수 있는 시간을 의미한다.
-> 할당된 IP주소를 DHCP클라이언트가 임대할 수 있는 최대 시간을 의미한다.
host ns {
-> DHCP서버를 이용하여 통신을 하는 많은 DHCP클라이언트들 가운데 특정 호스트에게만 항상 고정IP를 사용할 수 있도록 하기 위한 설정이다.
hardware ethernet 12:34:56:78:AB:CD;
-> 고정IP주소를 할당할 DHCP클라이언트의 MAC주소를 설정한다.
fixed-address 207.176.4.254;
-> 위의 MAC주소를 가진 DHCP클라이언트에게 할당할 고정 IP주소
}
}
DHCP서버로 사용되기 위해서는 DHCP서버의 ethernet에 멀티캐스트가 가능하도록 설정되어 있어야 한다.
- 리눅스에서 자동 IP할당 받기 위한 DHCP 클라이언트 설정
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
omBOOT=yes
BOOTPROTO=dhcp
# /etc/init.d/network restart
- 윈도우에서 자동 IP할당받기 위한 DHCP클라이언트 설정
* PROXY 서버
***********************************************************
* MRTG 트랙픽서버
***********************************************************
# wget http://ftp.superuser.co.kr/pub/redhat/9/RPMS/net-snmp-5.0.6-17.i386.rpm
# rpm -Uvh net-snmp-5.0.6-17.i386.rpm
# /etc/init.d/snmpd start
SNMP패키지를 설치하면 /etc/snmp/snmpd.conf 라는 SNMP설정파일이 있다.
이 설정파일에서 SNMP커뮤니티네임(community name)과 시큐리티네임(security name)을 각각 설정한다.
com2sec notConfigUser default bible
group notConfigGroup v1 bible
group notConfigGroup vc bible
- 필요한 프로그램들 설치하기
perl
zlib
libpng
freetype
jpeg
gd
apache
- MRTG 설치
# wget ftp://ftp.ntua.gr/pub/net/monitoring/mrtg/mrtg-2.11.1.tar.gz
# tar xvf mrtg-2.11.1.tar.gz
# cd mrtg-2.11.1
# ./configure --with-gd=/usr/local/gd --wit-z=/usr/local/zlib --wit-png=/usr/local/libpng
# make
# make install
# cd /usr/local/mrtg
# mkdir conf
- MRTG설정파일 생성하기
# CFGMAKE --GLOBAL 'WorkDir: /home/mrtg/www/kebia_1' --global 'Options[_]: bits,growright' --output /home/mrtg/conf/bible.cfgbible@192.168.0.5
WorkDir: 옵션은 MRTG의 실행결과 파일들을 저장할 위치를 지정
Options에 설정한 부분은 그래프의 단위와 어느쪽으로 그릴 것인가를 지정
/home/mrtg/conf/bible.cfg는 생성될 결과파일을 지정
bible@192.168.0.5에서 192.168.0.5는 MRTG의 분석대상이며 bible은 대상서버에 설치된 snmp의 커뮤니티네임(community name)이다.
- cfg파일 분석
- MRTG 실행
# /usr/local/mrtg/bin/mrtg /home/mrtg/conf/kebia_1.cfg
설정
트랙백
댓글
글
<< OS별로 사용하고 있는 CPU, Physical Memory, Kernel bits를 알 수 있는 방법 >>
1.CPU
Solaris > psrinfo -v
HP-UX > ioscan -fnC
processorClass
AIX > lsdev -Cc processor
Tru64Unix >
psrinfo -v
2.Physical Memory
Solaris > prtconf -v
HP-UX > grep -i
Physical /var/adm/syslog/syslog.log
AIX > bootinfo -r
Tru64Unix > uerf | grep memory
Linux > free
3.Kernel Bits
Solaris > isainfo -kv
HP-UX > getconf
KERNEL_BITS
AIX > getconf WORD_BIT
> ls -al unix
==> unix -> /usr/lib/boot/unix_mp : 32bit(root dir에서)
unix -> /usr/lib/boot/unix_64 : 64bit(root dir에서)
Linux
> getconf WORD_BIT
> chown -R tuxedo:dba tuxedo
> sqlplus "/ as sysdba
"
SQLDBA> grant all on v$xatrans$ to medinfo;
SQLDBA> grant all on
v$pending_xatrans$ to medinfo;
SQLDBA> grant select on
dba_pending_transactions to medinfo;
> Tuxedo 8.1 Install시 필요한 Disk space 및 /temp
Sun Solaris :
296/94(MB)
HP : 338/38(MB)
AIX : 273/109(MB)
Compaq Tru64 : 376/135(MB)
Red Hat Linux : 243/14(MB)
-----
TIPS : 서비스에서 자산이 속한 SVRID를 알수 있는 방법
tpsvrinit
함수에서 getopt함수를 이용하여 "i"의 option값을 알아 낸 뒤 전역변수에 보관하여 사용하는 방법
-----
TIPS : Workstation Handler level에서 거래로그를 남기는 방법
tmtypesw.c에 거래로그를
남길 수 있도록 Custermize한 다음 buildwsh로 User WSH를 생성하여 사용하면 됨.
-----
TIPS :
Tuxedo 8.0 이상 Version 설치시 /tmp 및 설치 디렉토리에 대한 Disk space 확인 요망
취소
400MB이상 요구(반드시 확인)
-----
현상 : 160156.gold!atismj.25881: gtrid x0
x320ad964 x67: LIBTUX_CAT:488: ERROR: Invalid data pointer given to
tpreturn()
원인 : 1.Host Variable를 Local Variable로 선언하여 사용한 경우
2.FML Buffer에 Data를 집어 넣을 때 Data가 깨짐.
조치 : 1.Local Variable로 선언된 것을
Host Variable로 선언한다.
2.DB Column Length와 Host Variable의 Length를
확인.
문자형인 경우 Column Length + 1 인지 확인.
-----
현상 :
155108.gold!atictj.27658: LIBTUX_CAT:223: WARN: Duplicate server
155108.gold!atictj.27658: LIBTUX_CAT:248: ERROR: System init function failed,
Uunixerr =
원인 : 이미 기동되어 있는 Server를 재기동한 경우에 발생.
조치 : 기동되어 있는
Server를 죽이고 다시 처리한다.
-----
현상 : 103200.gold!stmyyh1.20241:
LIBTUX_CAT:328:ERROR: No space in Bulletin Board for Service Table
원인 :
UBB의 MAXACCESSERS, MAXSERVER, MAXSERVICE 등의 갯수가 적게 설정되어서 발생
조치 : UBB의
MAXACCESSERS, MAXSERVER, MAXSERVICE의 갯수를 확인하여 적게 설정되어 있는 값을 늘려준다.
-----
현상 : tmshutdown: internal error: CMDTUX_CAT:764: can't attach to BBL
원인 : Tuxedo기 기동되어 있지 않은 상태에서 tmshutdown을 할 경우에 발생.
조치 : TP/M Admin
요청
-----
현상 : CMDTUX_CAT:816: cannot exec, exectable file not
found.
원인 : Server에 Server실행 file이 없어서 발생하는 error
조치 :
buildServer를 실행시켜 실행 file를 만들어 준다.
-----
현상 : CMDTUX_CAT:868:
tmloadcf cannot run on a non-master node
원인 : 1.기존의 tuxconfig file이
있거나
2.uname -n에서 나타나는 system name이 다른 경우.(대.소문자 구분)
조치 :
1.기존의 tuxconfig file를 지운다.
2.uname -n에서 나타나는 이름을 MACHINES
SECTION에 부여한다.
*MACHINES
ELS
-----
현상 : [ELS]/aros2/users/uatijik/aros > ud -t 10 < data
CMDTUX_CAT:988: ud: SYNTAX ERROR in FBFR #1
LIBFML_CAT:10: ERROR:
Bad syntax in boolean expression
원인 : ud format에 대한 문제
-----
현상 : CMDTUX_CAT:993: RTN packet time out.
103020.ELS!BBL.29050:
LIBTUX_CAT:262: std main starting
103027.ELS!TMS_ORACLE7.29051:
LIBTUX_CAT:262: std main starting
103031.ELS!TMS_ORACLE7.29053:
LIBTUX_CAT:262: std main starting
103033.ELS!clstserv.29055:
LIBTUX_CAT:262: std main starting
103036.ELS!clstserv.29050:
LIBTUX_CAT:525: Default tpsvrinit() function used.
103036.ELS!WSL.29057: LIBTUX_CAT:262: std main starting
103038.ELS!WSH.29058: WSNAT_CAT:1030: Work Station Handler joining
application.
원인 : ud명령에서 트랜잭션 처리시간이 너무 작거나 혹은 ud에서 트랜잭션 처리시간을 명시하지
않아서( ud < data01 ) 발생한다.
조치 : ubb file에서 트랜잭션 처리시간을 늘려주거나
혹은 ud명령에서 트랜잭션 처리시간을 명시
하여 준다.(ud -t 60 <
data01)
-----
현상 : CMDTUX_CAT:994: reply failure: TPESVCERR - Server
error while handling request.
원인 : 1.FML Buffer size가 적어서 문제가 발생한다.
2.printf에서 varchar type의 data 출력시에 .arr를 붙이지 않았을 경우.
조치 :
1.FML Buffer size를 realloc 시켜준다.
FBFR *transf = (FBFR
*)rqst->data;를 아래와 같이 바꾸어 준다.
size단위는 4K단위가 좋다.(Page단위)
rqst->data = tprealloc(rqst->data, 10*1024);
transf = (FBFR *)rqst->data;
-----
현상 : CMDTUX_CAT:991: ERROR:
Can't send buffer TPETRAN - error starting transaction.
원인 : ud Testing시
XA-mode인 경우 -t Option을 사용하지 않아 발생.
조치 : ud Testing시 XA-mode인 경우 -t
Option을 사용할 것(ud -t 30 < data).
-----
현상 : CMDTUX_CAT:991: can't
send buffer: TPENOENT - no entry found.
원인 : Server가 활성화 되지 않은 경우.
조치 : Server를 활성화 시킴.
-----
현상 : CMDTUX_CAT:998: ud:SYNTAX ERROR in
FBFR #1
LIBFML_CAT:8: ERROR: Unknown field name
SRVCNM ra2ssv002
CMDTUX_CAT:991: can't send buffer:
TPENOENT - no entry found.
원인 : ud file의 정의(format)가 잘못된 것이다.
fml buffer변수와 값사이에 TAB으로 분리가 않됨.
서비스명 다음에 Return 값이 아니고 공백이
따라 온 경우.
변수와 값 사이에는 TAB이 존재하고, 문자의 마지막에는 공백이 없어야 한다.
makefile에 서비스명이 등록되지 않고 컴파일 될 때도 발생된다.
-----
현상 :
CMDTUX_CAT:1459:ERROR: can't commit transaction - tpcommit() failed - TPESYSTEM
- internal system error.
조치 : TP/M Admin 요청
-----
현상 :
095249.ELS!ra2s0310.29350: LIBTUX_CAT:262: INFO: Standard main starting
095249.ELS!ra2s0310.29350: LIBTUX_CAT:334: ERROR: No BBL
095249.ELS!ra2s0310.29350: LIBTUX_CAT:248: ERROR: System init function failed.
Unixerr =
095249.ELS!tmboot.29349: WARNING: No BBL available on
site SITE1.
Will not attempt to boot Server processes on
that site.
exec ra2s0320 -A -r -e ra2s0320.err -o ra2s0320.out :
CMDTUX_CAT:822: No BBL available, cannot boot
tmboot:
WARNING: No BBL available on site SITE1.
Will not attempt to boot
Server processes on that site.
0 processes started.
원인 :
BBL, TMD_ORACLE7, WSL, WSH이 Memory에 올라 오지 않아서 문제가 발생됨.
조치 : tpadmin이
BBL, TMS_ORACLE7, WSL, WSH를 먼저 올려 주어야 한다.
-----
현상 :
191949.ELS!ra2s0310.19845: gtrid x10001 x30b4307f xb: LIBTUX_CAT:1401: WARN:
tpforward tpacall failure TPENOENT - no entry found.
원인 : tpforward(
ra2ssv001, (char *)transf, 0, 0 ); 에서 서비스를 String으로 처리하지
않으므로
발생.
조치 : tpforward( "ra2ssv001", (char *)transf, 0, 0 ); 으로
수정.
-----
현상 : 152039.SQNT1!WSH.26463: WSNAT_CAT:1185: INFO: Userid:
[PENTA], Clientid: [TUXEDO] timed out due to inactivity.
152108.SQNT1!WSH.21108: gtrid x0 x30b4305a x15: WSNAT_CAT:1042: ERROR: tpcall()
call failed, tperrno = 6
원인 : Client, Server의 서비스명이 틀리거나 BBL에 존재하지 않은
경우에 발생
조치 : Client, Server의 서비스명 확인, Service가 존재하는 Server를
기동시킨다.
-----
현상 : TP Booting시 SITE1에는 TP BOOT 되었는데 SITE2에는 TP가 BOOT된
상태가 아닌 상태에서
ud 명령어로 Data를 Select함.
CMDTUX_CAT:1459: ERROR: can't commit transaction - tpcommit() failed - TPESYSTEM
- internal system error.
원인 : ORACLE TMS_ORACLE7가 올라오지 않아서 발생한 문제임.
조치 : TP/M Admin에게 TMS_ORACLE7를 올려줄 것을 요청.
-----
현상 : exec WSL -A
-- -d /dev/tcp -n 0x0002ababa5f3070a -w WSH -m 1 -M 2 -x 2 -t 1 : Failed.
원인 : SYSTEM에 IP ADDRESS가 잘못된 경우임.
조치 : SYSTEM에 IP ADDRESS를 확인.
/ETC/HOSTS라는 File에 가보면 확인 할수 있다.
-----
현상 : ELS에서 tpstart를
시킴.
192642.ELS!tmboot.19904: FATAL: internal error:
CMDTUX_CAT:767: must run on master node
원인 : UBB file에 설정되어 있는 Master
node가 아닌 node에서 Tuxedo를 booting한 경우에 발생.
조치 : UBB file에서 Master node를
확인하고 Master Tuxedo를 booting시킴.
-----
현상 :
[SQNT1]/aros2/tuxedo/env3> tmboot -y
Booting all admin and
Server processes in /aros2/tuxedo/env3/tuxconfig
Booting admin processes .....
exec BBL -A: on
SITE1 -> Failed.
tmboot: WARNING: No BBL available on site
SITE1.
Will not attempt to boot Server processes on that
site.
tmboot: WARNING: internal error: CMDTUX_CAT:798: Cannot
boot remote BBL(SITE2),
not BRIDGE available on DBBLs
node(SITE1).
Booting Server processes ...
tmboot:
WARNING: No BBL available on site SITE2.
Will not attempt
to boot Server processes on that site.
0 processes started.
원인 : DBBL가 존재하는 Master node인 SITE1에서 SITE2의 BRIDGE를 허용할 수 없는 경우에 발생
조치 : 현재 SITE2에 떠 있는 tlistener가 있으면 재기동한다.
-----
현상 : client(end user
pc)에서 응용 프로그램을 start시켰을때 client ulog file에 저장된 내용
110932.PC!?proc.6367: LIBWSC_C:1055: ERROR: Unable to establish WSL
connection
110932.PC!?proc.6367: LIBWSC_C:1027: ERROR: Unable to
connect to WSH
110932.PC!?proc.6367: LIBWSC_C:1020: ERROR: Unable
to obtain authentication level
110932.PC!?proc.6367: tpinit
failed, ERROR: TPESYSTEM - internal system error
원인 : 1.Server
Computer(TP Admin)에서 WSL(Workstation linstener)를 오려주지 않아서 발생.
2.buildclient로 native client를 생성하지 않은 경우에 발생
조치 : 1.TP Admin의 권한을 가지 사람이
WSL을 올려주면 된다.
-----
현상 : Syntax error at line 1, column 17, file
/aros2/tuxedo/include/tb_ra115.h:
VARCHAR
a115_regt_ver[3];
.............1
(1) PCC-s-0221,
Encountered the symbol "a115_regt_ver" when expecting one of the
following:
; , = : ( [ * ? | & < > + - / % . ^
*= /= %= += -= <<= >>= &&= ||= ^= | & ==
!= <= >= << >> ++ etc.
The symbol ";" was
substituted for "a115_regt_ver" to continue.
printf( " 5555555555555 \n" );
FMLLOOK( "
내용설명:신청사건의 entity가 있으면 그 데이타를 ", a115_regt_no.arr );
EXEC SQL
INCLUDE tb_ra115.h;
int i = 0
/* FOR LOOP COUNT */
,hiTcnt = 0;
/* 신청사건 COUNT */
조치 : EXEC SQL INCLUDE tb_ra115.h;
int i
= 0 /* FOR LOOP COUNT */
,hiTcnt = 0; /* 신청사건 COUNT */
printf(
" 5555555555555 \n" );
FMLLOOK( " 내용설명:신청사건의 entity가 있으면 그 데이타를
", a115_regt_no.arr );
에서
EXEC SQL INCLUDE
tb_ra115.h;
int i = 0 /* FOR
LOOP COUNT */
,hiTcnt = 0; /* 신청사건
COUNT */
와 같은 것이
printf( " 5555555555555 \n"
);
FMLLOOK( " 내용설명:신청사건의 entity가 있으면 그 데이타를 ", a115_regt_no.arr
);
와 같은 것보다 앞서와야 한다.
-----
현상 : "readkapttmprgs.c",
line 433: undefined symbol: KAP
"readkapttmprgs.c", line 433:
warning: left operand of "." must be struct/union object
"readkapttmprgs.c", line 433: non-unique member requires struct/union object:
len
원인 : PUTVAR 분분에서 문제가 발생함. Char type를 PUTVAR로 보냈기 때문이다.
조치 :
Char type으로 전송을 하고 Host변수도 앞에 "&"를 붙여준다.
-----
현상 :
"readkaptmprgs.c", line 454: syntax error before or at: a315_pin
원인 :
LINELOOK or FMLLOOK 같은 Debug 함수의 사용순서가 잘못 되었을 때 발생한다.
조치 : LINELOOK or
FMLLOOK 같은 Debug 함수를 삭제하든가, 쓸 위치를 바꾼다.
-----
현상 : Test에서 Client에서 발생한
문제임.
ErrMsg: tpcall failed, ERROR: TPESVCERR - Server error while
handling request
그러나, Server에서 ud는 FML buffer의 내용은 정상으로 화면에
보여진다.
원인 : Variable에 대응되는 Variable type이 서로 맞지않는 경우에 발생한다.
조치 :
대응되는 변수의 갯수와 Variable type를 확인하고 서로 같게 한다.
-----
현상 : System default
option values taken from: /aros1/oracle/proc/pmscfg.h
sh: 25156
기억영역 장애 - core가 생겼음
*** Error code 139
Make: .
Stop.
원인 : VARCHAR bfr_table_no[];
VARCHAR
bfr_table_pk[];
에 array의 길이를 정해주지 않았을 때 발생한다.
조치 :
VARCHAR bfr_table_no[5];
VARCHAR bfr_table_pk[41];
-----
현상 : 172910.ATIA!?proc.-80091: SRVCNM is BADFIELD
172910.ATIA!?proc.-80091: Invalid data format, LIBFML_C:8: ERROR: Unknown field
name
원인 : 1.FML Buffer의 Field name과 맞지 않거나 미등록된 경우에 발생
2.TUXEDO Version Up으로 인하여 이전 Version에 있는 TUXEDO Function을 사용한 경우에 발생
조치
: 1.FML Buffer 확인 및 등록
2.TUXEDO Function 확인
-----
현상 :
TPCALL Field Error: TPENOENT - no entry found.
원인 : Server가 기동되지 않은 상태에서
Service를 TPCALL할 경우에 발생한다.
조치 : Server 기동여부 및 Service가 맞는지
확인.
-----
현상 : 101922.ATIA!?proc.-152805: tpcall failed, TPENOENT -
no entry found
원인 : 1.TP_CALL()함수에서 호출하는 서비스가 없다.
2.Server Process기동시 구성파일(UBB)에서 최대값이 부족한 경우
조치 : 1.Server Process,
Service를 확인
2.UBB File에서 MAXACCESSERS, MAXSERVERS, MAXSERVICE 값을
확인한다.
-----
현상 : Service를 호출하여 DataWindow에 어떤 Data를 Display하지
못함.(Data는 정상적으로 가져옴)
원인 : DataWindow에 Import String하기 전에 DataWindow를
Reset를 수행하지 않을 경우에 발생함.
조치 : DataWindow.Reset한 후에 ImportString를
함.
-----
현상 : tpinit Error
원인 : 1.접속할 Server process의
Address가 없다.
2.Server Process쪽에 WSL이 떠 있지 않다.
3.접속
권한이 없다.(암호검사를 하는 경우)
4.최대 사용자 수를 넘었다.
5.여러 개의 DLL이
존재한다.(특히 ulog file이 생성되지 않는 경우)
6.4GL쪽에 정의한 DLL의 경로가 틀리거나 정확하게
인식하지 못한다.
조치 : 1.PC에서 해당 Machine으로 Ping이나 Telnet이 잘되는지 확인한다.
2.DOS의 환경변수 WSNADDR 설정을 확인한다.
3.Server에 WSL을 확인한다.
4.MAXWSCLIENTS와 WSL에서 WSH의 Max값을 확인한다.
5.DOS의 Root
Directory에서 'DIR' 명령의 '/s' Option으로 DLL을 검색한다.
6.4GL에서 DLL 정의부분을
확인한다.
7.4GL Compile을 새로한다.
-----
현상 : Server가
죽는다.
원인 : 1.Pointer 사용이 잘못됨
2.준비된 Buffer Size가 부족한다.
조치 : 1.Complie시 Warning이 있는 위치를 확인한다.
2.Memory 혹은 strcpy()함수
사용시 각 Memory의 크기를 확인한다.
3.Program의 Debug 문장을 넣어서 죽은 위치를 확인하여
검사한다.
-----
현상 : FML Buffer에 Data를 복사하지 못한다.
원인 : 1.할당된
Memory가 작다.
2.Server에서 다른 Server로 호출하여 할당된 Memory 크기가 변했다.
조치 : 1.tprealloc()함수를 사용하여 Memory를 크게 잡는다.
2.호출에서 반환된 Memory를
다시 tprealloc()한다.
-----
현상 : FML Field를 못 찾는다.
원인 : 1.환경변수
FLDTBLDIR, FIELDTBLS가 설정되어 있지 않다.
2.ENVFILE안에서 환경변수가 잘못 설정되어
있다.
3.Field table에 해당 Field가 없거나 잘못 정의되어 있다.
조치 : 1.set
명령의 출력 및 ENVFILE을 확인한다.
-$ set > kkk 수행 후 kkk file내의 환경변수
확인
-$ vi ENVFILE 수행에서 "set list"하여 White characters를 확인
2.Field table을 확인한다. (field-name은 대소문자를 구분한다.)
3.PC
Client쪽의 Field table은 반드시 소문자로 작성한다.
-----
현상 : 분기(Routing)
Error
원인 : 1.Buffer안에 Routing을 위한 값이 없다.
2.Routing 값으로 갈
수 있는 곳이 지정되어 있지 않다.
조치 : 1.Buffer에 Routing 값을 넣는다.
2.Routing을 재설정하거나, 입력된 Routing 값을 바꾼다.
-----
현상 : Server process가
종료되지 않는다.
원인 : 1.Server process가 무한 Loop를 돈다.
2.BB(게시판)가
Locking 상태에 있다.
조치 : 1.Server process를 kill 명령으로 죽이고 tmshutdown 명령을 한번
수행시켜준다.
2.TUXEDO의 tmadmin, tmboot, tmshutdown 명령이 수행중인지 확인하고 존재하는
명령이 없도록한다.
-"ps -ef | grep tm"명령으로 수행되는 TUXEDO 명령을 확인한다.
그후 tmadmin으로 들어가서 "bbc(BBL Clean) 명령을 수행한다.
-"bbc"
명령은 지정된 Machine 내에 있는 Dead Server Process와 연관된 IPC 자원을 Clear 시킴.
-----
현상 : Server Buffer에 이상한 값이 저장
원인 : 1.변수의 유형정의가 일치되지 않는다.
2.Memory 복사시 잘못된 곳으로 복사를 한다.
3.변수의 크기가 작다.
조치 : 1.변수유형을
맞춰준다.
2.Debug Code로 내용이 변화되는 부분을 찾아 해결한다.
3.변수의
크기를 맞춰준다.(DB table의 Colimn Size가 n이면 program내에서 선언하는 Host Variable의
Size는 반드시(n+1)로 선언한다.)
-----
현상 : Server Program에서 직전에 발생한 Error가
이후에 계속 발생함(개발시)
원인 : Oracle의 경우 sqlcode가 재설정되지 않는 문장에서 Error Check를
함.
조치 : 해당 문장에서 Check logic을 빼거나 sqlcode를 사용하기전에 초기화 한다.
-----
현상 : MP mode에서 "can't propagate TUXCONFIG file"라는 Error 발생
원인 :
1.Listener Process가 기동되어 있지 않음
2.Temporary Directory인 /tmp 혹은
/use/tmp가 Full 되어 있음
3.TUXCONFIG에 대한 환경변수 설정이 잘못되어 있다.
4.Transaction 처리를 위한 TLOG 혹은 TUXEDO/Q 사용을 위한 QUE 등의 Device가 생성되어 있지 않음.
조치 : 1.Master 및 Back-up Machine에서 Listener Process를 기동시킨다.
-$tlisten [-d/dev/tcp] -l NLSADDR(NLSADDR은 UBBCONFIG에 정의된 내용)
2./tmp 혹은 /usr/tmp Directory는 TUXCONFIG File을 생성하기 위한 Temporary Directory로,
Full 상태로 존재하여서는 않됨.
3.환경변수 화일 및 ENVFILE에서 TUXCONFIG의
설정값을 확인한다.
4.환경변수 화일 및 ENVFILE에서 TLOGDEVICE의 설정값을 확인한다.
TLOG/QUE등을 생성하기 위한 Shell Script(crtlog, crque 등)를 수행하였는지
확인
-----
현상 : DOMAIN에서 해당 DOMAIN 구분자를 얻어내지 못함
원인 : 1.DOMAIN
구성파일(domconfig)에서 해당 DOMAIN 구분자가 잘못되어 있다.
2.DOMAIN의 Port Number
혹은 IP Address가 다른 DOMAIN을 가르킨다.
조치 : 1.DOMAIN 구성파일에서 LOCAL 혹은 Remote
DOMAIN 구분자를 확인한다.
2.DOMAIN의 주소와 포트를 확인한다.
-----
현상 :
BB에 PE 항목을 등록하지 못함.
원인 : 해당 Server의 'uname -n'의 반환값과 구성파일의 Machine 이름이
다름
조치 : 두가지 이름을 동일하게 맞춤( 'hostname'도 동일하게 맞춤 )
-----
현상 :
112557.ATIA!?proc.-32617: end of file before end of packet indicates syntax
error
112557.ATIA!?proc.-32617: write to outdata failed,
LIBFML_C:10: ERROR: Bad syntax in boolean expression
원인 : 1.Outdata
form에서 설정한 것과 다르게 Outdata를 ImportString한 경우에 발생
2.Service는 정상적으로
처리하는데 TP_CALL의 Return Value이 -1로 Return됨
조치 : 1.Outdata form에서 설정한 것에
Outdata를 ImportString하기 바람
2.Client의 Form구성 중 마지막에 "~n"를 삽입하면
된다.
-----
현상 : Fget() Error : Ferror = 3 ( FNOSPACE )
원인 :
Fget()의 마지막 매개변수인 long값(Length)의 Pointer가 가르키는 위치에 FML Buffer안의 내용보다
크기가 작게 설정되어 있다.
조치 : Length을 0으로 설정한다.(단, 이 경우 Buffer의 크기가
충분해야한다.)
-----
현상 : Fget() error -> Lib FML-CAT4: ERROR Field not
present !
원인 : 1.FML Buffer에 미등록된 Data field를 사용할 때 발생된 error임.
조치 : FML Buffer 등록시 값이 등록되어 있지 않거나, Service에서 GETVAR하기전에 Finit()을
시켜줌
-----
현상 : Fget( (FBFR *)transf, A315PIN, 0, a315pin, 0 );
"clstserv.c", line 433: argument is incompatible with prototype: arg
#4
원인 : macro를 사용할 경우는 host변수에 .arr를 붙여주지 않은 경우에 발생
조치 : Fget(
(FRFB *)transf, A315PIN, 0, a315pin.arr, 0 );
a315pin.len =
strlen( a315pin.arr );
-----
현상 : Fchg() error -> LIBFML_CAT:3:
ERROR: No space in fielded buffer !
원인 : 서버의 memory 부족으로 발생한다.
조치 : rqst->data = tprealloc( rqst->data, 40*1024 );
transf
= ( FBFR * )rqst->data;
-----
현상 : tpcommit() Error
원인 :
1.tpbegin()이 되어있지 않음
2.Time-out 발생
3.Server에서
TPFAIL로 Return
4.TMS 초기화 혹은 동작 이상
5.Oracle 22번
error(ORA-22:"Invalid session id; access denied")
조치 : 1.tpbegin()을
넣어줌
2.tpbegin()시 시간을 길게 주거나 Service 시간을 줄이도록 튜닝함.
3.Server의 Tansaction은 ABORTONLY로 표시됨
(따라서, Commit을 하고자 하는 경우에는
TPSUCCESS로 Return해야 함)
4.TMS를 Kill시키고 tmadmin상에서 bbc명령을
수행한다.
5.TM이 Open하고 있는 정보와 Application이 Open하는 정보가 다르다.
'@Server-name'과 같은 식으로 사용하여 TM이 접근할 수
없는 Session이 이루어 지고 있음.
-----
현상 : TPMINVAL(tperrno=0-Minimum Error
Message)
원인 : Minimum Error Message
-----
현상 :
TPEABORT(tperrno=1-ATMI Error Message)
원인 : Transaction이 Abort된 경우
발생
-----
현상 : TPEBADDESC(tperrno=2-ATMI Error Message)
원인 :
tpgetrply()에 잘못된 디스크립터
Cd가 올바른 Reply Descriptor를 갖지 못한
경우
-----
현상 : TPEBLOCK(tperrno=3-ATMI Error Message)
원인 :
blocking condition이 발견됨
TPNOBLOCK Flag가 Setting되어 있는데 Blocking이 될
때 발생
-----
현상 : TPEINVAL(tperrno=4-ATMI Error Message)
원인 :
잘못된 인수
함수의 Parameter가 올바르게 Setting되지 않았거나, Flag에 비정상 값이 있을 때
발생
-----
현상 : TPELIMIT(tperrno=5-ATMI Error Message)
원인 :
너무많은 Handle
호출한 Async Call의 개수가 Maximum값에 도달했을 때 발생
-----
현상 : TPENOENT(tperrno=6-ATMI Error Message)
원인 : Bulletin Board에 여유가
없거나 항목이 발견되지 않음.
호출한 Service가 System에 없을 경우
Conversational로 지정한 Server의 Service를 tpcall로 호출한 경우
-----
현상 :
TPEOS(tperrno=7-ATMI Error Message)
원인 : 운영체제 오류
Operating System Error의 발생을 의미.
다른 노드의 메시지 큐가 full인 경우와 같을
발생
-----
현상 : TPEPERM(tperrno=8-ATMI Error Message)
원인 : 허가되어
있지 않거나 권한이 없음(System/T 관리자가 아닌 Login에서 사용한 경우)
Security 규약을 어겼을
경우 발생
-----
현상 : TPEPROTO(tperrno=9-ATMI Error Message)
원인 :
프로토콜 오류
Transaction을 Abort할 수 없는 경우에 tpabort를 호출한 경우
보통 Transaction Initiator가 아닌 Service에서 tpabort를 호출한 경우와 Non-Transaction Mode에서
tpabort를 호출한 경우 발생
tpacall
-----
현상 :
TPESVCERR(tperrno=10-ATMI Error Message)
원인 : 요구처리시 서버 오류
Service Program에서 tpreturn이나 tpforword를 잘못 사용하였을 경우 발생
보통 Invalid
Flag Setting과 같은 경우 발생
Tuxedo는 tpcommit이 호출되더라도 Transaction을
Abort한다
-----
현상 : TPESVCFAIL(tperrno=11-ATMI Error Message)
원인 : 응용프로그램 레벨 서비스 오류
tpreturn에서 TPFAIL Flag를 Setting했을때 발생
Tuxedo는 tpcommit이 호출되더라도 Transaction을 Abort한다
-----
현상 :
TPESYSTEM(tperrno=12-ATMI Error Message)
원인 : System/T 내부오류(로그에 메세지
쓰임)
Tuxedo 내부적 문제의 발생을 의미, 상세 메시지는 로그파일에 기록
-----
현상 :
TPETIME(tperrno=13-ATMI Error Message)
원인 : TPNOBLOCK이 지정되지 않았고, 서비스
수행시간을 초과한 경우에 발생.
Timeout이 발생한 경우(Transaction Mode일 경우는
Transaction Timeout이고 Non-Transaction Mode일 경우 TPNOBLOCKING Flag가 Setting되어 있지
않으면 Blocking timeout을 의미)
-----
현상 : TPETRAN(tperrno=14-ATMI Error
Message)
원인 : 트랜잭션 모드에서 트랜잭션이 취소됨
Invoker가 Transaction
Mode이고 호출된 Service가 Transaction Mode를 수행할 수 없을 때
그리고 TPNOTRAN으로
Flag가 Setting되어 있지 않을 때 발생
-----
현상 : TPGOTSIG(tperrno=15-ATMI Error
Message)
원인 : TPSIGRSTRT가 지정되지 않았고, Signal을 받음.
TPSIGRSTRT Flag가 Setting되지 않았는데 Function수행중 Signal이 발생할 경우
-----
현상 :
TPERMERR(tperrno=16-ATMI Error Message)
원인 : Resource Manager
오류
-----
현상 : TPEITYPE(tperrno=17-ATMI Error Message)
원인 :
서비스의 유형이나 하위유형과 일치하지 않음.
Input buffer로 Allocate한 Buffer의 Type을
Tuxedo가 인식하지 못할 때
보통 Pointer가 깨지거나 tpalloc에 의해 Space를 Allocate하지
못했을 경우 발생
-----
현상 : TPEOTYPE(tperrno=18-ATMI Error Message)
원인 : 버퍼 혹은 무언가의 유형 혹은 하위 유형과 일치하지 않음.
Output buffer로 allocate한
buffer의 type을 Tuxedo가 인식하지 못할 때
보통 Pointer가 깨지거나 tpalloc에 의해
Space를 Allocate하지 못했을 경우 발생
또는 TPNOCHANGE로 Flag가 Setting되지 않았는데,
Return된 Buffer Type이 Allocate한 Buffer Type과 다를경우 발생
-----
현상 :
TPERELEASE(tperrno=19-ATMI Error Message)
원인 : 3.0버젼의 라이브러리 호출이
발생
-----
현상 : TPEHAZARD(tperrno=20-ATMI Error Message)
원인 :
트랜잭션이 자발적으로 끝날 위험이 있음
Application Level에서 Transaction을 결정할 수 없어
자발적으로 끝날 가능성이 있는 경우
-----
현상 : TPEHEURISTIC(tperrno=21-)
원인 :
Application Level에서 Transaction을 결정할 수 없어 자발적으로 끝났을 경우
-----
현상 :
TPEEVENT(tperrno=22-ATMI Error Message)
원인 : 이벤트발생
Event가
발생하였을 경우, Event Type이 Revent로 Setting되어 있어야 한다
-----
현상 :
TPEMATCH(tperrno=23-ATMI Error Message)
원인 : 일치하지 않아서 서비스 이름을 알릴 수
없음
이미 발생한 Event로 중복되어 Service 이름을 알릴 수 없을 경우
-----
현상
: TPEDIAGNOSTIC(tperrno=24-)
원인 : 특정한 tperrno를 셋팅하여 체크 할 수 있는
경우
-----
현상 : TPEMIB(tperrno=25-)
원인 :
-----
현상 :
TPMAXVAL(tperrno=26-Maximum Error Message)
원인 : Maximum Error
Message
-----
현상 : tmshutdown: internal error: CMDTUX_CAT:766: must
run on master node
원인 : BBL이 죽음
조치 : TP/M Admin 요청
-----
현상 : Indata 구성이 제대로 되었는데 TP_CALL한 뒤에 Server쪽에서 FMLLOOK를
이용하여
FML Buffer에 전달된 Data를 출력한 결과 Data의 일부가 소실됨.
원인 : GET, GETVAR를 PUT,
PUTVAR로 잘못 사용한 경우에 발생
조치 : GET, GETVAR를 PUT, PUTVAR로 수정
-----
현상 : Server를 죽였는데도 계속 되살아남.
원인 : UBB File의 "RESTART=Y"로 설정된 경우에 발생
조치 : UBB File의 "RESTART=N"로 설정
-----
현상 : makefile에서 error
[SQNT1]/aros2/users/uatijik/aros/svc > make
buildServer -o ra1s0160 -f ra1ssv1281.o \
-f ra1ssv1303.o \
-f /aros2/tuxedo/lib/macro.o \
-f /aros2/tuxedo/lib/librecv.a \
-f /aros2/tuxedo/lib/libreal.a \
-f /aros2/tuxedo/lib/libFA101Read.a \
CMDTUX_CAT:520: unused
arguments passed to buildServer
*** Error code 1
make: . Stop.
원인 : -f /aros2/tuxedo/lib/libFA101Read.a \의 끝부분에 공백이 있어서
발생된 것임.
조치 : 공백 삭제후 다시 컴파일함.
-----
현상 : makefile에서 error
System default option values takem from:
/aros1/oracle/proc/pmscfg.h
Preprocessor error at line 235,
column 1, file fa113read.pc:
1
(1) PCC-S-02018,
found end-of -file while scanning comment
(1) PCC-F-02102, Fatal
error while doing C preprocessing
*** Error code 1
Make: . Stop.
원인 : 주석 처리된 부분에서 "{"가 포함되어 발생된 error임.
조치 : 주석 처리된
부분을 모두 지움.
-----
현상 : makefile에서 error
buildserver -o
atilji \
-f common.o \
-f f_c_errmsg.o \
-f sid_dome_head.o \
-f sid_report_sel.o \
-r Oracle_XA
\
-s SID_DOME_HEAD \
-s
SID_REPORT_SEL \
-v
cc
-I$TUXDIR/include -o atilji BS-68b7.c -L${TUXDIR}/lib common.o
f_c_errmsg.l
Undefined first
referenced
symbol in file
ABS sid_dome_head.o
ld: fatal: Symbol
referencing errors. No output written to atilji
NLS:4: Cannot
open message catalog CMDTUX_CAT, set 1, num 524; check TUXDIR=/hok
원인 :
각 문장에서 문법적인 문제는 없다. 각 부분에서 함수선언 및 기타 등등 ...
조치 : 1.함수 "ABS"(절대값)를 대문자가
아닌 소문자로 바꾼다.
2.makefile에서 lib link 순서를 바꾸어 본다.
3.모든 *.o, *.c file을 지우고 새로 컴파일한다.
4.그래도 안되면 해당 프로그램을 새로
작성한다.
(Vi Editor가 아닌 곳에서 작성된 Source는 프로그램내에 특수문자가 존재
가능)
-----
현상 : makefile에서 error
/home/lgeds/ati/lji/source>make
/rdb1/lgiora/bin/proc
ireclen=132 oreclen=132 include=/home/tuxedo/include sqlcp
Pro*C/C++: Release 2.1.3.0.0 - Production on Thu Aug 22 11:50:01 1996
Copyright (c) Oracle Corporation 1979, 1994. All rights reserved.
System default option values taken from: /rdb1/lgiora/proc/pmscfg.h
gcc -D DEBUG -I/home/tuxedo/include -I/sqllib/public -c
sid_dome_item.c
sid_dome_item.c:137:
/home/lgeds/source/test/bin/lgi_2005.h: No such file or diy
***
오류 코드 1
make: 치명적인 오류: 타겟 `sid_dome_item.o'를 위한 명령어가 실패
원인 : Unix Server DiskSpace Full
조치 : Unix Server DiskSpace
조정
-----
현상 : makefile에서 error
/home/lgeds/ati/lji/source>make
TUXDIR=/home/tuxedo \
/rdb1/lgiora/bin/proc ireclen=132 oreclen=132
include=/home/lgeds/source/test/ip
Pro*C/C++: Release 2.1.3.0.0 -
Production on Wed Aug 28 10:30:02 1996
Copyright (c) Oracle
Corporation 1979, 1994. All rights reserved.
System default
option values taken from: /rdb1/lgiora/proc/pmscfg.h
Syntax error
at line 0, column 0, file sid_delete.pc:
(1) PCC-S-02201,
Encountered the symbol "<eof>" when expecting one of the follo:
; { } ( * & + - ~ ! ^ ++ -- ... break, case, continue,
default, do, for, goto, if, return, sizeof, switch, etc.
The symbol "}" was substituted for "<eof>" to continue.
(1)
PCC-F-02102, Fatal error while doing C preprocessing
*** 오류 코드
1
make: 치명적인 오류: 타겟 `sid_delete.c'를 위한 명령어가 실패
원인 : 프로그램
내의 "<eof>"가 잘못됨
-----
현상 :
/home/lgeds/ati/lji/source>make
TUXDIR=/home/tux61 \
/rdb1/lgiora/bin/proc ireclen=132 oreclen=132
include=/home/lgeds/source/test/ip
Pro*C/C++: Release 2.1.3.0.0 - Production on Mon Dec 2 15:37:44 1996
Copyright (c) Oracle Corporation 1979, 1994. All rights reserved.
System default option values taken from: /rdb1/lgiora/proc/pmscfg.h
Previous errors prevent continued compilation.
Please correct reported errors and then recompile. (Code = 40701)
*** 오류 코드 1
make: 치명적인 오류: 타겟 `sid_credit_anal.c'를
위한 명령어가 실패
원인 : 변수의 Pointer를 인수로 사용한 경우
조치 : 변수명칭 앞에 "&"를
제거한다.
-----
현상 : 103827.kmic!ud.6225: 070798: TUXEDO Version 6.3
SunOS 5.5.1 Generic sun4u sparcSUNW,Ultra-1.
103827.kmic!ud.6225: LIBTUX_CAT:271: ERROR: System lock semop failure, key =
311587 (errno = 28)
원인 : Makefile에서 DB에 접근권한이 없거나 User ID/PASSWD을 주지 않은
경우
조치 : DB에 접근할 수 있는 권한 또는 User ID/PASSWD을 준다.
-----
현상 :
/usr/kmic_tux/kmicco/src/lji/back] make
/usr/ssw/app/oracle/product/7.3.4/bin/proc ireclen=1024 oreclen=1024
select_errc
Pro*C/C++: Release 2.2.4.0.0 - Production on Sat Jul 18 09:42:39 1998
Copyright (c) Oracle Corporation 1979, 1996. All rights reserved.
System default option values taken from: /usr/ssw/app/oracle/product/7.3.4/prech
Semantic error at line 76, column 14, file s_bdb050_u1.pc:
EXEC SQL EXECUTE
.............1
(1)
PCC-S-02345, SQLCHECK=SEMANTICS must be given when embedded PL/SQL blocks ad
*** 오류 코드 1
make: 치명적인 오류: 타겟 `s_bdb050_u1.o'를 위한
명령어가 실패
원인 :
-----
현상 : 150357.kmic!ud.7130: gtrid x0
x35b55049 x26: GP_CAT:1027: ERROR: Routing field for 's_bbs110_r1' null
150357.kmic!ud.7130: gtrid x0 x35b55049 x26: LIBTUX_CAT:741: ERROR:
Routing function failed
원인 : Rounting field에 Null 값 존재
조치 :
Rounting field에 Null이 존재하지 않도록.
-----
현상 :
/usr/kmic_tux/kmicco/src/srcco] make -f jcosrv07.mk
TUXDIR=/usr/ssw/app/tuxedo \
CFLAGS="-D DEBUG
-I/usr/ssw/app/tuxedo/include -I/usr/kmic_tux/kmicd/include -I\
/usr/ssw/app/tuxedo/bin/buildserver -r Oracle_XA \
-s s_bdb040_t1,s_bdb040_u1,s_bdb060_t1,s_bdb061\
-o JCOSRV07 \
-f
/usr/kmic_tux/kmicd/lib/common.o \
-f
/usr/kmic_tux/kmicco/lib/common_co.o \
-f
"s_bdb040_t1.o s_bdb040_u1.o s_bdb060_t1.o s"
ld: warning: symbol
`bdb01' has differing sizes:
(file s_bdb040_t1.o
value=0x120; file s_bdc010_u2.o value=0x11c);
s_bdb040_t1.o definition taken
cp JCOSRV07
/usr/kmic_tux/kmicco/src/apps/run/.
\rm JCOSRV07
원인 :
Disk full.
조치 : 불필요한 자료를 정리하고 Disk Space를 확보.
-----
현상 :
LIBTUX_CAT:1528:Error:Invalid buffer passed to tpfree error = BEMAGIC - magic
number invalid.
ORA-28 : your session has been killed.와 함께
발생.
Fchg() error -> LIBFML_CAT:3: ERROR: No space in fielded
buffer !
원인 : FML Buffer Size를 초과(64K이상)한 자료를 FML Buffer로 보냄.
조치
: FML Buffer로 보낼자료가 64K가 되지 않도록.
-----
현상 :
172442.홍길동!?proc.-4038313: NLS:4: Cannot open message catalog GP_CAT,
set 1, num 1079; check TUXDIR=NULL,
LANG=C
172442.홍길동!?proc.-4038313: NLS:4: Cannot open message
catalog LIBWSC_CAT,
set 1,
num 1062; check TUXDIR=NULL, LANG=C
172442.홍길동!?proc.-4038313:
NLS:4: Cannot open message catalog LIBWSC_CAT,
set 1, num 1027; check TUXDIR=NULL, LANG=C
172442.홍길동!?proc.-4038313: NLS:4: Cannot open message catalog LIBWSC_CAT,
set 1, num 1020; check TUXDIR=NULL,
LANG=C
172442.홍길동!?proc.-4038313: tpinit failed, NLS:4: : catalog
LIBWSC_CAT,
set 1, num 1139;
check TUXDIR=NULL, LANG=C
원인 : Tuxedo directory가 설정되어 있지 않음.
조치
: 환경 파일에 Tuxedo directory(TUXDIR)를 설정한다.
-----
현상 : kumca3:tuxadm
/tuxedo/sdk/udataobj> buildtms -r Oracle_XA -o TMS_ORACLE3
CMDTUX_CAT:522: ERROR: buildserver cannot open the temporary output file, BS-948
e.c.
CMDTUX_CAT:530: ERROR: Cannot execute
$TUXDIR/bin/buildserver -r Oracle_XA -o TMS_ORACLE3 -s TMS -f
$TUXDIR/lib/TMS.o
원인 : tuxedo/tuxedo 계정이 아닌 것을 사용하여기 때문.
조치 :
tuxedo/tuxedo 계정을 사용.
-----
현상 : kumca3:/tuxedo/sdk/udataobj]
buildtms -r Oracle_XA -o TMS_ORACLE8
ld: 0706-005 Cannot find or
open file: /lib/crt0.o
ld:open(): A file or
directory in the path name does not exist.
CMDTUX_CAT:1832:
ERROR: can't execute cc -I$TUXDIR/include -o TMS_ORACLE8 BS-9ae2.c
-L${TUXDIR}/lib /tuxedo/sdk/lib/TMS.o -ltux -lbuft -ltux2 -L/oracle/lib/
-lclntsh -lfml -lfml32 -lgp
CMDTUX_CAT:530: ERROR: Cannot
execute $TUXDIR/bin/buildserver -r Oracle_XA -o TMS_ORACLE8 -s TMS -f
$TUXDIR/lib/TMS.o
원인 : /lib directory가 존재하지 않음.
조치 : /lib
directory를 생성하고 모듈을 복사함.
-----
현상 : CMDTUX_CAT:1685: ERROR:
Application initialization failure
원인 : tmboot할 때 TMS에 오류가 발생한 경우.
OPENINFO의 DB에 접속하는 계정이 존재하지 않은 경우.
조치 : TMS를 확인하고 재생성해야
됨.
DB에 접속하는 계정을 확인하여 OPENINFO의 DB 접속계정을 재설정 해야됨.
-----
현상 : 113119.kumca1!WSL.99410: WSNAT_CAT:1175: WARN: Disconnecting listener
connection to workstation, request timed out
원인 : Service를 호출한 뒤 Client를
강제적으로 종료시켜 발생.
조치 :
-----
현상 : 164804.sfc!JSL.11082.1.0:
11-14-2001: Tuxedo Version 7.1
164804.sfc!JSL.11082.1.0:
LIBTUX_CAT:262: INFO: Standard main starting
164804.sfc!JSL.11082.1.0: INFO: JOLT Listener version-BEA Jolt 1.2.1
[03/31/2000]
164804.sfc!JSL.11082.1.0: JOLT_CAT:1542: "ERROR:
Unlicensed Jolt server"
164804.sfc!JSL.11082.1.0: LIBTUX_CAT:250:
ERROR: tpsvrinit() failed
원인 : Jolt liensence가 Tuxedo Version 7.1에 맞지 않은
낮은 버젼임.
조치 : 상위 Jolt liensence로 대치.
-----
현상 :
220558.SMP001-5!BBL.9436: LIBTUX_CAT:220: WARN: BB lock appears stuck: held by
pid=9464
220607.SMP001-5!BRIDGE.9457: LIBTUX_CAT:746: ERROR:
Cannot lock Bulletin Board
152520.SMP001-5!BRIDGE.13140: WARN:
Could not lock USEM
152520.SMP001-5!BRIDGE.13140: LIBTUX_CAT:746:
ERROR: Cannot lock Bulletin Board
152520.SMP001-5!BRIDGE.13140:
CMDTUX_CAT:1418: ERROR: Cannot retrieve BBL server table entries
원인 :
서비스절에 timeout을 설정한 경우, CPU가 과도하게 일을 할 때 발생
조치 : UBB file의 SPINCOUNT를
"CPU 갯수 * 50"로 조정.
-----
현상 : 212958.SMP001-5!SVAJ07.9737: gtrid
x10001 x3bde0f88 x17bc4f: LIBTUX_CAT:481: ERROR: Service xa_start returned
XAER_RMERR
원인 : 트렌젝션 테이블의 엔트리 용량이 넘첫을 경우 발생.
조치 : Oracle의
환경설정파일(init.ora)에서 트렌젝션 테이블의 엔트리 용량을 확인하고 설정값을 조정한다.
-----
현상 :
Server Id = 0 Group Id = HUB1 Machine = HUB1:
CMDTUX_CAT:1668:
WARN: Cannot shutdown BBL on HUB1. Clients and/or servers may be running
CMDTUX_CAT:949: WARN: Shutdown failed
235754.sfc!BBL.9636.1.0: LIBTUX_CAT:1233: ERROR: Unable to
shutdown, clients/servers still attached
원인 : tmadmin으로 들어가 있을 때
"tmshutdown -y"를 한 경우 발생.
조치 : tmadmin을 빠져 나온 뒤 "tmshutdown -y"를
실행한다.
-----
현상 : 115923.jnuhp!BBL.6352.1.0: 11-23-2001: Tuxedo
Version 7.1
115923.jnuhp!BBL.6352.1.0: LIBTUX_CAT:356: ERROR:
Reached UNIX limit on semaphore ids
115923.jnuhp!BBL.6352.1.0:
LIBTUX_CAT:248: ERROR: System init function failed, Uunixerr = : shmdt: Invalid
argument
115923.jnuhp!tmboot.6351.1.-2: 11-23-2001: Tuxedo
Version 7.1
115923.jnuhp!tmboot.6351.1.-2: CMDTUX_CAT:825: ERROR:
Process BBL at HP1 failed with /T tperrno (TPEOS - operating system error)
115923.jnuhp!tmboot.6351.1.-2: WARN: No BBL available on site HP1.
Will not attempt to boot server processes on that site.
원인 : 시스템 커널 파라미터
중 Semaphore에 할당된 값이 적은 경우에 발생.
조치 : tmboot -cy를 이용하여 현재 Tuxedo 에서 필요한
자원을 확인하고 커널 파라미터를 다시 설정한다.
-----
현상 : INFO: BEA Engine, Version
7.1
INFO: Serial #: 650522264137-579166945932, Expiration
2001-12-31, Maxusers 100
INFO: Licensed to: ATSOFT
Booting server processes ...
exec pij01sv -A -p 1,30:2,10 -o /SRC/HIMED/testmed/OUT/pij01.out
-e /SRC/HIMED
/testmed/ERR/pij01.err -- -X :
CMDTUX_CAT:819: INFO: Process id=1461 Assume started (pipe).
1
process started.
원인 : LD_LIBRARY_PATH가 잘못 설정됨.
조치 :
LD_LIBRARY_PATH를 확인하고 다시 설정한다.
-----
현상 :
[ccbs1:/users/vadmin/oss/rating/src/jhlee] tm3
tmshutdown:
CMDTUX_CAT:1113: ERROR: Must be the administrator to execute this command
GP_CAT:208: ERROR: /home/tuxedo/env/log/ULOG.112701 file open error
원인 : Tuxedo admin 계정이 아닌 계정으로 Server를 내리거나 올릴 경우에 발생
조치 : Unix
admin에게 사용자 User-ID의 Group을 Tuxedo admin 계정으로 설정하도록 요청한다.
-----
현상 :
144122.uclick!WSH.29412.1.0: WSNAT_CAT:1366: ERROR: Pre 7.1 client not allowed.
Use -t option on WSL
원인 : Workstation address와 port(WSNADDR)가 잘못 지정된 경우
발생.
조치 : UBB config 파일의 Workstation address와 port를 Client 환경화일(tux.env)의
WSNADDR을 확인하여 동일하게 기술한다.
-----
현상 : 서비스 정상종료(TPRETURN( "Insert
Success!", 0);) 후에 DB에 commit 안됨.
참고) 서버 재기동시(tmboot -s OS0011)
DB에 commit 됨.
원인 : ud testing시 XA-mode인 경우 -t option이 설정되어 있지 않아
발생.
조치 : ud testing시 XA-mode인 경우 -t option를 설정한다.(ud -t 30 <
data01)
-----
현상 : exec WSL -A -- -n file://150.2.23.218:5660 -w WSH -m 20 -M 30
-x 5 : CMDTUX_CAT:1685: ERROR: Application initialization failure
110904.ccbs1!WSH.18489: LIBTUX_CAT:1122: ERROR: No space in
Bulletin Board
110904.ccbs1!WSH.18489: LIBTUX_CAT:582: ERROR:
Unable to register, registry table full
110904.ccbs1!WSH.18489:
WSNAT_CAT:1088: ERROR: tpinit() failed, tperrno = 6
110904.ccbs1!WSL.18469: WSNAT_CAT:1079: ERROR: Error starting minimum number of
handlers
110904.ccbs1!WSL.18469: LIBTUX_CAT:250: ERROR:
tpsvrinit() failed
원인 : UBB file의 MAXACCESSERS의 지정값을 초과할 경우 발생.
조치 : MAXACCESSERS()의 값을 재조정(실제값보다 5~10% 여분을 설정하기 바람).
MAXACCESSERS = Machine당 AP Server수 + Machine당 TMS수 + Machine당 WSL수 + Machine당
WSH수
+ Machine당 MAXCLIENTS수+ Native Client수 +
(Machine당 tmadmin Process개수-1)
-----
현상 : ULOG에 있는 TRACE가 걸려 있는
경우
조치 : client의 env file에서 TRACE=on을 제거한 다음 tmadmin에서 chtr -m machine
off를 실행한다.
-----
현상 : 143613.MIS001-00!aeaa04.13586: LIBTUX_CAT:1285:
WARN: tpreturn message send blocked, will try file transfer
원인 : Kernel
parameters 중 message queue size가 적어서 발생.
조치 : Kernel parameters 중
message queue size를 더 큰 값으로 조정.
-----
현상 :
150017.magpie2!SER1CC002.21443: gtrid x70007 x3ba11e1d x9b8f: LIBTUX_CAT:489:
ERROR: Performed tpreturn() with outstanding replies
원인 : 1.호출된 서비스에서
메시지를 리턴 했으나 호출한 서비스가 종료(비정상적인 종료) 됐을 경우 발생
조치 : 1.Service code를 확인.
2.호출하는 서비스에서 tpreturn전에 호출한 서비스에 대해서 모두 tpgetrply를 했는지 확인
3.같은 ipckey를 가지는 어플리케이션이 있는지 확인
-----
현상 :
150016.magpie2!WSH.22721: WSNAT_CAT:1287: WARN: Forced shutdown of client; user
name ''; client name ''; workstation address '//10.11.118.102:2395'
원인 :
1.WSH의 Session 설정 시간을 초과한 경우에 발생.
2.WSL과 Session을 맺을때 User-ID,
Password가 다른 경우에 발생
조치 : 1.WSH의 Session 설정 시간을 늘이든지, UBB file의 WSL에 정의된
T option을 없앤다.
2.TPINIT 하는 부분의 User-ID, Password를 확인하여
설정한다.
-----
현상 : 150909.magpie2!BRIDGE.20266: CMDTUX_CAT:4488: INFO:
Connecting to crane1 at //crane1:1111
150909.magpie2!BRIDGE.20266: CMDTUX_CAT:1373: ERROR: Abnormal disconnect from
crane1
원인 : Tuxedo master와 crane1이 Networking 문제로 비정상적으로 끊어짐.
조치
: Network를 점검 해야한다(자동으로 Tuxedo가 재시동 및 재접속을 시도한다).
-----
현상 :
115549.MIS001-00!tmboot.24329: 12122001: TUXEDO Version 6.4 4.0 3.0 3435
i486(TM)-MCA .
115549.MIS001-00!tmboot.24329: CMDTUX_CAT:4291:
ERROR: SECURITY VIOLATION ! Remote site may be compromised.
115554.MIS001-00!tmboot.24329: CMDTUX_CAT:826: ERROR: Process sale/srd101 at
mis2 failed with code -9
원인 : tlisten password를 변경한 경우에 발생
조치 :
tlisten password를 확인하여 원상태로 되돌린다.
-----
현상 :
150400.MIS001-00!hbatch.14618: INFO: BATCH Server's tpsvrdone() function
succeeded !
NSCOIN101.24556: ERROR: msgrcv err(LIBTUX_CAT:666:
ERROR: Message operation failed because the queue was removed):
errno=36,qid=6176,buf=134732224,bytes=1380,type=0,flag=0
NSCOIN101.24556: ERROR: msgrcv err(LIBTUX_CAT:669: ERROR: Message operation
failed because of the invalid message queue identifier):
errno=22,qid=6176,buf=134732224, bytes=4452,type=-1073741824,flag=0
원인 :
서비스 호출 후 프로그램을 강제적으로 종료한 경우 메세지 큐에 존재하는 메세지 처리를 할 수 없을 때 발생.
이것은
IPC 식별자, 예를 들면, 공유 메모리 식별자가 ipcrm 명령에 의해 제거되었음을 의미한다.
조치 : 메세지 큐를
확인한다.
-----
현상 : 124710.MIS002-10!BBL.21722: 12142001: TUXEDO Version
6.4 4.0 3.0 3435 i486(TM)-MCA .
124710.MIS002-10!BBL.21722:
gtrid x0 x3bebfec3 x503ec: LIBTUX_CAT:328: ERROR: No space in Bulletin Board for
Transaction Table
124710.MIS002-10!BBL.21722: gtrid x0 x3bebfec3
x503ec: LIBTUX_CAT:397: ERROR: Cannot allocate entry on GTT
124710.MIS002-10!BBL.21722: LIBTUX_CAT:248: ERROR: System init function failed,
Uunixerr =
124710.MIS002-10!BBL.21722: CMDTUX_CAT:26: INFO: The
BBL is exiting system
원인 : 1.MAXGTT 값이 TLOGSIZE 보다 작아서 발생
2.TLOGSIZE가 작아서 발생
조치 : 1.MAXGTT과 TLOGSIZE을 동일한 값으로 설정
2.TLOGSIZE를 더 크게 설정.
-----
현상 : 102702.uclick!GWTDOMAIN.1373.1.0:
LIBGWT_CAT:1303: ERROR: Network error occurred during connection
establishment
102702.uclick!GWTDOMAIN.1373.1.0: LIBGWT_CAT:1512:
ERROR: Unable to connect to remote domain WLSDOM
102702.uclick!GWTDOMAIN.1373.1.0: LIBGWT_CAT:1037: ERROR: Unrecoverable error
occurred on send of data - sending failure reply locally
원인 : (Tuxedo,
Jolt) 라이센스 사용기간을 초과함.
조치 : (Tuxedo, Jolt) 라이센스 확인
-----
현상 :
133636.JILEE!?proc.380: LIBWSC_CAT:1064: ERROR: Unable to establish WSH
connection //211.193.197.22:65433
133636.JILEE!?proc.380:
LIBWSC_CAT:1055: ERROR: Unable to establish WSL connection
133636.JILEE!?proc.380: LIBWSC_CAT:1027: ERROR: Unable to connect to WSH
133636.JILEE!?proc.380: LIBWSC_CAT:1020: ERROR: Unable to obtain
authentication level
원인 : WSH에 대한 Port가 Open되어 있지 않음.
조치 :
Network admin에게 해당 port를 open를 요청.
-----
현상 :
102439.COMMONSERVER!?proc.3176: 122101: TUXEDO Version 6.4 32-bit Windows.
102439.COMMONSERVER!?proc.3176: GP_CAT:1077: ERROR: Unable to open
environment file c:\Program Files\bea\tux64\env\tux.env for reading
원인 :
해당 Directory에 environment file이 존재하지 않아 발생.
조치 : Environment file이 존재하는
Directory를 확인 해당 Directory를 재설정한다.
-----
현상 : Booting server
processes ...
exec JSL -A -- -n //150.2.49.106:5660 -T 300 -d /dev/tcp -m 1 -M
2 -x 5 :
NFS server (pid475@/net) not responding still
trying
원인 : NFS Server에 문제가 발생함.
조치 : System Admin에게 NFS Server에
대한 설정 확인을 요청.
-----
현상 : uclick:/tuxedo/tux71/udataobj]buildtms -v -r
Oracle_XA -o TMS_ORA817
$TUXDIR/bin/buildserver -r Oracle_XA -o
TMS_ORA817 -S -s TMS -s..TMS:TMS -f $TUXDIR/lib/TMS.o -v
CMDTUX_CAT:4560: ERROR: Unable to determine license levelCMDTUX_CAT:530:
ERROR:
Cannot execute $TUXDIR/bin/buildserver -r Oracle_XA -o
TMS_ORA817 -S -s TMS -s..
TMS:TMS -f $TUXDIR/lib/TMS.o -v
원인 : Tuxedo license 유효기간이 지남.
조치 : ~/udataobj/lic.txt file를
확인.
-----
현상 : Fget() error -> LIBFML_CAT:1: ERROR: Fielded buffer
not aligned !
원인 : Dynamic SQL문의 문장이 메모리 설정 사이즈보다 길어서 다른 메모리를 침범하여
발생
조치 : Dynamic SQL문의 문장이 메모리 설정 사이즈를 맞게 조정한다.
-----
현상 :
142326.ccbs1!TMS_ORACLE.19474: 010302: TUXEDO Version 6.5-(64-bit)
142326.ccbs1!TMS_ORACLE.19474: LIBTUX_CAT:262: INFO: Standard main
starting
142327.ccbs1!TMS_ORACLE.19474: CMDTUX_CAT:409: ERROR:
xa_recover() returned -3 for group GRP_SK01
142327.ccbs1!TMS_ORACLE.19474: LIBTUX_CAT:250: ERROR: tpsvrinit() failed
원인 : UBB file에서 GRP_SK01의 CLOPT에서 설정한 DB 접근 계정이 잘못됨(존재하지 않거나 권한이 없음).
조치
: CLOPT에서 설정한 DB 접근 계정을 설정하고 권한을 DBA에게 요청.
-----
현상 :
[tuxedo@ccbs1:/home/tuxedo/bin] buildtms -v -r Oracle_XA -o TMS_ORACLE
$TUXDIR/bin/buildserver -r Oracle_XA -o TMS_ORACLE -s TMS -f
$TUXDIR/lib/TMS.o -v
/usr/bin/cc -I$TUXDIR/include -o
TMS_ORACLE BS-6dca.c -L${TUXDIR}/lib
/home/tuxedo/lib/TMS.o
-ltux -lbuft -ltux2 -L/oracle/lib64/ -lclntsh
`cat
/oracle/lib64/sysliblist` -lm -lpthread -lpthread -lfml -lfml32 -lgp -lnsl
/usr/ccs/bin/ld: (Warning) At least one PA 2.0 object file
(BS-6dca.o) was detected.
The linked
output may not run on a PA 1.x system.
/usr/ccs/bin/ld:
/home/tuxedo/lib/TMS.o: Mismatched ABI. 64-bit PA object file
found in 32-bit link.
CMDTUX_CAT:1832: ERROR: can't execute /usr/bin/cc -I$TUXDIR/include -o
TMS_ORACLE
BS-6dca.c -L${TUXDIR}/lib
/home/tuxedo/lib/TMS.o -ltux -lbuft -ltux2
-L/oracle/lib64/ -lclntsh `cat /oracle/lib64/sysliblist`
-lm -lpthread -lpthread -lfml -lfml32 -lgp -lnsl
CMDTUX_CAT:530: ERROR: Cannot execute $TUXDIR/bin/buildserver -r Oracle_XA
-o
TMS_ORACLE -s TMS -f $TUXDIR/lib/TMS.o -v
원인 : 64 Bit에서 TMS 생성시 CFLAG를 64Bit로 설정하지 않음.
조치 : CFLAGS="+DA2.0W
+DS2.0" buildtms -v -r Oracle_XA -o TMS_ORACLE
-----
현상 :
103846.magpie2!BRIDGE.26222: CMDTUX_CAT:1380: ERROR: Message queue blocking
prevented delivery, Qaddr = 2243
원인 : BRIDGE process가 Network을 통해서 UNIX
Message queue block의 값을 가져오지 못할 경우 발생
조치 : Machine의 Message queue 관련
Parameter를 확인하여 더 크게 조정(MSGMNB, MSGSEG, MSGSSZ, MSGMAX).
-----
현상 :
WSH.3131: GP_CAT:1067: ERROR: Routing field value for 'IDD10388S' not valid
WSH.3131: LIBTUX_CAT:741: ERROR: Routing function failed
WSH.3131: WSNAT_CAT:1042: ERROR: tpcall() call failed, tperrno = 12
원인
: 1.Routing field 값이 존재하지 않은 경우에 발생
2.Routing field 값이 잘못 지정된 경우에
발생
조치 : 1.Routing field 값이 존재하는지 출력하여 확인한다.
2.Routing
field 값을 출력하여 확인한다.
-----
현상 : 070300.SKEBS!TMS_ORACLE8.256700: gtrid
x0 x3c3b00c2 x110a8a: CMDTUX_CAT:443: ERROR: tms_timeout group TCMSGRP1 xa_abort
returned XAER_RMERR
원인 : TMS에서 설정한 Database의 Session time을 초과하여 발생
조치 : Session time 늘려 주던지 아니면 해당 서비스를 Tunning을 해야 함.
-----
현상 :
172903.SKEBS!si_sr03.259998: gtrid x0 x3c3b00c2 x1b58a9: LIBTUX_CAT:481:ERROR:
Service xa_start returned -9
061741.firesv2!tf_avl_nx3.24795:
gtrid x0 x3c8653da x847: LIBTUX_CAT:1384: ERROR: xa_start flags 0 returned
-9
원인 : 1.tpcommit or tpabort를 하지 않고 다시 tpbegin을 했을 경우
2.DB User 변경 후 xaview.sql를 실행하지 않았을 경우
3.Grant를 주지 않았을 경우
4.Oracle 8.x 부터 XA Connection 내에서 Local transaction이 가능하도록 허용하면서 나타나는
현상
Timeout과 같은 상황에 의해 XA Session이 종료될 수 있다. 이때에 예외처리를 정상적으로 하지
않은 상태에서
SQL을 사용하면, 이미 XA Session이 종료된 상태에서 xa_start()를 호출하지 않고
DB를 사용하려고 한 상태이기
때문에 이 Transaction은 Local transaction으로 간주하게
된다.
이 Local transaction은 반드시 EXEC SQL COMMIT/ROLLBACK을 호출하여
종료하여야 하지만, XA 프로그램
에서는 이러한 것을 사용하지 않기 때문에 이 Local transaction은
종료되지 않고 남아 있게 된다. 이러한 상태에서
Transactional service 호출에 의해
xa_start()가 호출되면 XAER_OUTSIDE 에러를 만나게 되는 것이다.
이러한 에러가 발생하면 이
Local transaction을 종료하지 않는 이상 계속해서 동일한 에러를 만나게 된다. 서버
프로세스를
종료하고 다시 부팅해야만 한다.
조치 : 1.서비스 호출 뒤 정상적으로 처리된 경우 tpcommit, 비정상적으로 처리된 경우는
tpabort를 추가한다.
2.변경된 DB User에 대한 xaview.sql를 실행하여 XA View table를
생성한다.
3.tuxedo admin user에 대한 권한을 설정한다.
4.이 문제는
Oracle 7.x에서는 발생하지 않던 문제이다. Oracle 8.x 부터 Global Tx와 Local Tx가 한 프로세스에서
가능하게 하면서 발생하는 문제이다.
이 문제를 해결하려면 모든 SQL에서 에러 상태를 정확하게
점검하여 적절한 처리를 하여야 한다. OPENINFO에서
NoLocal=true를 설정하는 것도 일부 도움이
된다.
-----
현상 : 172903.SKEBS!si_sr03.259998: gtrid x0 x3c3b00c2
x1b58a9: LIBTUX_CAT:481:ERROR: Service xa_start returned -6
원인 :
조치 : 해당 서버를 재 부팅한다.
-----
현상 : 182101.SKEBS!si_sr03.338734:
LIBTUX_CAT:271: ERROR: System lock semop failure, key = 74400 (errno = 22)
원인 : IPC 자원을 사용하고 있는데 강제적으로 BBL의 해제를 시도하다가 IPC 자원 중 semop가 lock 걸림
조치
: ipcrm으로 Tuxedo와 관련된 IPC 자원을 Clear 시킴.
-----
현상 :
160341.jnuhp3!TMS_ORA734.19922: gtrid x0 x3c47c666 x28: CMDTUX_CAT:423: WARN:
One-phase commit - xa_commit returned XAER_NOTA
원인 : XA library를 사용하는데
Oracle이 dedicator server로 설치된 경우 발생
조치 : XA library를 사용할려면 Oracle을 MTS
mode로 설치되어야 한다.
-----
현상 : 181238.MIS001-00!DBBL.1019:
CMDTUX_CAT:1392: ERROR: BBL broadcast reply timeout, machine= mis1 opcode=
0xc000003
181238.MIS001-00!DBBL.1019: CMDTUX_CAT:1394: ERROR: BBL
partitioned, machine= mis1
원인 : Network문제 또는 Network이 혼잡하거나 CPU의 과부하인 경우
발생(SAN 환경인지 확인)
Oracle dispatcher가 비정상적으로 Shutdown 된 경우에 발생(이미
부여된 Oracle의 Session-ID를 사용할 수 없음)
조치 : 1.DBBLWAIT parameter를 좀 더 크게
잡아준다.
2.마스터(Master) 노드 장애 시
- 마스터(Master) 머신의
기능을 백업(BackUp) 머신으로 이전.
- 복구 순서
① 백업(BackUp)
머신을 Acting 마스터로 전환한다.
('tmadmin'의 'master' 명령어 사용)
② 장애가 난 마스터에 Tuxedo 관련 프로세스가 남아 있으면 메모리에서 다운 로드한다
③ 장애가 복구된 후 마스터에 Tuxedo 관련 프로세스들을 띄운다.
(Acting 마스터에서
'tmboot' 명령의 -B와 -L 옵션을 이용한다.)
④ 원래의 마스터 머신으로 마스터를 전환한다.
(원래의 마스터(Master) 머신에서 'tmadmin'의 'master' 명령어를 사용한다.)
3.TMS group를 재기동하여 Oracle의 Session-ID를 신규로 설정한다.
Oracle
dispatcher에 대한 Patch 적용(Oracle vender에서)
-----
현상 :
111939.MIS001-00!DBBL.1565: CMDTUX_CAT:1395: WARN: Slow BBL response, machine=
mis3
111949.MIS001-00!DBBL.1565: CMDTUX_CAT:1394: ERROR: BBL
partitioned, machine= mis3
원인 : Network문제 또는 Network이 혼잡하거나 CPU의 과부하인 경우
발생(SAN 환경인지 확인)
(RESOURCES section에 지정된 (SANITYCAN * SCANUNIT)초
동안에 BBL은 반복적으로 Machine의 온전성을 Check하여 DBBL에게 OK Message를 보낸다.
만약,
Message가 (BBLQUERY * SCANUNIT)초 이전에 Machine으로부터 Message가 도착하지 않으면 DBBL은 경고 OK
Message를 서버의 동작상태를 ULOG에 출력한다.
그리고 나서, Network를 재확인 한다. 그래도 실패하면
DBBL은 Machine를 Partition할 것을 고려한다.)
조치 : 이 메시지는 Network가 혼잡하거나 Machine의
과부하 된 것을 가르키며, Machine이 Partition될어질 위험이 있으며 다음과 같은 사항을 점검해야 한다.
- Network이 정상적으로 운영되는 Network의 상태를 Check해야 한다.
- Client와
Tuxedo 시스템간 Network의 과부하를 Check해야 한다.
- 두 Machine 사이의
Networking 문제 및 Network 응답이 느리게된 원인을 Check해야 한다.
- 작동 중 BBL의
수행을 방해하는 Machine의 CPU 과부하를 Check해야 한다.
- DBBL의 Message queue
수행을 방해하는 Master machine의 CPU 과부하를 Check해야 한다.
- 만약, BBLQUERY
parameter가 SANITYCAN parameter 보다 크다면 BBLQUERY parameter 값을 조정해야 한다.(10여 초 이상의
차이는 대부분의 환경 하에서 유사한 경고를 예방할 수 있다.)
1.마스터(Master) 노드 장애 시
- 마스터(Master) 머신의 기능을
백업(BackUp) 머신으로 이전.
- 복구 순서
① 백업(BackUp) 머신을
Acting 마스터로 전환한다.
('tmadmin'의 'master' 명령어 사용)
② 장애가 난 마스터에 Tuxedo 관련 프로세스가 남아 있으면 메모리에서 다운 로드한다
③
장애가 복구된 후 마스터에 Tuxedo 관련 프로세스들을 띄운다.
(Acting 마스터에서
'tmboot' 명령의 -B와 -L 옵션을 이용한다.)
④ 원래의 마스터 머신으로 마스터를 전환한다.
(원래의 마스터(Master) 머신에서 'tmadmin'의 'master' 명령어를 사용한다.)
2.Slave Node 장애시
- 복구 순서
① 장애가 발생한
Slave 머신에 Tuxedo 프로세스가 남아 있으면 메모리에서 다운 로드한다
② 장애가 발생한 Slave
머신의 정보를 지운다.
(마스터 머신에서 'tmadmin'의 'pclean' 명령어 사용)
③ 장애가 복구된 후 해당 머신의 Tuxedo 프로세스를 띄운다.
(-마스터
머신에서 'tmboot' 명령의 -B와 -L 옵션을 이용한다.)
-----
현상 :
112019.hp1!?proc.29139.2.0: 01-25-2002: Tuxedo Version 7.1
112019.hp1!?proc.29139.2.0: GP_CAT:1356: ERROR: pifreg: can not open registry
database
112019.hp1!?proc.29139.2.0: GP_CAT:1356: ERROR: pifreg:
can not open registry database
112019.hp1!?proc.29139.2.0:
LIBWSC_CAT:2011: WARN: Unable to invoke audit postop on security failure
원인 : Tuxedo System/T는 6.5, Workstation은 7.1를 사용한 경우에 발생
조치 : Workstation
7.1만 Install하지 말고, Tuxedo System/T도 7.1을 같이 설치할 것.
-----
현상 :
033108.SMP001-4!SVPCS1.27925: LIBTUX_CAT:466: ERROR: tpopen TPERMERR xa_open
returned XAER_RMERR
033108.SMP001-4!SVPCS1.27925:
LIBTUX_CAT:1353: ERROR: tpopen failed - TPERMERR - resource manager error
원인 : 1.RM(Resource manager)의 option이 잘못 설정되어 TMS가 잘못 생성된 경우에 발생.
2.OPS 환경에서 MST가 아닌 dedicator server로 구성된 것에 2PC를 할 경우에 발생.
3.DB의 XA-library에 문제가 있을 경우에 발생
조치 : 1.RM(Resource manager)의 option을 확인한
다음 다시 설정하고 TMS를 재생성
2.OPS 환경에서 MST로 init.ora 화일을 변경.
3.DB Vender에 기술지원 요청.
-----
현상 : 180541.jnuhp3!WSH.1816: gtrid
x10001 x3c52eeca x1debe4: WSNAT_CAT:1042: ERROR: tpcall() call failed, tperrno =
6
원인 : 1.Service가 존재하는 Server가 내려간 경우.
2.Service가 존재하지 않은
경우.
조치 : 1.내려간 Server를 tmboot 명령으로 Server를 기동시킨다.
2.Service명이 정확한가 다시 확인한다.
-----
현상 : 180538.jnuhp3!WSH.1816: gtrid
x10001 x3c52eeca x1debe3: LIBTUX_CAT:743: ERROR: No service 'TMS' in group
'MIS3GRP'
180538.jnuhp3!WSH.1816: gtrid x10001 x3c52eeca x1debe3:
LIBTUX_CAT:1309: ERROR:tpcommit failed to send message to TMS server1
원인
: MIS3GRP이 Non-XA mode Group인데 tpcommit()을 할 경우에 발생.
조치 : 1.Tuxedo
ubbconfig file의 MIS3GRP을 XA-mode로 지정한다.
2.Non-XA mode로 처리할 경우
tpcommit() 함수를 사용하지 않고, SQL 문장으로 해결한다.
-----
현상 : BBL.14131: NLS:4:
Cannot open message catalog LIBTUX_CAT, set 1, num 296; check TUXDIR=/tuxedo65,
LANG=ko
093510.hub2!tmadmin.28992: NLS:4: Cannot open message
catalog LIBTUX_CAT, set 1, num 334; check TUXDIR=/EAI/bea/wle,
LANG=ko_KR.IBM-eucKR
원인 : LANG가 잘못 설정되어 있음.
조치 : 1.환경 파일에 LANG를
C로 설정(export LANG=C)한다.
2.환경 파일에 LANG를 ko_KR로 설정(export
LANG=ko_KR)한다.IBM AIX
-----
현상 : BBL.14131: NLS:4: Cannot open
message catalog LIBTUX_CAT, set 1, num 296; check TUXDIR=/tuxedo65, LANG=C
원인 : Buffer를 할당 받은 후 tpreturn하기 전에 할당 받은 Buffer를 해제하지 않아서 발생.
조치 :
tpreturn하기 전에 할당 받은 Buffer는 받드시 해제한다.
-----
현상 : WSL.14254:
LIBTUX_CAT:262: INFO: Standard main starting
WSL.14254:
WSNAT_CAT:1008: ERROR: Could not establish listening address on network
//211.236.162.220:3550
WSL.14254: LIBTUX_CAT:250: ERROR:
tpsvrinit() failed
원인 : 1.WSL 떠 있지 않은 경우.
2.IP address가
잘못 지정 되어 있던지, 아니면 port가 방화벽에 열려 있지 않는 port일 경우에 발생.
3.Remote
domain에서 //211.236.162.220:3550 를 잡고 있는 경우에 발생
조치 : 1.Tuxedo ubbconfig
file의 WSL에 지정된 IP address과 port가 Client tuxedo env file의 WSNADDR에 설정된
IP address과 port가 동일하지 확인한다.
2.IP address를 확인 및 port를 방화벽에서
열어 준다.
3.현재 네트워크 상태를 확인하고(netstat | grep 3550), 상태가 "LISTEN"인 경우
Remote domain(예를들면, WebLogic)를 Restarting한다.
-----
현상 :
092250.pigeon2!JSH.20924: LIBTUX_CAT:582: ERROR: Unable to register, registry
table full
원인 : BBL의 registry table full.(MAXACCESSERS의 parameter 값을
초과하는 경우가 발생)
조치 : MAXACCESSERS parameter를 5~10% 증가시킴.
-----
현상 : WSL.26782: WSNAT_CAT:1174: WARN: Disconnecting listener connection to
workstation, connection timed out
WSH.26786: WSNAT_CAT:1055:
ERROR: Connection to unassigned WSH rejected
원인 : Tuxedo ubbconfig
file에서 Machines section에 정의되어 있는 WSL의 CLOPT에 정의되어 있는 -T Option 값에 의해 Client가
Tuxedo System/T와 접속한 후 지정된 시간(단위:분) 동안 사용하지 않으면 강제적으로 System/T가 연결을 끊어버린 경우에
발생.
조치 : Tuxedo ubbconfig file에서 -T Option 값을 더 크게 주던지 아니면 -T Option을
제거한다.
-----
현상 : WSL.26782: GP_CAT:1210: ERROR: Memory allocation
error: BEREALLOC - realloc failed
원인 : Memory 부족으로 인하여 메모리할당을 받지
못함.
조치 : Physical memory를 증설.
-----
현상 : restartsrv.10144:
server gs1_cont/18051: CMDTUX_CAT:579: ERROR: Cannot restart a server - unknown
process creation error: -9
restartsrv.10144: server
gs1_cont/18051: CMDTUX_CAT:587: INFO: Cannot restart server, scheduling for
cleanup
원인 : 시스템 오류이다.
조치 : Unix error를 참조하여 적절한 처리를
취한다.
-----
현상 : JSH.29044: LIBTUX_CAT:1577: ERROR: Service IAD60400S
not available in group gm1_cont
JSH.29044: JOLT_CAT:1043: ERROR:
tpacall() call failed, tperrno = 6
원인 : 라우팅 되어 찾아간 그룹에 서비스가 존재하지 않을 경우에
발생
조치 : 라우팅 값과 그룹을 확인하여 환경파일을 수정하거나 서비스 호출시의 라우팅 관련 값을
수정한다.
-----
현상 : TMS_INFX.2191: ERROR: msgsnd err:(LIBTUX_CAT:667:
ERROR: Message operation failed because of the bad message type)
errno=22,qid=7,buf=134741704,bytes=360,flag=0
원인 : 보내는 메세지가 깨지는 경우에
발생한다.
조치 : 메세지 큐를 확인한다.
-----
현상 : cleanupsrv.9665:
LIBTUX_CAT:577: ERROR: Unable to register because the slot is already owned by
another process
원인 : 서버를 등록하려고 하는데 이미 등록하려는 slot에 자신이나 다른 프로세스가 이미 사용하고
있을 경우 발생한다.
조치 :
-----
현상 : tmadmin.11550: LIBTUX_CAT:236:
ERROR: Remote tmnwkill timed out 10 secs
원인 : Bridge를 통해서 서비스를 호출하였으나
응답이 없을 경우에 발생.
(Network이 너무 바빠서 일어날 수도 있고, timeout이 너무 짧아서
발생)
조치 : 1.Network의 상태를 확인하여 과부하 발생원인을 제거한다.
2.Service
수행시간을 확인하여 늦어지는 원인를 제거한다(Service 튜닝).
-----
현상 : BRIDGE.25030:
CMDTUX_CAT:499: ERROR: Shutting down bridge, serious message receive error
원인 : BRIDGE 를 shutdown하는 도중에 오류가 발생한 경우이다.
조치 : 잠시후 다시
시도한다.
-----
현상 : BBL.25015: CMDTUX_CAT:1597: ERROR: Unable to
unregister - remote procedure call failure - can't send request - TPEOS -
operating system error
원인 : DBBL에서 서버 등록을 해제하려고 하는데 다른 머신에서 등록해제를 할 수 없는
경우 발생한다.
조치
-----
현상 : NSACDN101.11825: LIBTUX_CAT:268:
ERROR: Failed to stop serving
원인 : 서버를 shutdown할 수 없을 경우이다.
조치 :
bbl을 clean한 다음에 다시 시도한다.
-----
현상 : BBL.25015: CMDTUX_CAT:25: ERROR:
The BBL could not bring down a paired bridge
원인 : BBL shutdown시에 paired
bridge에 shutdown 메시지를 보낼 수 없을 경우에 발생한다.
조치 :
-----
현상 :
SRVVCD01.82918.1.0: LIBTUX_CAT:2020: ERROR: Memory allocation failure.
원인 : FML Buffer의 memory 할당 중 physical memory나 swap space가 적어서 발생.
조치 :
1.해당 서비스 프로그램을 확인하여 FML Buffer의 memory 할당을 조정한다.
2.physical
memory나 swap space를 더 크게 증설한다.
-----
현상 :
103017.kolon1!SRVHL016.81456.1.0: 03-12-2002: Tuxedo Version 7.1
103017.kolon1!SRVHL016.81456.1.0: LIBTUX_CAT:262: INFO: Standard main
starting
103017.kolon1!SRVHL016.81456.1.0: LIBTUX_CAT:476: WARN:
Server 100/2262: client process 89356: lost message
103017.kolon1!SRVHL016.81456.1.0: LIBTUX_CAT:477: WARN: SERVICE=hzp09001
MSG_ID=0 REASON=server died
원인 : - core file이 발생하지 않은 경우
서비스 프로그램의 SQL 문장을 DBMS에서 SQL 문장을 처리하는데 지정된 시간을 초과(Full scan)하는 경우에
발생(TPETIMEOUT).
- core file이 발생한 경우
1.함수를 잘못
사용하는 경우, 예를 들면 숫자 변수에 문자값을 setting 등
2.선언된 변수의 크기보다 더 큰 값이 들어오는
경우.
3.Server program에 출력문에서 varchar로 선언된 것이 출력할 때 .arr이 없이 출력한
경우.
조치 : - core file이 발생하지 않은 경우
서비스 프로그램의 SQL 문장을 튜닝해야
한다.
- core file이 발생한 경우
1.함수를 잘못 사용한 부분을 확인하여
수정한다.
2.변수값의 크기를 확인하여 적게 선언 되어 있는 경우 더 크게 잡아준다.
(strcpy, strcat 등을 사용하는 경우 해당 변수에 들어오는 값을 확인하여 변수 크기를 조정한다.)
3.printf문에서 varchar에 해당되는 것을 수정(x ==> x.arr)
-----
현상 :
051525.crane1!NSZPAN901.20474: LIBTUX_CAT:467: ERROR: tpclose TPERMERR xa_close
returned XAER_RMERR
원인 : 1.RM(Resource manager)의 option이 잘못 설정되어 TMS가 잘못
생성된 경우에 발생.
2.OPS 환경에서 MTS가 아닌 dedicator server로 구성된 것에 2PC를 할
경우에 발생.
3.DB의 XA-library에 문제가 있을 경우에 발생
조치 :
1.RM(Resource manager)의 option이 확인한 다음 다시 설정하고 TMS를 재생성
2.OPS
환경에서 MTS로 init.ora 화일을 변경.
3.DB Vender에 기술지원 요청.
-----
현상 : 101054.firesv2!tf_avl_nx1.4270: gtrid x0 x3c868ee7 x55dba: GP_CAT:1062:
ERROR: Cannot reallocate FML buffer to smaller than its unindexed size
101054.firesv2!tf_avl_nx1.4270: gtrid x0 x3c868ee7 x55dba: LIBTUX_CAT:228:
ERROR: Type switch buffer reinitialization routine _tmreinitbuf failure
101054.firesv2!tf_avl_nx1.4270: gtrid x0 x3c868ee7 x55dba: TFT1026XNS91
:[20020314-101054 ](WARNING)can't tprealloc, retry tpalloc
원인 : FML
Buffer를 재할당(realloc)한 Buffer size보다 더 많은 Data가 FML Buffer에 집어 넣을 경우에 발생.
조치 : Data size를 확인하고 FML Buffer를 충분히 재할당(realloc) 한다.
-----
현상 :
195307.firesv2!tmshutdown.29476: 031402: TUXEDO Version 6.5 SunOS 5.5.1 Generic
sun4u sparc SUNW,Ultra-1.
195307.firesv2!tmshutdown.29476:
CMDTUX_CAT:4477: INFO: SRVID=1509 SRVGRP=NXAGRP2 SIGTERM send failed
(tperrno=7)
195307.firesv2!tmshutdown.29476: CMDTUX_CAT:4478:
INFO: SRVID=1509 SRVGRP=NXAGRP2 SIGKILL send failed (tperrno=7)
195307.firesv2!tmshutdown.29476: WARN: internal error: CMDTUX_CAT:947: WARN:
Can't shutdown server (NXAGRP2/1509)
원인 : tmshutdown 사용시 -w option 사용할 때
운영체제에서 해당 서버에 Signal를 보내지 못할 경우에 발생.
조치 : 1.운영체제에서 발생한 오류 임으로 System
Admin에게 문의.
2.ipcrm으로 해당 서버가 사용하고 있는 IPC 자원을 제거한다
-----
현상 : 203519.firesv2!WSL.4163: LIBTUX_CAT:703: ERROR: Cannot get statistics on
message queue 10242
원인 : 메세지 큐의 상태를 알 수 없을 경우 발생.
조치 : Kernel
parameter 중 Message queue의 상태를 점검(System admin에게 요청).
-----
현상 :
160006.firesv2!tf_stat_nx3.4396: gtrid x0 x3c868ee7 x317fc: LIBTUX_CAT:1537:
ERROR: tpclose called with ongoing transaction
160006.firesv2!tf_stat_nx3.4396: gtrid x0 x3c868ee7 x317fc: LIBTUX_CAT:523:
ERROR: tpclose failed
원인 : Global transaction 처리시 tpclose()하기 전에
tpcommit(), tpabort()를 하지 않은 경우 발생.
조치 : Global transaction 처리시
tpclose()하기 전에 서비스 호출 결과에 따라 tpcommit(), tpabort()를 하기 바람.
-----
현상 :
161341.ccbs1!tmboot.4287.1.-2: CMDTUX_CAT:1578: ERROR: Could not contact NLS on
SKT1
161341.ccbs1!tmboot.4287.1.-2: CMDTUX_CAT:1576: ERROR: No
NLS available for remote machine SKT1
원인 : tlisten가 떠 있지 않은 경우 발생(강제적으로
tlisten process를 죽임)
조치 : Tuxedo /T를 shutdown한 후 tlisten를 기동시킨 다음 Tuxedo
/T를 Starting 시킴.
-----
현상 : 데이타베이스에 연결하지 못함.
원인 : 이것은 해당
데이터베이스에 대하여 필요한 환경 설정이 잘못되어 있거나, 권한이 없는 경우, 그리고 DB가 active되어 있지 않은 경우
발생합니다.
조치 : 1.해당 데이타베이스에 필요한 환경 설정이 잘못되어 있다.(ORACLE : ORACLE_HOME,
ORACLE_SID, ORA_NLS,INFORMIX : INFORMIXDIR, INFORMIXSERVER) 필요한 환경을 확인하고 데이터베이스에
대한 환경설정을 정확하게 수정한다.
2.데이타베이스에 권한이 없다.
해당 사용자에
데이타베이스 권한을 부여한다.(ORACLE : v$xatrans$에 권한을 준다.INFORMIX : 해당 DB를 사용할 수 있는 권한을
사용자에게 부여한다)
3.DB가 online 되어 있지 않다.
DB를 기동하고 서버를
새로 띄운다.
-----
현상 : tpcommit 오류가 발생.
조치 : 1.tpbegin() 이 되어 있지
않다. tpbegin()을 넣어 주어야 한다.
2.tpbegin 시에 주는 timeout 값이 너무 적거나, 실제
서비스 시간이 오래 걸리는 경우 발생 tpbegin() 시에 시간을 길게 주거나, 서비스 시간을 줄이도록 튜닝한다.
3.이 서비스에서 호출한 서비스에서 TPFAIL로 반환한다.
이 경우 서버의 트랜잭션은 ABORTONLY로
처리되므로 commit을 원하는 경우는 TPSUCCESS 로 반환하도록 한다.
4.TMS 의 초기화 이상 또는 동작
이상이 발생한다. TMS를 kill 시키고 tmadmin 상에서 bbc 명령을 수행한다.
5.Oracle 22번
에러(Invalid session id; access denied) 발생한다.
TM이 open 하고 있는 정보와
AP가 open 하는 정보가 다르다. 이를 확인하여 일치시켜 준다. 혹은 “@서버”와 같은 식으로
사용하여 TM이 접근할 수 없는 세션이 이루어지고 있다. 이를 수정하여 제거한다.
-----
현상 : 서버가 종료되지
않음.
원인 : 서버가 무한 루프를 도는 경우 발생할 수 있다.
조치 : tmadmin -r 명령상에서 psr
명령으로 해당 서버가 루핑을 도는지 확인하고, 해당 서버 프로세스를 kill 명령으로 죽이고 tmshutdown 명령을 한번 수행합니다. ps
?ef | grep tm 명령으로 수행중인 Tuxedo 명령을 확인한 후에 BB(Bulletin Board)가 locking 상태에 있는지
확인한 후에 해당 Tuxedo 명령을 종료하도록 하고 tmadmin으로 들어가서 bbc 명령을 수행한다.
-----
현상 :
TPENOENT 라는 에러가 발생.
원인 : 이것은 해당 서버나 서비스가 없거나, MAXWSCLIENTS값이 부족한 경우 발생할
수 있다. 해당항목이 없을 때 발생하는 에러 임.
조치 : 1.tmadmin -r 명령상에서 서버, 서비스를 확인한다. 호출하는
서비스(tpcall() 함수에서)가 없다면 해당 서비스가 있는 서버 프로세스를 기동하고, 역시 문제라면 해당 서버 컴파일시에 서비스가 -s
옵션으로 제대로 들어갔는지 확인한다.
2.Tuxedo 구성파일의 MAXWSCLIENTS를 확인하고 부족하다면
증가시킨다.
-----
현상 : Routing 에러가 발생.
원인 : 이것은 버퍼안에 라우팅을 위한 값이
없거나 라우팅의 위치가 지정되어 있지 않은 경우에 발생할 수 있다.
조치 : 1.버퍼안의 내용을 Fprint() 함수를 이용하여
확인하여 라우팅을 위한 값이 있는지 확인한다.
2.구성 파일의 분기 항목을 확인하여 해당 라우팅 값으로 갈 수 있는
곳이 지정되어 있는지 확인후 분기를 재설정하거나 입력된 분기값을 수정한다.
-----
현상 : FML 필드를 못
찾는다.
원인 : 이것은 FML에서 사용하는 필드가 정의되어 있지 않거나, 정의된 이름과 다른 필드명을 사용하는 경우 발생할 수
있다.
조치 : 1.set 명령의 출력및 ENVFILE을 확인한다. FLDTBLDIR, FIELDTBLS 환경변수가 설정되어 있지
않다면 정확히 설정한다.
2.필드 테이블을 확인한다.(필드명은 대소문자를 구분한다.) 필드 테이블에 해당 필드가
없거나 잘못 정의되어 있다면, 수정한다.
-----
현상 : FML 버퍼에 데이타를 복사하지 못한다.
원인 :
이것은 메모리 할당이 작거나 또 한번의 호출을 통해서 메모리 크기가 변한 경우에 발생.
조치 : 우선은 set 명령의 출력및
ENVFILE을 확인하여 FML 버퍼에서 사용하는 필드 테이블 파일을 위치를 확인한 후 다음으로 할당된 메모리의 크기를 확인하여
tprealloc 함수를 사용하여 메모리를 크게 잡습니다. 서버에서 다를 서버로 호출을 하여 할당된 메모리 크기가 변한 경우에는 호출에서 반환된
메모리를 다시 realloc한다.
-----
현상 : Tuxedo 서버 프로세스가 비정상 종료.
원인 : 거의
대부분이 프로그램 내의 포인터 사용 잘못이나, 할당된 버퍼 크기의 부족으로 인해서 발생한다.
조치 : 1.포인터를 사용한 복사
등에서 잘못된 포인터를 확인한다.
2.메모리 혹은 스트링 복사시 각 메모리의 크기를 확인한다.
3.할당된 버퍼 크기보다 더 많은 데이터를 복사하고 있는지 확인한다. 특히, strcpy() 같은 함수를 사용할 경우 소스 데이터에 NULL
값이 있는지 확인한다.
4.컴파일 시에 WARNING이 있는 위치를 확인한다.
5.프로그램에 디버그를 할 수 있는 “printf”나 “userlog” 를 사용하여 죽는 위치를 확인하여 수정한다.
-----
현상 : Client 어플리케이션에서 tpinit 에러가 발생.
원인 : Client에서 접속할 서버 address가
client에 지정되어 있지 않거나, 잘못 지정되어 있는 경우 또는 서버쪽에 해당 address를 갖는 서버 프로세스(WSL)이 없거나
접속초과가 된 경우.
조치 : 1.client PC에서 해당 machine으로 PING 이나 TELNET이 잘 되는지
확인한다.
2.client 도스의 환경변수 WSNADDR 설정값과 서버 machine의 WSL의 CLOPT 지정값을
비교한다.
3.서버 구성파일 환경의 MAXWSCLIENTS와 WSL의 CLOPT에 지정된 WSH의 MAX 값을
확인한다.
4.client DOS의 루트 디렉토리에서 dir /s 으로 DLL을 검색한다.
5.4GL에서 DLL 정의 부분을 확인합니다.
6.4GL 컴파일을 새로하여 다시 접속합니다.
원인 및 조치
1.접속할 서버 address가 없다.
Client의 환경변수 WSNADDR를 서버쪽의
접속 address로 정확히 설정한다. (unix client의 경우는 WSDEVICE도 확인한다. Unix client의 경우 해당 환경
변수가 export 되어 있는지 확인)
2.서버쪽에 WSL이 부팅되어 있지 않다.
관리자에게 WSL을 띄워 주도록 요청한다.
3.접속 권한이 없다.
정확한 암호를
사용한다.
4.최대 사용자 수를 넘었다.
Tuxedo 구성 파일(unix)의
MACHINES 섹션의 MAXWSCLIENTS의 수와 SERVERS 섹션의 WSL 의 option 중에서 -M, -x option들의 수를
정확히 설정합니다. 즉 -M 4, -x 10 인 경우는 최대 40 pc client를을 지원하며, MACHINES 섹션에는
MAXWSCLIENTS=40 으로 설정해야 한다.
5.여러 개의 DLL이 존재한다. (PC)- 특히 ulog 파일이
생성되지 않는 경우
잘못 사용되고 있는 DLL을 지우거나 이름을 변경한다.
6.4GL쪽에 정의한 DLL의 경로가 틀리거나 정확하게 인식하지 못한다.
정확한 경로를 정의하고, 혹은 4GL에서
새로 compile되도록 조치한다.
-----
현상 : GP_CAT:209: ERROR: Write error 5, file
/pool1/tuxedo2/ULOG.070401
GP_CAT:208: NLS:6: Message not found,
catalog GP_CAT, set 1, num 208
GP_CAT:209: NLS:6: Message not
found, catalog GP_CAT, set 1, num 209
Fri May 31 06:59:50 2002
system error detected: file painfu.c line 4938 rc = 0 from wngtprsr - No such
file or directory
Fri May 31 06:59:50 2002 internal error
detected: file painfu.c line 5706 rc = 0 from padfsc
원인 :
/pool1/tuxedo2에 할당 받은 file system의 disk space가 full 참.
조치 : df -k로
/pool1/tuxedo2에 할당 받은 file system을 확인하고 file 정리 및 disk space를 더
할당한다.
-----
현상 : LIBTUX_CAT:1542 ERROR: The -p option is valid only
for SHM mode with load balancing
원인 : SHM mode에 load balancing(LDBAL)이
on(Y)으로 설정되어 있지 않은 경우 발생
조치 : SHM mode에 load balancing(LDBAL)이 on(Y)으로
설정한다.
-----
현상 : 210616.신혜원!?proc.1652: LIBWSC_CAT:1037: ERROR:
Network message receive failure
210616.신혜원!?proc.1652:
LIBWSC_CAT:1059: ERROR: WSL returns error on connection request
210616.신혜원!?proc.1652: LIBWSC_CAT:1055: ERROR: Unable to establish WSL
connection
210616.신혜원!?proc.1652: LIBWSC_CAT:1027: ERROR: Unable
to connect to WSH
210616.신혜원!?proc.1652: LIBWSC_CAT:1020: ERROR:
Unable to obtain authentication level
원인 : Network이 Down된 경우에 발생.
조치 : Network admin에게 Monitoring 요청.
-----
현상 :
090627.MIS001-00!tmadmin.18251: TMADMIN_CAT:1330: INFO: Command: bbc
090627.MIS001-00!DBBL.11035: CMDTUX_CAT:1429: INFO: Forcing check of all
BBLs
090637.MIS001-00!BBL.11036: LIBTUX_CAT:216: WARN: Process
11835 died; removing from BB
090637.MIS001-00!BBL.11036:
LIBTUX_CAT:216: WARN: Process 11836 died; removing from BB
090637.MIS001-00!DBBL.11035: CMDTUX_CAT:1394: ERROR: BBL partitioned, machine=
mis1
090637.MIS001-00!DBBL.11035: CMDTUX_CAT:1385: INFO: BBL now
unpartitioned, machine= mis1
090637.MIS001-00!DBBL.11035:
CMDTUX_CAT:1762: INFO: Sending new TUXCONFIG file to machine mis1
090637.MIS001-00!DBBL.11035: CMDTUX_CAT:672: INFO: Sending BBL on machine mis1
new version of bulletin board
090647.MIS001-00!BBL.11036:
LIBTUX_CAT:576: ERROR: Unable to remove queue for process 18251
090647.MIS001-00!BBL.11036: LIBTUX_CAT:216: WARN: Process 18251 died; removing
from BB
090655.MIS001-00!WSH.18788: LIBTUX_CAT:329: ERROR: Tried
to free non-alloced tmrte
원인 : 위의 ULOG를 보시면 bbc 명령을 치셔서 모든 BBL을 체크했습니다.
( 9:06:27 )
BBL중 mis1이 응답을 하지 못하여 Partition이 났습니다. ( 9:06:37
)
바로 아래 응답이 와서 Unpartition이 되어서 TUXCONFIG 파일이 mis1 에 다시
보냈습니다.
그리고 나서 새로운 BB ( bulletin board )를 보냈습니다.
새로운 BB를 받는 도중에 tmshudown 명령을 입력하시어 서로 충돌이 발생하여 BB가 깨져서 발생한 에러입니다.
조치
:
-----
현상 : 100136.crane2!NSCADN503.23593: LIBTUX_CAT:533: ERROR:
Cannot execute service, address not known
100136.crane2!NSCADN503.23593: LIBTUX_CAT:516: ERROR: Unknown service request
IAD71000S
원인 : Tuxedo parition으로 인하여 해당 서비스를 실행하지 못하는 경우에 발생.
조치
: Tuxedo addmin에게 요청.
-----
현상 : 162919.kahp1521!JSL.8295:
LIBTUX_CAT:262: INFO: Standard main starting
162919.kahp1521!JSL.8295: INFO: JOLT Listener version-Jolt 1.2
[08/31/1999-40]
162919.kahp1521!JSL.8295: JOLT_CAT:1542: ERROR:
Unlicensed Jolt server
162919.kahp1521!JSL.8295: LIBTUX_CAT:250:
ERROR: tpsvrinit() failed
원인 : Jolt license가 말료된 경우에 발생.
조치 :
Jolt license($TUXDIR/udataobj/lic.txt)를 확인.
-----
현상 : cp: cannot
create /users/dev/tux/bin/./CC0011: Text file busy
원인 : Server
process(CC0011)가 이미 기동된 상태에서 컴파일 하고, 생성된 서버 프로세스를 복사한 경우에 발생.
조치 : 이미
기동된 서버 프로세스를 tmshutdown하고 복사한다.
-----
현상 :
121748.kolon1!SRVHL037.38722.1.0: LIBTUX_CAT:717: ERROR: Cannot attach to or
create shared memory
원인 :
조치 :
-----
현상 :
150108.ccbs1!DBBL.20241.1.0: CMDTUX_CAT:4729: WARN: Reached 100% of TUXEDO
System Binary Licensed User Count (6/3)
원인 : Tuxedo SDK licese가 부족할 경우에
발생.
조치 : Tuxedo SDK licese를 확인하고 licese를 추가 구입한다.
-----
현상 :
095105.MIS001-00!tmadmin.26094: LIBTUX_CAT:1370: WARN: Reached 100% of TUXEDO
System Binary Licensed User Count (1/0)
095105.MIS001-00!tmadmin.26094: LIBTUX_CAT:1367: ERROR: Expired TUXEDO System
Binary License
원인 : Tuxedo 메시지 오류임.(Tuxedo 7.1 이하에서 발생)
조치
:
-----
현상 : 113210.MIS001-00!aejz01.27692: LIBTUX_CAT:1397: WARN:
tpreturn transaction processing failure
원인 : 1.Transaction timed out을
초과하여 서비스 처리시간이 긴 서비스인 경우 발생(ORA-22와 같이 발생).
2.Transaction 내에서
tpcall() 실패 후 TPSUCCESS로 tpreturn하는 경우 발생
조치 : 1.Transaction 처리 시간을 더 늘려
주던지, 아니면 서비스 프로그램을 튜닝해야 한다.
2.이것은 프로그램에 따라 무조건 TPSUCCESS로
tpreturn 후 프로그램에서 종합적으로 판단하여 처리하는 경우도 있으므로 메시지 자체에는 큰 의미가 없고 이후 에러 처리만 제대로 하면
된다.
-----
현상 : 112627.ccbs1!tmboot.16392.1.-2: FATAL: internal error:
CMDTUX_CAT:1610: ERROR: Expired TUXEDO System Binary
원인 : Tuxedo
license가 만료 됨.
조치 :
-----
현상 : CMDTUX_CAT:994: ERROR: Reply
failure - TPESVCFAIL - application level service failure
원인 : 다른 서버에 동일한
서비스가 존재할 경우에 발생.
조치 : TMADMIN에서 "psc -s 서비스명"으로 동일한 서비스가 존재하는지 확인한 다음
동일한 서비스를 제거한다.
-----
현상 : CMDTUX_CAT:988: ERROR: ud detected syntax
error in fielded buffer #1
LIBFML_CAT:8: ERROR: Unknown field
name
CMDTUX_CAT:989: ERROR: No service in FBFR
원인 : Tuxedo 관련
환경설정이 잘못 설정된 경우에 발생.
조치 : Tuxedo 관련 환경설정 파일(tux.env)을 확인.
-----
현상 : 073722.nateifs1!GWTDOMAIN.20584: LIBGWT_CAT:1249: WARN: Connect to
IF3DOM address 2F-2F-31-35-30-2E-32-30-34-2E-31-31-2E-32-35-3A-33-35-30-30-30
failed, Network error(0x0)
073722.nateifs1!GWTDOMAIN.20584:
LIBGWT_CAT:1304: WARN: No more remote domain address for remote domain
IF3DOM
073722.nateifs1!GWTDOMAIN.20584: LIBGWT_CAT:1008: ERROR:
Unable to connect to remote domain IF3DOM; network error code 0x1faa
원인
:
조치 :
-----
현상 : LIBTMIB_CAT:100:ERROR: Class class is not
writable by this user
원인 : 클래스를 위해 SET 요구는 클래스가 부른 사용자를 위해 쓸 수 있는 제품 속성을
포함하지 않기 때문에 응해질 수 없었습니다.
조치 :
-----
현상 :
163354.ccbs1!CC0015.13789.3.2: gtrid x0 x3d570378 x6d4: LIBTUX_CAT:1380:
ERROR:Still in transaction
원인 : 서비스 프로그램에서 tpbegin을 한 후 tpreturn 하기 전에
transaction을 tpcommit 또는 tpabort를 하지 않은 경우에 발생.
조치 : tpreturn을 호출하기 전에
transaction을 tpcommit 또는 tpabort를 사용하여 종료 하도록 서비스 루틴을 변경한다.
-----
현상
: LIBFML_CAT:4: ERROR: Field not present !
원인 : FML Buffer Field 값이 존재하지
않은 Field에서 데이터를 가져올 경우에 발생
조치 :
-----
현상 :
090423.ccbs2!tlisten.18781.1.-2: CMDTUX_CAT:1283: ERROR: Could not create
directory for security key database
원인 : APPDIR parameter에 정의된
Directory가 존재하지 않은 경우에 발생.
조치 : APPDIR parameter에 정의된 Directory의 유효성을
확인한다.
-----
현상 : 163214.wamc_e2!BBL.151476: CMDTUX_CAT:33: ERROR: BBL
bbclean cannot open Bulletin Board image, /oracle/app/oracle/tmp/DBBL.33335
while restarting the DBBL
원인 : 1./oracle/app/oracle/tmp Directory에 대한
Space가 없는 경우에 발생
2./oracle/app/oracle/tmp Directory에 Write 권한이 없는
경우에 발생
3./oracle/app/oracle/tmp Directory가 존재하지 않는 경우에 발생
조치 : 1./oracle/app/oracle/tmp Directory에 대한 Space의 유효성을 확인한다.
2./oracle/app/oracle/tmp Directory에 Write 권한을 준다.
3./oracle/app/oracle/tmp Directory를 생성한다.
-----
현상 :
172554.SMP001-4!BBL.6552: LIBTUX_CAT:320: ERROR: BB TLOGSIZE differs from number
of pages in TLOG file
172554.SMP001-4!BBL.6552: LIBTUX_CAT:319:
ERROR: Log start cannot open tlog
172554.SMP001-4!BBL.6552:
LIBTUX_CAT:248: ERROR: System init function failed, Uunixerr =
원인 :
TLOG의 실제 크기가 BBL에 의해 유지된 크기와 다르기 때문에 TLOG 로그를 Open하면서 오류발생.
조치 : TLOG를
삭제하고 재생성한다.
-----
현상 : 152207.SMP001-5!restartsrv.1320: 08312002:
TUXEDO Version 6.4 4.0 3.0 3435 i486(TM)-MCA .
152207.SMP001-5!restartsrv.1320: LIBTUX_CAT:270: ERROR: Restart sync error
3
원인 : 존재하지 않는 프로세스가 지정되었음(kill에 의해 발생).
조치 :
-----
현상 : 153106.임상병리39!?proc.-431247: LIBWSC_CAT:1055: ERROR: Unable to establish
WSL connection
153106.임상병리39!?proc.-431247: LIBWSC_CAT:1027:
ERROR: Unable to connect to WSH
153106.임상병리39!?proc.-431247:
LIBWSC_CAT:1020: ERROR: Unable to obtain authentication level
원인 :
Client에서 WSL(Workstation Listener)을 연결하는 과정에서 발생한 오류
1.WSADDR(Workstation address)이 부정확한 경우
2.WSL(Workstation
Listener)이 기동되어 있지 않은 경우
3.Network이 down된 경우
4.Host machine이 down된 경우
조치 : 1.WSADDR(Workstation address) 설정값의 유효성을
확인하여 재설정한다.
2.WSL(Workstation Listener)의 상태를 확인하고 기동한다.
3.Network의 상태를 확인하고 기동한다.
4.Host machine의 상태를 확인하고
기동한다.
-----
현상 : LIBFML_CAT:2: ERROR: Buffer not fielded !
원인
: FML Table에 field가 존재하지 않을 경우에 발생.
조치 : FML Table에 field가 존재여부를
확인한다.
-----
현상 : 152508.SMP001-5!cleanupsrv.1371: 08312002: TUXEDO
Version 6.4 4.0 3.0 3435 i486(TM)-MCA .
152508.SMP001-5!cleanupsrv.1371: server SMP5_GP4/11803: CMDTUX_CAT:537: ERROR:
Failed to update server
While cleaning up information about a
dead server , the BEA TUXEDO system was unable to update the server table entry
for that server .
152508.SMP001-5!cleanupsrv.1371:
CMDTUX_CAT:557: ERROR: Automatic Server Recovery failure; Server processes
require manual intervention.
원인 : 데드 서버에 대하여 정보를 Clean up 하는 동안 BEA
TUXEDO System/T가 데드 서버에 서버 테이블 엔트리를 Update할 수 없는 경우에 발생.
조치 : userlog에
남긴 메시지를 확인하고, 충분한 정보가 제공된다면 단순히 다시 해당 서버를 기동시기면 된다.
메시지가 그렇지 않다면
할당된 IPC 자원을 깨끗이 정리하고, Tuxedo를 재기동해야 한다.
-----
현상 :
152520.SMP001-5!BRIDGE.13140: WARN: Could not lock USEM
152520.SMP001-5!BRIDGE.13140: LIBTUX_CAT:746: ERROR: Cannot lock Bulletin
Board
A process was unable to lock the TUXEDO System/T
shared memory data structures .
152520.SMP001-5!BRIDGE.13140:
CMDTUX_CAT:1418: ERROR: Cannot retrieve BBL server table entries
While attempting to check the local BBL 's sanity , the BRIDGE could not
find a server table entry for it .
The BRIDGE will
continue running , but the BBL will not be restarted if it dies .
원인 :
Local BBL의 동작 상태를 점검하는 동안에 BRIDGE은 그것을 위해 서버 테이블 엔트리를 발견할 수 없는 경우에 발생.
조치 : IPC 자원을 깨끗이 정리하고, Tuxedo를 재기동해야 한다.
-----
현상 :
210008.hp1511!WSL.3125: 09062002: TUXEDO Version 6.5 HP-UX B.11.00 U 9000/898
1623623321 unlimited-user license.
210008.hp1511!WSL.3125:
LIBTUX_CAT:1297: INFO: Boot process migrating location of group WSGRP1 to
machine SITE1
210008.hp1511!WSL.3125: LIBTUX_CAT:262: INFO:
Standard main starting
210009.hp1511!WSL.3125: WSNAT_CAT:1079:
ERROR: Error starting minimum number of handlers
210009.hp1511!WSL.3125: LIBTUX_CAT:250: ERROR: tpsvrinit() failed
원인
:
조치 :
-----
현상 : wamc_b1:/wamc> tuxwsvr -d /dev/xti/tcp
-l //128.17.1.11:8888 -i /tuxedo/udataobj/tuxwsvr.ini
wamc_b1:/wamc> wlisten -i /tuxedo/udataobj/webgui/webgui.ini
WEBGUI_CAT:3109: ERROR: Could not establish listening endpoint
wamc_b1:/wamc>
원인 : 설정된 NADDR의 Port를 이미 다른 프로세스에서 사용하고 있는 경우에
발생.
조치 : 설정된 NADDR의 Port를 확인 하고 유효한 Port를 재설정한다.
-----
현상 :
"svcmkfml.c", line 1306: undefined struct/union member: sqlerrm
"svcmkfml.c", line 1306: undefined struct/union member: sqlerrmc
"svcmkfml.c", line 1306: warning: left operand of "." must be struct/union
object
원인 : $TUXDIR/include의 directory 내에 존재하는 파일 중 sqlca.h을 컴파일할 때 참조할
경우 발생.
조치 : $TUXDIR/include의 directory 내에 존재하는 파일 중 sqlca.h을 컴파일할 때 참조하지
못하도록 다른 이름으로 변경(sqlca.h)한다.
-----
현상 : CMDTUX_CAT:4382: ERROR: You do
not have a valid TUXEDO SDK license
원인 : TUXEDO SDK license가 유효하지 않은 경우에
발생
조치 : $TUXDIR/udataobj/lic.txt를 확인.
-----
현상 :
/usr/ccs/bin/ld: Unsatisfied symbols: SQLCA(data)
원인 : $TUXDIR/include
Directory 내에 존재하는 파일 중 sqlca.h가 존재하여 발생(Database의 include Directory 내에 존재하는 사용해야
함).
조치 : $TUXDIR/include Directory 내에 존재하는 파일 중 sqlca.h -->
sqlca.h.org, sqlcode.h --> sqlcode.h.org, sqlda.h --> sqlda.h.org로
변경.
-----
현상 : LIBTUX_CAT:518: ERROR: Service 'hfw09101' failed to
call tpreturn or tpforward
원인 : 클라이언트에서 서비스 호출 후 서비스가 실행되고 있는 도중에 먼저
클라이언트가 종료되어 서비스 수행 결과를 되돌려 줄 클라이언트가 없는 경우에 발생.
조치 :
-----
현상
: 233944.NT280!?proc.3096.3084.0: LIBWSC_CAT:1458: ERROR: Invalid installation -
can't find c:\tuxedo \locale
원인 : Tuxedo client 모듈이 잘못 설치된 경우에 발생.
조치 : Tuxedo client 모듈 재설치.
-----
현상 : 215008.kaiser0!BBL.25945:
LIBTUX_CAT:297: ERROR: _tlog_open: _gp_crtbl: no space can be allocated for disk
table or for VTOC/UDL
215008.kaiser0!BBL.25945: LIBTUX_CAT:319:
ERROR: Log start cannot open tlog
090957.hubsr13!BBL.34772:
LIBTUX_CAT:300: ERROR: _tlog_open: _gp_tblopen: UNIX sys call error - 2
090957.hubsr13!BBL.34772: LIBTUX_CAT:319: ERROR: Log start cannot open
tlog
원인 : H/W의 Disk space 부족으로 인하여 tlog를 open할 수 없는 경우에 발생.
조치 :
H/W의 Disk space를 확인(df -k)하여 H/W의 Disk space를 조정한다.
-----
현상 :
125104.kumca1!BBL.30472: LIBTUX_CAT:541: WARN: Server MNXAGRP/2190
terminated
125104.kumca1!BBL.30472: LIBTUX_CAT:557: INFO: Server
MNXAGRP/2190 being restarted
125105.kumca1!BBL.30472:
LIBTUX_CAT:541: WARN: Server MNXAGRP/2191 terminated
125105.kumca1!BBL.30472: LIBTUX_CAT:557: INFO: Server MNXAGRP/2191 being
restarted
125105.kumca1!restartsrv.147532: 01182003: TUXEDO
Version 6.5 AIX 2 4 007025954C00.
125105.kumca1!restartsrv.147532: LIBTUX_CAT:577: ERROR: Unable to register
because the slot is already owned by another process
원인 : 서비스가 비종료 되면서
BBL 쪽에서 cleanup이 되지 않고 남아 있는 경우에 발생.
조치 :
-----
현상 :
152739.skcms_app!JSL.175008: JOLT_CAT:1521: ERROR: Unrecognized message magic
218759949
153617.skcms_app!JSL.175008: JOLT_CAT:1175: WARN:
Disconnecting listener connection to Jolt client, request timed out
원인 :
방화벽에서 JSL 및 JSH가 사용할 Port를 열지 않은 경우에 발생.
조치 : 방화벽 담당자에게 JSL 및 JSH가 사용할
Port 구간을 열어 줄 것을 요청.
-----
현상 :
ulog.110202:113755.jnuhp2!tmshutdown.701: LIBTUX_CAT:1566: ERROR: Unable to set
type switch index
원인 :
조치 :
-----
현상 :
170650.hub2!simpsvr.24144: ERROR: msgsnd err:(LIBTUX_CAT:669: ERROR: Message
operation failed because of the invalid message queue identifier)
errno=22,qid=832176246,buf=539099304,bytes=50,flag=2048
170650.hub2!simpsvr.24144: LIBTUX_CAT:1286: ERROR: tpreturn could not send reply
TPEOS - operating system error
원인 : 1.서비스가 지정된 시간 안에 종료 되지 않은 경우에
발생.
2.Message queue size가 적은 경우에 발생(Message size가 큰 경우).
조치 : 1.서비스를 튜닝하던지 아니면 서비스 수행시간을 조정한다.
2.Message queue size를
조정한다.
-----
이슈 : XA 서비스를 non-XA 모드로 호출할 때, etc.
1.XA
서비스를 non-XA 모드로 호출할 때
1) OPENINFO에 NoLocal=true가 설정되어 있을 때
- 일단 tpbegin()을 호출하지 않았기 때문에 Transaction Context가 아니라서
xa_start()는 호출되지 않는다.
- 그런데, NoLocal=true가 설정되어 있으면 SQL 수행시
ORA-00155: cannot perform work outside of global transaction이 발생한다.
- 따라서 SQL error만 제대로 체크하는 루틴이 있으면 문제없다.
2) OPENINFO에
NoLocal=true가 설정되어 있지 않을 때
- 위와 마찬가지로 xa_start()는 호출되지
않는다.
- SQL은 Local transaction으로 수행된다.
-
위에서의 Local transaction에 대해서 COMMIT/ROLLBACK 명령이 없으므로
- 이
상태에서 XA 모드로 서비스를 호출하게 되면 LIBTUX_CAT:481: ERROR: Service xa_start returned -9
발생
- 이 경우에는 서버를 Rebooting하여야 한다.
2.non-XA
서비스를 XA 모드로 호출할 때
1) tpcall() 시에 에러가 발생하며,
tperrno=14(TPETRAN)이다.
2) 이 경우에는 tpcall()의 flag에 TPNOTRAN을
설정하거나 tpbegin()을 호출하지 않은 상태에서 tpcall()을 수행하여야 한다.
3.xa_start()
returned -9
1) 위의 경우에서도 보인 바와 같이 Transaction이 Local
transaction으로 진입한 이후에
2) 정상적인 COMMIT/ROLLBACK 명령을 수행하지 않고
3) XA 모드로 다시 서비스를 호출하면 발생한다.
4) 서버를 Rebooting하여야
한다.
5) 위의 경우처럼 XA 서비스를 non-XA 모드로 호출하였다가 XA 모드로 호출하는 경우라든가
6) Timeout 등에 의해 xa Session이 끊어진 이후에 에러 처리를 제대로 하지 않아서
7) Local Transaction으로 진입한 경우가 있다.
-----
이슈 : Caching된 Field
table의 Reload 방법
FML 함수에서 사용되는 Field table은 보다 빠른 접근을 위해서 메모리 상에
Caching이 되게 된다. 따라서, AP가 떠 있는
상태에서 해당 파일의 내용을 변경 하더라도 바로 반영이 되지
않는다.
일반적으로 Field table은 거의 변경하지 않기 때문에 큰 문제가 되지는 않지만, 만일 한
Process 내에서 2개의 서로 다른
Tuxedo System으로 접속을 하고, 그 두 시스템에서 사용하는
Field table에 충돌이 있는 경우에는 이를 해결할 방법이 없다.
조치 : Tuxedo에서는 Field table을 위한
Cache를 Unload하기 위한 함수를 제공한다. FML을 위한 Cache는 ID를 Name으로 맵핑하기
위한
테이블이 존재한다.
먼저, ID를 Name으로 맵핑하는 테이블을 Unload하기 위한 함수는
(void)Fidnm_unload(void)
(void)Fidnm_unload32(void)
그리고, Name을 ID로 맵핑하는 테이블을 Unload하기 위해서는
(void)Fnmid_unload(void)
(void)Fnmid_unload32(void)
-----
이슈 : FML32 사용상의 주의점
1.보다 많은 Field number를 사용할 수 있고( <
33554431)
2.버퍼 크기의 제한을 덜 받는다.(최대 2GB)
조치 : FML32를 사용할 경우에
사용할 수 있는 Field number는 증가하지만, Data Dependent Routing을 위해
사용되는 필드의
Number는 반드시 8191 이하이어야 한다. 따라서, 만일 특정 필드가 Data Dependent
Routing을
위해서 사용될 것이라면 이의 필드 Number는 8191 이하로 설정해야 한다.
FML32를 사용하더라도
Windows 3.1에서는 64KB로 버퍼의 크기가 제한된다. 따라서, 혹시라도 Windows 3.1을
같이 사용하고
있는 환경에서는 이 제한을 받게 된다.
많은 필드를 한 버퍼에 넣을 경우에 속도 문제를 고려한다면 Fchg32()
보다는 Fappend32()를 사용하는 것이 바람직하다.
-----
이슈 : 특정 서버가 비정상 종료된 상태에서
"tmadmin" 상의 "psr"에 의한 서버의 상태가 계속적으로 Cleaning 혹은 Restarting 상태로 남아 있음.
조치 : BB의 Cleaning/Restarting 상태는 BBL이 해당 서버의 비정상 종료를 감지하고,
cleanupsrv/restartsrv를 수행하고 있는 상태를 의미한다.
이 작업은 일반적으로 몇 초 내에 종결되는
작업이다. 이 상태가 오래도록 지속되는 경우 다음 2가지로 나누어 볼 수 있다.
1.cleaning/restarting 작업에 지연요소 발생
서버 restarting의 경우에 DB 접속과 같은
작업이 이루어진다. 그런데 DB 접속이 지연되는 경우에는 cleanupsrv/restartsrv가 해당
작업을
종료할 수 없다. 따라서, 그 상태가 오래도록 지속되게 된다. 이 경우 해당 지연 요소를 먼저 제거해 주어야 한다.
2.PID 재사용에 의한 문제
특히, AIX와 같이 PID 재사용이 많은 경우에 발생하는 문제로 BBL이 비정상
종료된 프로세스를 정리하기 전에 해당 PID를 다른 프로세스가
차지하게 되는 경우를 말한다. 이 경우
cleanupsrv/restartsrv는 마치 해당 프로그램이 동작 중인 것으로 판단하여 해당 상태에 대한 update를 하지 않게
된다.
이 때에는 "tmadmin"의 "psr" 명령을 verbose 모드로 수행하여 그 PID를 확인하고
종료시킨 후에 cleanupsrv/restartsrv를 수행시켜주면 된다.
위 PID 재사용에 의한 문제는 서버
뿐만 아니라, "tmshutdown"과 같은 Native client의 경우에는 발생할 수 있으면, 이경우에는 "pclt" 명령에서 PID를
확인할 수 있다.
-----
이슈 : TIME_WAIT 상태시간 줄이기
TIME_WAIT 상태는
정상적인 종료 과정에서 거치게 되는 과정으로 마지막 ACK 신호를 잃어 버린 경우에 재 전송하기 위한 상태이다.
Client/Server 환경에서는 주로 Connection-Oriented 형식으로 사용하기 때문에 이 상태에 머무르는 소켓의 개수가 많지
않지만, Connectionless 형식을 사용하는
HTTP 환경에서는 부하에 비례하여 생기게 된다. 따라서, 부하가
많은 경우에는 이 상태에 잔류하는 소켓이 많아지게 되어 File Descriptor 개수 제한에 걸리게 된다.
조치 : 위와 같이
TIME_WAIT에 잔류하는 소켓의 개수를 줄이기 위해서는 그 잔류시간을 줄여주는 것이 바람직하다.
일반적으로
Unix 메신에서는 "root" 권한을 가진 사용자가 다음과 같이 "ndd" 명령을 사용하여 조회/변경이 가능하다.
조회시 : ndd /dec/tcp tcp_time_wait_interval
변경시 : ndd-set
/dec/tcp tcp_time_wait_interval <value>
여기서
<value>에 해당하는 값은 milli-second 단위이다.
그리고, Windows 환경에서는 아래의
"TcpTimedWaitDelay" 값을 Registry에서 설정하면 된다.
--------------------------------------------------------------------------------------
TcpTimedWaitDelay (new in Windows NT version 3.51 SP5 and
later)
Key:Tcpip\Parameters
Value Type: REG_DWORD - Time in seconds
Valid Range:
30-300 (decimal)
Default: 0xF0 (240 decimal)
--------------------------------------------------------------------------------------
Windows 환경에서 자세한 적용 절차는 다음 URL을 참조(http://support.microsoft.com/support/kb/articles/Q120/6/42.asp)
-----
이슈 : FireWall을 위한 Tuxedo 구성
FireWall은 네트워크 상에서 패킷의 전송을 제한함으로써
허가되지 않은 사용자의 접근을 방지하는 일을 한다.
FireWall은 크게 지정된 포트를 통한 데이터 전송 만을
걸러주는 패킷 필터링(Packet Filtering) 방식과 외부에서 들어오는 패킷을 검사하여 허가된 패킷을 마치 자신이 보내는 것과
같이
재 전송하는 프록시 방식(Proxy)으로 나뉘어 진다.(프록시 방식은 NAT-Network Address
Translation-방식이라고도 부른다.)
이런 FireWall이 클라이언트와 서버 사이에 존재할 경우에는
Tuxedo용 패킷이 FireWall을 통과할 수 있도록 하기 위한 설정이 필요하다.
조치 : 클라이언트와의 접속을 관리하는
프로세스인 WSL에는 FireWall을 위한 두 가지 옵션이 존재한다.
먼저, 지정된 포트만을 사용해야 하는 패킷
필터링 방식을 지원하기 위해서는 WSH가 사용하는 포트를 제한하는
-p(min. Port), -P(max. Port)
옵션을 사용하면 된다.
예를 들어, FireWall에서 허용된 서버의 Port가 20000부터 20050번 까지라면
WSL을 다음과 같이 정의할 수 있다.
예) CLOPT="-A -- -n //server:20000 -p
20001 -P 20050"
그리고, 프록시 방식의 FireWall의 경우는 클라이언트로 보내지는 접속할 WSH의
IP Address를 지정하는 -H 옵션을 추가하여야 한다.
예를 들어, FireWall의 외부 IP가
ppp.xxx.yyy.zzz이고, 허용된 포트가 20000에서 20050이라면 다음과 같이 설정할 수 있다.
예)
CLOPT="-A -- -n //server:20000 -p 20001 -P 20050 -H
//ppp.xxx.yyy.zzz:20000"
-----
이슈 : Tuxedo 6.x와 7.x의 연동성
Tuxedo 7.x 버젼부터는 Thread 기능 지원 등을 포함하여 많은 부분이 변경되었다.
따라서, 이번
버젼(6.x 이하)과 상호 연동을 하기 위해서는 몇 가지 작업이 필요하다.
조치 : 상호 연동성 문제는 다음의 2가지 경우로 나눌
수가 있다.
1) 6.x 클라이언트가 7.x 서버로 접속할 경우
관련 서버의
CLOPT에 "t" option이 필요(주의: -- 앞쪽에 설정 요)
2) 7.x 클라이언트가 6.x 서버로 접속할
경우
환경변수 WSALLOWERE71=Y가 필요
-----
이슈 : Domain
config의 BLOCKTIME과 Transaction timeout의 관계
Domain간의 Transaction
처리 시에 설정된 Transaction timeout보다 먼저 TPETIME 에러가 발생하는 경우가 있다.
그 원인은
보통 Domain config 상에 설정된 BLOCKTIME이 먼저 적용되었기 때문이다.
Ubbconfig 상에
설정된 BLOCKTIME은 Transaction timeout이 설정되어 있으면 무시되므로 Domain config의 경우도
그런 것으로 짐작하는 경우가 많다(실제 Tuxedo manual 상에도 그렇게 기술되어 있으며 현재 수정되어야 할 사항임).
그러나, 실상은 이 두가지(Transaction Timeout, BLOCKTIME in Domain config) 중에 짧은 것이
먼저 영향을 준다.
조치 : Transaction과 관련된 Domain config 설정 시 BLOCKTIME을 해당
Gateway를 통해 발생될 Transaction 중 최대로 오래
걸리는 것을 고려하여 그 보다 크게 설정하여야 할
것으로 보임.
-----
이슈 : GTT full과 MAXTRANTIME
Tuxedo MP,
Domain model 사용 시 Aborted된 Transaction이 GTT(Global Transaction Table)에서 Clear
되는데 경우에 따라 Transaction timeout까지 소요될 수가 있다.
따라서, Timeout을 불필요하게
크게 설정(예를 들어, Batch 작업관련 Service 요청 시 tpbegin에서 Transaction timeout을 0으로
설정(System의 unsigned long의
최대값으로 약 20억초)하는 경우가 간혹 있슴)하면 위와 같이
Aborted된 Transaction들이 누적되어 ubbconfig에서 설정한 MAXGTT값을 초과, GTT full을 유발할 수
있다.
이를 방지하기 위해서는 Application에서 tpbegin시 설정한 Transaction timeout을
적절히 작은 값으로 변경하면 되나 code 수정에 상당히 많은 시간이 소요될 수
있으므로 빠른 조치를 위해
MAXTRANTIME이라는 Parameter를 사용하여 일괄적으로 제어할 수가 있다.
조치 : MAXTRANTIME은 Tuxedo
8.1에서 새롭게 추가된 Parameter이며 Tuxedo 6.5의 경우에는 patch(377.CR091218 MAXTRANTIME
backport)를 적용하면 사용이 가능하다.
-----
현상 : 164527.chaeju!GWTDOMAIN.3253:
gtrid x0 x39d05191 x16d: LIBGW_CAT:1029: ERROR: Service request not forwarded to
remote site:"TPESVCERR - server error while handling request"
gwerrno(402019)
Tuxedo 6.4 295+, Tuxedo 6.5 226+가 적용되었음에도
"maximum action table size reach" 에러 이후 remote domain으로 call이 되지 않는다.
원인
: pt 정보가 계속 남아있고 GWTDOMAIN에 Message queue가 Clear되지 않고 Remote domain으로 call이 되지
않는다.
조치 : DMTLOGSIZE가 충분치 않은 경우 발생하므로 크기를 늘려주면 해결된다.
Action table size는 내부적으로 10000으로 되어 있는데 Tuxedo 7.1+ 부터는 환경변수 TUX_GW_ACTMAX를 통하여
설정.
-----
현상 : 211448.chaeju!WSH.23453.1.0: LIBTUX_CAT:6031: ERROR:
Unable to pre-process buffer before tranmission. Error code(12/3951)
211448.chaeju!WSH.23453.1.0: WSNAT_CAT:1148: ERROR: Processing of message to
be sent to client failed.
211448.chaeju!WSH.23453.1.0:
WSNAT_CAT:1029: ERROR: Sending of reply message to client failed.
원인 :
64-bit Tuxedo 8.0에서 서비스 요청 시 Client가 Hang이 걸리는 경우 Data type이 맞지 않아 발생
조치
: 1.32-bit Tuxedo 8.0으로 바꿔서 테스트 시 정상
2.FML의 Field type은 long으로
Fchg()시 넣어주는 변수는 int로 사용한 경우 발생 프로그램 에러로 Data type를 맞춰주면 된다.
*-----------------------------*
| Data type
|
|-----------------------------|
| 유형 |
32-bit | 64-bit |
|-----------+--------+--------|
| Char | 8 | 8 |
| short | 16 | 16
|
| int | 32 | 32 |
| long
| 32 | 64 |
| long long | 64 | 64 |
| pointer | 32 | 64 |
*-----------------------------*
-----
현상 : 194052.chaeju!JSH.21995:
gtrid x0 x3a8107dd x13: JOLT_CAT:1043: ERROR:tpacall() call failed, tperrno =
13
Transaction 업무인 경우는 Session 상태를 계속 유지해야 하므로 해당 Transaction이
끝나기 전까지 다른 Transaction이
같은 Session을 사용할 수 없다. 하지만 Transaction이 아닌
경우는 같은 Jolt session을 사용할 수 있다.
그리고, Jolt connection pool은 요청이
들어왔을때 해당 Session이 Idle하지 않은 경우에 다음 Session으로 요청을 넘긴다.
원인 :
프로그램(Servlet/EJB)에서 Transaction을 시작한 후 Rollback 또는 Commit을 하지 않은 상태로 끝난 후
Transaction mode가 아닌 요청이 들어온 경우 발생한다.
또한 위의 경우 에러가 바로 발생하므로
Transaction 상태에 있지만 해당 Session은 Idle하므로 계속적으로 Request를 처리하고 에러를 발생시킨다.
결과적으로 많은 요청이 계속적으로 안되는 것으로 보인다.
조치 : 1.해당 JSH를 Kill 시키면 정상적으로
수행됨.
2.프로그램에서 시작한 Transaction에 대한 Commit/Rollback이 빠져 발생하는 것이므로
관련 프로그램에서 이를 반영하면 된다.
-----
이슈 : long과 char에 대한 대응 Jolt data type 정의
시
Jolt와 Tuxedo에서 지원하는 Data type을 보면 Jolt에 long data type이 없고, 또한
32-bit와 64-bit의 경우 long의 크기가 다르다. 그리고 C/C++에서의 char data type은 1 byte이나 Java에서
char data type은 2 byte이다.
*-------------------*
*----------------------------*
| Jolt | |
Tuxedo |
|-------------------|
|----------------------------|
| 데이터형 | 크기 | | 데이터형 | 32-bit
| 64-bit |
|----------+--------|
|----------+--------+--------|
| byte | 1 byte | | char
| 1 byte | 1 |
| string | | | string | |
|
| short | 2 byte | | short | 2 | 2
|
| integer | 4 byte | | int | 4 | 4 |
| float | 4 byte | | long | 4 | 8 |
|
double | 8 byte | | float | 4 | 4 |
| carray |
| | double | 8 | 8 |
*-------------------*
*----------------------------*
조치 : 1.Long data type
Tuxedo가 32-bit인 경우는 Jolt의 Integer data type을 사용
Tuxedo가 64-bit인
경우는 Jolt의 Double data type을 사용
2.Char data type 처리
Java "char" primitive type은 16-bit Unicode 값이나 C/C++는 8-bit ASCII 기반의
값이다.
이러한 차이 때문에 Java에서 "char"가 아닌 "byte"를 사용해야 한다. "char"를 위해서는
다음 Method를 addByte, setByte, setByteItem, getByteDef,
getByteItemDef
-----
이슈 : Oracle7과 Oracle8의 XA 구현 비교
*----------------------------------------------------------------------------------------------------*
| 내용 | Oracle 7.x | Oracle
8.x | 비고 |
|--------------------------------+-------------------+------------------------------+----------------|
| XA를 통한 사용자에게 꼭 권한을 | sys.v$xatrans$ | sys.v$xatrans$
| |
| 부여해야 되는 XA 관련 View |
| sys.dba_pending_transactions | |
|--------------------------------+-------------------+------------------------------+----------------|
| tpopen() 시에 Session 수 | 2 개 | 1 개
| 7.x에서는 처음 |
| |
| | SQL을 처리시에 |
|
| | | 세션이
추가 됨 |
|--------------------------------+-------------------+------------------------------+----------------|
| Oracle Parameter | |
| |
| - Process 수 |
(XA+NXA)서버수*1 | (XA+NXA)서버수*1 | |
| -
Session 수 | XA서버수*3+a | XA서버수*1 |
|
| | NXA서버수*1 |
NXA서버수*1 | |
|--------------------------------+-------------------+------------------------------+----------------|
| OPENINFO에서 SesCashSZ 값 | Default = 20 | 필요없음
| |
| |
Resource가 부족할 | 이유) Session이 1개로 관리됨 | |
|
| 경우 Oracle에서 | |
|
| | 0으로 설정할 것을 |
| |
|
| 권장하지만 속도 | | |
| | 저하 유발할 수도 |
| |
| | 있다고 함.
| | |
*----------------------------------------------------------------------------------------------------*
조치 : DBMS가 Oracle 8.x인 경우 참조/주의해야 할 사항
1.DB Link를 사용하는 Logic을
XA Interface를 통해서 트랜잭션 제어를 받아야 하는 경우에는 관련된 Oracle
Instance의
환경을 MTS 방식으로 설정이 되어 있어야 함(Oracle 7.x도 동일함).
2.Oracle 8.0.4에서는
Oracle child process 메모리 증가, Cursor를 통한 Fetch 중에 다른 서비스를 호출하는 경우
오류 등 검증 안된 문제점이 있는 것으로 보이므로 고객에 Oracle 8.0.5로 Upgrade할 것을 요청할 것
3.Oracle 8.x에서는 EXEC SQL... 문을 수행한 후 결과가 실패(sqlca.sqlcode < 0)인 경우 Signal을
발생시키므로
SQL문 다음에 서비스를 호출하는 경우 플래그에 "TPSIGRSTRT"를 설정한 후 서비스 호출을
하여야 함.
그렇지 않은 경우 서비스 호출 시에 "TPGOTSIG" 오류가 발생함.
4.Oracle 8.x에서는 Oracle 7.x보다 XA 관련 View(v$xatrans$, dba_pending_transactions)에
대해서 Lock이 자주 발생하기 때문에 TMS server booting 시에 오랜 시간이 걸려도 start 되지 않는 경우에
view에 Select query를 보내어서 결과를 Check할 것.
운영중에 Tuxedo
admin이 Kill signal 또는 IPC를 통해 XA 관련 Server process를 비정상적으로 Shutdown 했을 때 두 View에
Lock 발생빈도가 높은 것으로 보임.
-----
현상 : 130544.hub2!IISERVER.32508:
iiserver.cpp: Error connecting to DBMS Location(HUB) UserId(iio) Psw(**secret**)
Instance() Type(9)
130544.hub2!IISERVER.32508: iiserver.cpp: DBMS
error 539480360 [ORA-12541: TNS:no listener]
원인 : Oracle listener가 기동되어
있지 않은 경우에 발생
조치 : DBA에게 Oracle listener를 기동시켜 달라고 요청
-----
현상
: 154551.telesky1!SVC.983: 04062001: TUXEDO Version 6.5 HP-UX B.11.00 U
9000/898 1623623321 unlimited-user license.
154551.telesky1!SVC.983: LIBTUX_CAT:262: INFO: Standard main starting
154551.telesky1!SVC.983: GP_CAT:214: ERROR: Null version of xa_open() found
non-null info string
154551.telesky1!SVC.983: LIBTUX_CAT:466:
ERROR: tpopen TPERMERR xa_open returned XAER_INVAL
154551.telesky1!SVC.983: LIBTUX_CAT:1353: ERROR: tpopen failed - TPERMERR -
resource manager error
154551.telesky1!SVC.983: LIBTUX_CAT:250:
ERROR: tpsvrinit() failed
원인 : 서버 컴파일시 -r Oracle_XA옵션 생략했을 경우을 발생(서버가
부팅이 않됨)
조치 : make file의 buildserver 부분에서 다음에 -r Oracle_XA 옵션을
추가한다.
-----
현상 : TMADMIN_CAT:188: ERROR: Error while obtaining the
Bulletin Board parameters
083920.hubsr13!tmadmin.41650:
LIBTUX_CAT:603: ERROR: TUXCONFIG file /eai/dev/wle/env/tuxconfig does not
exist
083920.hubsr13!tmadmin.41650: LIBTUX_CAT:588: ERROR: Unable
to open TUXCONFIG file
원인 : TUXCONFIG 파일이
디렉토리(/eai/dev/wle/env/tuxconfig)에 존재하지 않을 경우에 발생
조치 :
-----
현상 : 103226.sgim32!tmboot.6693106.1.-2: WARN: internal error: CMDTUX_CAT:1267:
ERROR: Cannot start/stop servers, Memory allocation failure
103226.sgim32!tmboot.6693106.1.-2: WARN: internal error: CMDTUX_CAT:804: ERROR:
Cannot start TMS servers, error reading *GROUP section
원인 : tmboot시
Resource가 부족하여 메모리 할당을 받지 못한 경우에 발생
조치 : System resource를 확인하여 메모리를
재할당한다.
-----
현상 : 035915.sgim32!tmboot.835746.1.-2: LIBTUX_CAT:1376:
WARN: APPDIR value "/u3201/develp/oltp/BIN" in environment does not match
configuration "/u3201/develp/oltp/TESTBIN"
원인 : Tuxedo 환경변수 중 APPDIR의
설정값과 Tuxedo 구성파일에서 설정한 값이 다른 경우에 발생.
조치 : Tuxedo 환경변수 중 APPDIR의 설정값과
Tuxedo 구성파일에서 설정한 값을 확인한 후 올바른 APPDIR의 설정값을 지정한다.
-----
현상 :
035917.sgim32!tmboot.835746.1.-2: CMDTUX_CAT:1578: ERROR: Could not contact NLS
on SGIM32
035917.sgim32!tmboot.835746.1.-2: CMDTUX_CAT:1576:
ERROR: No NLS available for remote machine SGIM32
원인 : SHM 모드인데, MP로 지정한
경우에 발생.
조치 : Tuxedo 구성파일의 RESOURCES 절의 파라미터 중 MODEL의 설정값을 SHM으로
한다.
-----
현상 : 103916.sgim32!TMS_ORACLE9.4661364.1.0: LIBTUX_CAT:250:
ERROR: tpsvrinit() failed
103916.sgim32!TMS_ORACLE9.4661364.1.0:
LIBTUX_CAT:300: ERROR: _tlog_open: _gp_tblopen: UNIX sys call error - 2
원인 : 1.Database 계정(User-ID/Password)이 다른 경우
2.TMS_ORACLE9가
TUXDIR/bin에 존재하지 않는 경우에 발생.
조치 : 1.Database 계정(User-ID/Password)을 확인한 후
올바른 계정을 설정한다.
2.buildtms를 이용하여 TMS_ORACLE9를 생성한 뒤 TUXDIR/bin에
복사한다.
-----
현상 : 101930.id!hccrpi002.5890: LIBTUX_CAT:323: ERROR:
Invalid data length of 0, data not self describing
101930.id!hccrpi002.5890: LIBTUX_CAT:1286: ERROR: tpreturn could not send reply
TPEINVAL - invalid arguments given
원인 :
조치 :
-----
현상
: 121452.kahp2511!BBL.641: LIBTUX_CAT:563: ERROR: Unable to exec
/tuxedo/bin/restartsrv -g4 -i9602 - errno=12
121452.kahp2511!BBL.641: LIBTUX_CAT:550: WARN: Cleaning up restartable server
GRP2B/9602
121452.kahp2511!BBL.641: LIBTUX_CAT:555: ERROR: Unable
to exec /tuxedo/bin/cleanupsrv -g4 -i9602 - errno=12
121452.kahp2511!BBL.641: BULLETIN BOARD entry for server removed GRP=GRP2B
ID=9602 GEN=1 AOUT=/hcp/bin/hcaepw001 PID=22605
원인 : 이용할 메모리가 없음.
메모리 용량을 다 썼으므로 시스템이 더이상 메모리를 할당할 수 없다.
서비스 프로그램에서 tpalloc() 함수를
사용하고 tpfree()함수를 사용하여 할당 받은 메모리를 해제하지 않은 경우 발생.
조치 : 서비스 프로그램을
수정(tpalloc() 함수를 사용하고 tpfree()함수를 사용하여 할당 받은 메모리를 해제하도록)한다.
-----
현상
: exec s_a2e003 -A -r -p 1,3:3,10 -o /eai/dev/wle/log/s_a2e003.out :
on HUB2 -> CMDTUX_CAT:816: ERROR: Cannot exec, executable file not
found
on HUB1 -> CMDTUX_CAT:819: INFO: Process id=34556 Assume
started (pipe).
154613.hubsr13!s_a2e003.37890: 06122003: TUXEDO Version 6.5 AIX
2 4 007025954C00.
154613.hubsr13!s_a2e003.37890: LIBTUX_CAT:1416:
ERROR: Server group active on primary location
154613.hubsr13!s_a2e003.37890: LIBTUX_CAT:248: ERROR: System init function
failed, Uunixerr = : msgctl: Error 0
154613.hubsr13!s_a2e003.37890: LIBTUX_CAT:745: ERROR: Process not attached to a
Bulletin Board
154613.hubsr13!DBBL.26682: ERROR: msgsnd
err:(LIBTUX_CAT:669: ERROR: Message operation failed because of the invalid
message queue identifier)
errno=22,qid=1310763,buf=538523864,bytes=50,flag=2048
154613.hubsr13!DBBL.26682: CMDTUX_CAT:401: ERROR: service request ..MASTERBB
handled by DBBL failed, : msgsnd: Invalid argument
원인 : s_a2e003 실행파일의
실행권한이 없는 경우에 발생.
조치 : s_a2e003 실행파일에 실행권한을 부여한다.(chmod 777
s_a2e003)
-----
현상 : 195331.AP1!TMS_OR9_OVER.15563.1.0: 07-09-2003:
Tuxedo Version 8.0
195331.AP1!TMS_OR9_OVER.15563.1.0:
LIBTUX_CAT:262: INFO: Standard main starting
195331.AP1!TMS_OR9_OVER.15563.1.0: LIBTUX_CAT:466: ERROR: tpopen TPERMERR
xa_open returned XAER_RMERR
195331.AP1!TMS_OR9_OVER.15563.1.0:
LIBTUX_CAT:250: ERROR: tpsvrinit() failed
195331.AP1!TMS_OR9_OVER.15563.1.0: LIBTUX_CAT:300: ERROR: _tlog_open:
_gp_tblopen: UNIX sys call error - 2
원인 : Oracle의 listener가 떠 있지 않은 경우에
발생.
조치 : Oracle Admin에거 Oracle의 listener 기동 요청.
-----
현상 :
143152.AP1!TMS_OR9_AUTH.2150.1.0: LIBTUX_CAT:467: ERROR: tpclose TPERMERR
xa_close returned -7
143152.AP1!TMS_OR9_AUTH.2150.1.0:
CMDTUX_CAT:457: INFO: TMS tpsvrdone complete
현상 : ORA-03113: end-of-file
on communication channel
원인 : 1.Database의 Instance가 Shutdown 된 경우에
발생.
2.이전에 작동했던 해당 instance의 shared memory segment들이 아직 system에
남아있어서 발생.
조치 : 1.DBA에게 Database의 상태를 확인하고, Instance가 Shutdown된 경우 해당
Instance를 재기동하고, Tuxedo의 해당 서버를 재기동한다.
2.shared memory를 check하여
oracle이 소유하고 있는 shared memory segment를 삭제하여 문제를 해결.
-----
현상 :
153129.hubsr13!tlisten.29692: CMDTUX_CAT:4209: INFO: Accepted request from
//10.55.2.121:47541, seq # 102
153132.hubsr13!BBL.95310:
CMDTUX_CAT:1384: WARN: O_IMOK message could not be sent to DBBL, tperrno=
12
153135.hubsr13!DBBL.113154: CMDTUX_CAT:655: INFO: Exiting
system for migration from hubsr13 to hubsr14
153139.hubsr13!tlisten.29692: CMDTUX_CAT:4209: INFO: Accepted request from
//10.55.2.121:47542, seq # 103
원인 : Migration하기 위해 Master를 변경하기 위해 "-m
yes"할 때 발생(Tuxedo 6.5)
조치 :
-----
현상 : BOSDB
[ta@BEST_BOS:/BEST/env] $ cat tlisten.sh
tlisten -l
//21.98.245.22:7002
BOSDB [ta@BEST_BOS:/BEST/env] $
tlisten.sh
exec(): 0509-036 Cannot load program tlisten because
of the following errors:
0509-150 Dependent module
/tuxedo/bea/tuxedo8.0/lib/libgpnet.so could not be loaded.
0509-103 The module has an invalid magic number.
원인 : tlisten을 기동시킬
때 발생(Tuxedo 32Bit를 설치한 후 64Bit로 올린 후 발생)
조치 : Tuxedo 32Bit 잔재가 남아서
발생하므로, Tuxedo가 설치된 Directory를 삭제후 재설치하면 된다.
-----
현상 :
175733.hubsr13!tlisten.39824: 07222003: TUXEDO Version 6.5 AIX 2 4
007025954C00.
175733.hubsr13!tlisten.39824: CMDTUX_CAT:4281:
ERROR: Cannot read password file "/eai/wle/udataobj/tlisten.pw" (errno=13)
원인 : tlisten.pw의 파일 퍼미션이 없기 때문에 발생.
조치 : chmod 명령어를 사용하여 tlisten.pw의
파일 퍼미션을 조정한다.
-----
현상 : 205335.hubsr14!BSBRIDGE.21488: 07222003:
TUXEDO Version 6.5 AIX 2 4 007025954C00.
205335.hubsr14!BSBRIDGE.21488: LIBTUX_CAT:680: ERROR: Effective UID or GID does
not match bulletin board
205337.hubsr14!BSBRIDGE.21488:
LIBTUX_CAT:262: INFO: Standard main starting
205337.hubsr14!BSBRIDGE.21488: CMDTUX_CAT:1178: ERROR: Mismatch on uid/gid from
connecting bridge
205337.hubsr14!BSBRIDGE.21488: CMDTUX_CAT:1373:
ERROR: Abnormal disconnect from hubsr13
205337.hubsr14!BSBRIDGE.21488: CMDTUX_CAT:473: ERROR: Could not find DBBL
205337.hubsr14!BSBRIDGE.21488: LIBTUX_CAT:250: ERROR: tpsvrinit()
failed
205339.hubsr14!BBL.26368: 07222003: TUXEDO Version 6.5
AIX 2 4 007025954C00.
205339.hubsr14!BBL.26368: LIBTUX_CAT:583:
ERROR: Not a privileged user, incorrect permissions
원인 : ubbconfig에 설정된
UID, GID가 다른 경우에 발생.
조치 : "hubsr14" 머신에서 "id" 명령어를 사용하여 UID, GID를 확인한 후
ubbconfig에서 "hubsr14" 머신의 UID, GID를 조정한다.
-----
현상 :
212637.hubsr13!IISERVER.21372: Advertising service S_A2A005
[S_A2A005,FF_A2A05_I01,,,]
212637.hubsr13!IISERV핬R.21372:
Attempting to connect to DB Loc(HUB) User(hubiio) Psw(hubiio) Inst()
Type(9)
212637.hubsr13!IISERVER.21372: Done connecting session
object=2023afd8
212637.hubsr13!IISERVER.21372: iiserver.cpp:
Error connecting to DBMS Location(HUB) UserId(hubiio) Psw(**secret**) Instance()
Type(9)
212637.hubsr13!IISERVER.21372: iiserver.cpp: DBMS error
539780408 [ORA-12154: TNS:could not resolve service name]
212637.hubsr13!IISERVER.21372: LIBTUX_CAT:250: ERROR: tpsvrinit() failed
원인 : IIO에서 사용하는 DB listener가 기동되어 있지 않은 경우에 발생.
조치 : DB Admin에게 IIO에서
사용하는 DB listener가 기동을 요청.
-----
현상 : WSNAT_CAT:1052: ERROR: Failed to
process network event
원인 : Tuxedo library 오류(반복적으로 계속해서 오류가 발생한 경우는
Patch level를 확인).
조치 : 최신의 Jolt patch를 해야 한다.
-----
현상 :
TMADMIN_CAT:188: ERROR: Error while obtaining the Bulletin Board parameters
180504.hubsr13_svc!tmboot.35962: 07232003: TUXEDO Version 6.5 AIX 2 4
007025954C00.
180504.hubsr13_svc!tmboot.35962: LIBTUX_CAT:594:
ERROR: Unable to locate PE entry in the Bulletin Board
180504.hubsr13_svc!tmboot.35962: FATAL: internal error: CMDTUX_CAT:754: ERROR:
error processing configuration file
180504.hubsr13_svc!tmboot.35962: FATAL: internal error: CMDTUX_CAT:1360:
ERROR:configuration file not found
원인 : ubbconfig에 설정한 물리적 머신명과 서버의
이름("uname -n")이 다른 경우에 발생.
조치 : 서버의 이름을 "uname -n" 명령어를 사용하여 확인한 후
ubbconfig에 설명한 물리적 머신명을 조정한다.
-----
현상 :
171703.hubsr13_svc!IISERVER.93998: Service S_A2E001 failed
171703.hubsr13_svc!IISERVER.93998: Actions.cpp[130]: ELINK_EAPP_API(1056):
Mandatory input field 'STR005' not found
원인 : Data Formatting이 잘못 정의된
경우에 발생
조치 : 전문메시지의 Layout과 Data Format에 정의된 내용을 비교하여 처리.
-----
현상 : 172531.hubsr14_svc!IISERVER.70936: Service S_A2E001 failed
172531.hubsr14_svc!IISERVER.70936: Actions.cpp[538]: ELINK_EAPP_API(1078):
Sub-control Error: 'No input data, and no data producing behavior
specified.Input Field: STR006, Output Field: STR006'
원인 : STR006의
Control이 등록되어 있지 않은 경우에 발생
조치 : STR006의 Control를 확인한 후 등록.
-----
현상 : 091631.hubsr13_svc!IISERVER.123760: [ 40 ] Field='STR041',
Data_Type=Ascii_String, Data='', Data_Length=0', Byte Offset=100
091631.hubsr13_svc!IISERVER.123760: Service S_A2A003 failed
091631.hubsr13_svc!IISERVER.123760: Actions.cpp[538]: ELINK_EAPP_API(1003): 592
trailing characters
원인 : 입력 전문메시지가 Data Format에 정의된 전문메시지보다 적은 메시지가 들어오는
경우에 발생.
조치 : 입력 전문메시지를 확인
-----
현상 :
090725.hubsr13_svc!GWTDOMAIN.98610: LIBGWT_CAT:1303: ERROR: Network error
occurred during connection establishment
원인 :
조치
:
-----
현상 : 200906.hubsr14_svc!tmadmin.58942: TMADMIN_CAT:1330:
INFO: Command: pcl HUB13
200906.hubsr14_svc!DBBL.118708:
CMDTUX_CAT:1429: INFO: Forcing check of all BBLs
200916.hubsr14_svc!DBBL.118708: CMDTUX_CAT:692: ERROR: Cannot retrieve BBL entry
for pclean operation
원인 : HUB13의 장애로 인하여 HUB14로 그룹 마이그레이션을 수행하여 HUB13에
대한 pclean을 수행한 경우 발생
조치 : 오류가 아님. 왜냐하면 HUB13의 Resource가 HUB14로 되었기
때문.
-----
현상 : 103628.hubsr14_svc!BBL.27990: CMDTUX_CAT:42: WARN:BBL
failed to wake up the blocking process - 28190
원인 : timeout 발생 시점 경에
BBL의 timeout 처리와 application server의 service 수행 종료간의 race condition에 의해 발생
1.Transaction timeout 발생
2.BBL이 해당 상황을 감지(timeout에 해당되는
message을 발견)하고 timeout 처리할 것으로 판단
3.동시에 서비스는 Client에게
tpreturn
4.Client는 tpreturn을 먼저 접수하고 2번의 해당 Message를 서비스 처리된 성격의
메시지로 설정 변경
5.BBL은 2번의 결정에 따라 blocking 되어 있을 것이라 생각되는 client로 wake
up 시도(timeout된 해당 message를 client로 전달).
이 때는 message 정보가 4번에 의해
바뀌었으므로 bad message type 에러를 발생 시킴.
조치 : 에러는 발생하였지만 운영 상에 문제는 없는 것으로 추후
Patch될 예정
-----
현상 : 190332.hubsr13_svc!AUTHSVR.99692:
CMDTUX_CAT:4130: INFO: Authentication failed for user tuxedo/joltadmin
원인 : Jolt Repository Edit에서 Security 사용시 User-ID가 잘못 지정된 경우 발생
조치
:
-----
현상 : ld: Unsatisfied symbol "fe_get_sex" in file
/SRC/HIMED/object/acr02sv.a[acr4130q.o]
ld: Unsatisfied symbol
"fe_get_yymmdd_interval" in file /SRC/HIMED/lib/lib_e.a[clinic.o]
원인 :
Compile시 라이브러리 링크 순서가 잘못 지정된 경우 발생
조치 : Compile시 라이브러리 링크 순서를 변경하여
Compile한다.
-----
현상 : 121725.JILEE!?proc.3156: NLS:4: Cannot open
message catalog LIBWSC_CAT, set 1, num 1055; check TUXDIR=C:\bea\tuxedo6.2,
LANG=Korean_Korea.949
121725.JILEE!?proc.3156: NLS:4: Cannot open
message catalog LIBWSC_CAT, set 1, num 1027; check TUXDIR=C:\bea\tuxedo6.2,
LANG=C
121725.JILEE!?proc.3156: NLS:4: Cannot open message
catalog LIBWSC_CAT, set 1, num 1020; check TUXDIR=C:\bea\tuxedo6.2, LANG=C
원인 : Tuxedo version 차이에 의해서 발생.
조치 : 클라이언트 환경변수(tux.env)에
"WSINTOPPRE71=yes"을 설정하고, Tuxedo 구성 파일(ubbconfig)에서 WSL의 CLOPT에 "-t" Option을
추가한다.
출처 : Tong - addition님의 기본통
설정
트랙백
댓글
글
-mtime :파일의 내용이 변경된 시간 ls -l 에서 나오는 시간
-ctime :파일의 정보가 변경된 시간 chmod, chown과 연관성이 있죠.
설정
트랙백
댓글
글
Mathematics: <math.h>
Mathematics is relatively straightforward library to use again. You must #include <math.h>
and must remember to link in the math library at compilation:
cc mathprog.c -o mathprog -lm
A common source of error is in forgetting to include the <math.h> file (and yes experienced programmers make this error also). Unfortunately the C compiler does not help much. Consider:
double x; x = sqrt(63.9);
Having not seen the prototype for sqrt the compiler (by default) assumes that the function returns an int and converts the value to a double with meaningless results.
Math Functions
Below we list some common math functions. Apart from the note above they should be easy to use and we have already used some in previous examples. We give no further examples here:
double acos(double x)
-- Compute arc cosine of x. double asin(double x)
-- Compute arc sine of x. double atan(double x)
-- Compute arc tangent of x. double atan2(double y, double x)
-- Compute arc tangent of y/x, using the signs of both arguments to determine the quadrant of the return value. double ceil(double x)
-- Get smallest integral value that exceeds x. double cos(double x)
-- Compute cosine of angle in radians. double cosh(double x)
-- Compute the hyperbolic cosine of x. div_t div(int number, int denom)
-- Divide one integer by another. double exp(double x
-- Compute exponential of x double fabs (double x )
-- Compute absolute value of x. double floor(double x)
-- Get largest integral value less than x. double fmod(double x, double y)
-- Divide x by y with integral quotient and return remainder. double frexp(double x, int *expptr)
-- Breaks down x into mantissa and exponent of no. labs(long n)
-- Find absolute value of long integer n. double ldexp(double x, int exp)
-- Reconstructs x out of mantissa and exponent of two. ldiv_t ldiv(long number, long denom)
-- Divide one long integer by another. double log(double x)
-- Compute log(x). double log10 (double x )
-- Compute log to the base 10 of x. double modf(double x, double *intptr)
-- Breaks x into fractional and integer parts. double pow (double x, double y)
-- Compute x raised to the power y. double sin(double x)
-- Compute sine of angle in radians. double sinh(double x)
- Compute the hyperbolic sine of x. double sqrt(double x)
-- Compute the square root of x. void srand(unsigned seed)
-- Set a new seed for the random number generator (rand). double tan(double x)
-- Compute tangent of angle in radians. double tanh(double x)
-- Compute the hyperbolic tangent of x.
Math Constants
The math.h library defines many (often neglected) constants. It is always advisable to use these definitions:
- HUGE -- The maximum value of a single-precision floating-point number.
- M_E -- The base of natural logarithms (e).
- M_LOG2E -- The base-2 logarithm of e.
- M_LOG10E - The base-10 logarithm of e.
- M_LN2 -- The natural logarithm of 2.
- M_LN10 -- The natural logarithm of 10.
- M_PI -- .
- M_PI_2 -- /2.
- M_PI_4 -- /4.
- M_1_PI -- 1/.
- M_2_PI -- 2/.
- M_2_SQRTPI -- 2/.
- M_SQRT2 -- The positive square root of 2.
- M_SQRT1_2 -- The positive square root of 1/2.
- MAXFLOAT -- The maximum value of a non-infinite single- precision floating point number.
- HUGE_VAL -- positive infinity.
There are also a number a machine dependent values defined in #include <value.h>
-- see man value or list value.h for further details.
RECENT COMMENT