연산오류시 SOCKET CLOSE 대책 요망 [4]

연산오류시 SOCKET CLOSE 대책 요망

2000-12-18 00:00 - 박종호

안녕하세요.

한동안 잊어먹고 있다가 최근에 증상재발되어 리포트합니다.

Xmanager가 작동중 치명적인 연산오류로(MS-Window가 자주보여주는 그 메세지)
죽었을 경우 W/S의 xdm CLIENT SOCKET이 Close가 안되어 시스템 부팅시까지 다음 접속이 불가능합니다.
xdm이 이미 6000포트를 점유하여 ESTABLISHED 되어있는 경우 HP-UX 10.20에서는 Command Level에서 개별적으로 해당 소켓만 CLOSE할 방법이 없다고 하는군요(11.0에서는 된다함).

개별 PC죽었다고 UNIX서버를 죽여야된다면 상당히 문제가 많지 않겠습니까?
고약한것이 한대만 그렇게 죽어도 소켓이 Locking되어 다른 PC에서도 접속않된다는 것입니다.

물론 Xmanager가 X-Server고 UNIX 장비가 X-Client라는 점에서 Client를 부팅해야된다는 당위성을 말슴하실수도 있겠지만 일반 사용자가 느끼는 것은 그게 아니거든요.(PC에 설치된 관계로 Xmanager를 Client로 생각합니다)
UNIX서버는 X뿐만 아니라 여러가지 다른 일도 하므로 쉽사리 죽일수가 없지 않겠습니까?

무언가 좋은 해결책이 있어야 할 것으로 보입니다.




XDM이 Xmanager 상태를 확인할 수 있습니다

2000-12-18 00:00 - 넷사랑

/usr/dt/Xconfig를 보시면 다음 리소스가 있습니다.

Dtlogin*pingInterval:
Dtlogin*pingTimeout:

dtlogin이 Xmanager가 active한지 확인하는 시간을 지정할 수 있습니다.

Xmanager가 다운될 때 Unix쪽을 완벽하게 정리하는 것은 이론적으로 불가능합니다.
왜냐하면, PC가 다운되거나 정전될 수도 있기 때문이죠.


XDM이 Xmanager 상태를 확인할 수 있습니다

2000-12-18 00:00 - 박종호

pingInterval이나
pingTimeout은 HP-UX에서 설정안하면 기본이 5분으로 되는데,
그것과는 관계없이 복구안되는데요?


dtlogin은 여러개가 뜨게 됩니다

2000-12-18 00:00 - 넷사랑

Xmanager 하나에 dtlogin이 하나씩 별도의 프로세스로 실행됩니다.
즉, 마스터 데몬이 돌면서 Xmanager가 연결될 때마다 새로운 dtlogin을
생성합니다. 그래서 Xmanager하나가 문제가 있다고 해서 다른 연결이
안된다는 것은 뭔가 다른 이유가 있을 듯 합니다. 즉, 마스터 dtlogin이
올바로 동작하지 않는다고 봅니다.

마스터 dtlogin은 UDP 177 포트에서 listening하고 있습니다.
Xmanager에 xdm client가 들어 있는데, dtlogin에 연결하면 바로
새로운 dtlogin이 만들어지고 이후 데이터 전송은 새로 생성된
dtlogin과 이루어 집니다.

그리고 TCP 6000번은 Xmanager에서 만든 후 listening하고 있으며,
X client와 Xmanager 연결시 사용됩니다. TCP 6000번은 xdm하고 직접적인
관계가 없습니다. 단, xdm이 실행해주는 로그인창 같은 것이 있는데
이것도 일종의 X client입니다.

정리하자면 XDMCP 프로토콜상 클라이언트는 Xmanager이고 서버는 dtlogin이
됩니다. 즉, XDMCP 클라이언트/서버라고 해야 정확하겠죠.

Xmanager가 죽으면 다른 PC에서도 안된다고 하셨는데, 이럴 경우 Xmanager가
돌고 있는 PC의 LAN 케이블을 분리한 다음 다른 PC에서 XDM 접속을 해 보시면
같은 결과가 나타나야 합니다. LAN 케이블을 분리했다는 것은 아무 정리없이
Xmanager가 없어진 것과 같습니다.

나타나는 현상을 좀 더 자세히 설명해 주시면 원인 파악에 도움이 되겠습니다.

감사합니다.


dtlogin은 여러개가 뜨게 됩니다

2000-12-18 00:00 - 박종호

dtlogin은 UDP인 관계로 작동유무가 netstat로 확인되지 않으나,
xfs는 ESTABLISHED 된것으로(7000번) 나오는군요.

그러나 6000번 포트 문제는 잡았습니다.(Xmanager 동작시에 띄워놓은 dtterm이 문제더군요)

dtexec가 dtterm fork->Xmanager Down->좀비로 port lock!이라고 생각하고
프로세스를 다 죽였는데 여전히 연결안되더군요.
(netstat로는 더이상 보이지 않습니다)

무슨 문제인지 내일 좀더 봐야 겠지만, 제가 생각하기에 정전등으로 불의의 Down은 어쩔수 없다하더라도, 다음 접속시 이전 상태를 정리할 순 있지 않을까 싶네요^^


이전 조회수: 793