게시판 본문 COM / COM+ by VB 6.0 - Read Only
re: GetObjectContext질문 입니다. |
---|
작성자: 송원석
작성일시: 2006-06-24 01:15,
조회수: 3,091
|
안녕하세요? 송원석입니다. ^_^
지금 말씀하고 계신 내용을 여러모로 감안하여 생각해볼 때 COM 컴포넌트 그리고 COM+ 컴포넌트 작성에 대한 전반적인 이해가 부족하신 것 같습니다. 대단히 죄송하지만 먼저 기본적인 COM+ 컴포넌트에 대한 서적등을 읽어보시고 다음 문서를 참고해 보시기 바랍니다. 제가 감히 말씀드릴 수 있는 것은 COM+ 는 다른 기술들과는 달리 전반적인 지식없이 그냥 몸으로 부딛히는 것만 가지고는 성공적인 사용이 거의 불가능하다는 것입니다. ^_^;; http://www.egocube.pe.kr/Lecture/Content/component/200501140001 더해서 미리 말씀드릴 점은 COM 컴포넌트와 COM+ 컴포넌트는 작성 방법에 있어서 서로 상당한 부분에서 큰 차이를 보인다는 것입니다. 따라서 COM 컴포넌트를 작성할 때와 동일한 요령을 가지고서 바로 COM+ 컴포넌트를 작성할 수는 없습니다. 물론 COM+ 가 COM 을 근간으로 하긴 하지만 실제 COM+ 컴포넌트 작성에는 또 다른 요령이 필요합니다. 이 자리를 빌어서 이 모든 내용들을 설명드리기에는 그 분량이 방대하므로 물어보신 부분들만을 중점으로 일단 답변을 드리도록 하겠습니다. 그리고 기본적으로 제가 드리는 답변의 한 가지 전제는 일반적인 COM 컴포넌트에 관련된 지식들은 이미 어느정도 이해하고 계실 것이라는 가정하에 COM+ 컴포넌트에 대해서 말씀을 드리는 것이라는 점을 참고하여 주십시오. 먼저 IObjectControl.Activate 메서드와 IObjectControl.Deactivate 메서드는 마치 클래스의 생성자와 소멸자 역활을 하는 메서드라고 생각하시면 됩니다. 그러나 클래스 생성자와 소멸자가 해당 클래스의 인스턴스가 생성될 때와 제거될 때에 한 번씩만 호출되는 반면, 이 Activate 메서드와 Deactivate 메서드는 모든 메서드 호출시 마다 각각 메서드 호출전과 메서드 호출후에 호출되어집니다. 즉 메서드 단위의 생성자와 소멸자라고 생각하시면 됩니다. 이는 COM+ 컴포넌트의 적시 활성화와 관련된 특성으로 적시 활성화가 설정된 컴포넌트는 모든 메서드 호출시마다 자동적으로 개체의 생성과 삭제가 반복됩니다. 따라서 COM+ 컴포넌트의 클래스는 상태를 유지하도록 설계하면 않됩니다. 즉, 메서드 내부에서 필요한 리소스들을 모두 얻어 작업을 처리한 다음 메서드를 빠져나가기 전에 모든 리소스를 해제해야만 합니다. 바로 이런 경우에 활용하기 위해 준비된 메서드들이 이 Activate 메서드와 Deactivate 메서드인 것이죠. 그리고 일단 현재로서는 EnableCommit 메서드와 DisableCommit 메서드는 머리속에서 지워 버리십시오. 이 메서드들은 좀 더 고급의 COM+ 컴포넌트를 작성할 때 사용하기 위해 준비된 것입니다. 지금은 SetComplete 메서드와 SetAbort 메서드만을 기억하시기 바랍니다. 사용방법은 간단합니다. 메서드 내부에서 아무런 오류도 발생하지 않고 처리가 끝났다면 메서드를 빠져나가기 전에 SetComplete 메서드를 호출하십시요. 그러나 오류가 발생했다면 메서드를 빠져나가기 전에 SetAbort 메서드를 호출해 주셔야만 합니다. 이 작업을 생략하는 다른 방법이 존재하기는 하지만 지금의 상황에서는 되려 배보다 배꼽이 큰 상황인지라 더 설명을 드리기 어렵습니다. ^_^;;; 그리고 말씀하신 프로퍼티는 현재 상황에서는 사용이 불가능합니다. 앞에서도 말씀드린 것처럼 적시 활성화로 인해서 Login 프로시저가 실행된 직후에 해당 개체는 메모리에서 자동적으로 삭제됩니다. 그리고 프로퍼티에 접근하는 순간에 다시 생성되는데 이 개체는 방금전의 개체와 완벽하게 다른 개체입니다. 따라서 프로퍼티에 접근하셔도 데이터형의 초기값이나 쓰레기값만을 얻게 되실 것입니다. 그리고 트랜젝션을 커밋하거나 롤백하는 방법에 관한 이슈에 대해서는 이 글에서는 말씀을 드리지 않도록 하겠습니다. 제가 앞에서 말씀드린 내용들을 모두 이해하셔야만 어짜피 가능한 작업이니까요. 현재 상황에서 제가 드릴 수 있는 가장 큰 조언은 이미 말씀드린 바와 같이 COM+ 는 일단 코딩을 시작하고 작업하면서 이론을 습득하기가 거의 불가능하다라는 사실입니다. COM+ 컴포넌트를 제대로 작성하기 위해서는 수많은 선수지식이 필요합니다. 이 점을 다시 한 번 심각하게 말씀드리고 싶습니다. ^_^ ;;; 감사합니다. |
IP 주소: 61.84.82.240
|
전체 1 건의 댓글이 존재합니다.
COM초보자 |
감사합니다
|
2006-06-26 11:11 |
전체 276 건의 게시물,
12 페이지로 구성된
COM / COM+ by VB 6.0 게시판의
4 페이지입니다.
게시물 | ||||
---|---|---|---|---|
204 | 2006-10-10 | 5,999 | ||
203 | 2006-10-11 | 2,886 | ||
202 |
FTP 클라이언트 프로그램 [2] |
2006-07-12 | 2,955 | |
201 |
액티브X 설치 [1] |
정보문 |
2006-07-11 | 675 |
200 |
장윤태 |
2006-07-03 | 656 | |
199 | 2006-07-04 | 2,993 | ||
198 |
장윤태 |
2006-06-23 | 546 | |
197 | 2006-06-24 | 2,944 | ||
196 |
COM초보자 |
2006-06-23 | 634 | |
2006-06-24 | 3,091 | |||
194 | 2006-06-20 | 3,234 | ||
193 | 2006-05-27 | 6,742 | ||
192 | 2006-05-27 | 2,888 | ||
191 | 2006-05-28 | 3,088 | ||
190 | 2006-05-29 | 3,223 | ||
189 |
장윤태 |
2006-05-08 | 692 | |
188 | 2006-05-09 | 2,993 | ||
187 | 2006-05-03 | 2,768 | ||
186 | 2006-05-04 | 3,037 | ||
185 | 2006-05-03 | 2,894 | ||
184 | 2006-05-03 | 2,890 | ||
183 | 2006-05-03 | 2,797 | ||
182 | 2006-04-27 | 2,926 | ||
181 | 2006-04-28 | 2,861 | ||
180 | 2006-04-26 | 2,943 |