GIS쪽 웹 개발을 하고 있습니다.
A창에서 B창을 띄워 B창에서 OCX를 로딩하여 맵을 보여주는데..
B창을 닫고 다시 A창에서 B창을 띄우면.. 5번 정도 이후에는 100% 에러가 발생합니다..
파킹 윈도우 패치까지 해서 테스트 해봤는데..
에러 발생 빈도가 약간 줄었을뿐 똑같은 에러가 발생하네요..
지금 제 PC에서는(Wind 2000 Server) 거의 에러 발생 안하구요..
특정 컴퓨터에서는 2번째 띄울때부터 100% 발생하고..
나머지는 (거의 Window XP) 3~5번 이후부터 에러가 발생합니다..
어떻게 해결하신분 계신지 흑흑...
같은 상황인지는 모르겠으나 ㅡ.ㅡa
Active-X로 작업하다 보면 새로운 창 띄우기 등을 해서 생성된 객체는
하나의 Application 안에서 동작하게 됩니다.
그래서 전역변수를 사용하게 되면 전혀 다른 웹브로우져에서 사용되는
Active-X에서도 같은 값을 공유하게 됩니다.
(이걸 편법으로 사용한 적이 있는데, 얼마전 이 내용이 델마당에도 올라오더군요)
여하튼 사용하는 콤포넌트나 작성하신 소스에서 공유되는 리소스가 존재하게 되면
양쪽 웹브로우져에서 동시에 사용하면서 Thread-Safe 문제가 발생합니다.
특히 윈도우 메시지 처리를 하는 경우라면
메시지 처리에 각별한 주의를 하셔야합니다.
팝업이 생기면 아직 초기화가 안된 Active-X를 대상으로
기존 Active-X에서 발생한 메시지가 적용되는 경우도 있습니다.
다 잊고 지냈는데, 기억하고 싶지 않은 기억을 다시 떠올리게 되는 군요 ㅡ.ㅡ;;