MSMQ를 이용해서 비동기로 컴포넌트를 호출방법

COM+ 컴포넌트
- 해당 컴포넌트는 [out] 파라미터가 없어한다
  [out] 파라미터가 있으면 인터페이스 대기 속성이 disable 되어 있다

- COM+의 패키기의 대기화 속성에 "대기"가 체크되어야한다
  당연히 MSMQ가 설치되어야 한다.

- 수신처리하기 위해서는 "수신처리"를 체크하여 큐에 쌓인 내용을 처리함

- 해당 구성요소의 인터페이스 속성에서 대기화의 "대기"를 체크하여 인터페이스를 대기 시킨다



호출방법
- CoGetObject 함수를 이용해서 Queued Component의 인스턴스를 생성하여 사용한다.
   "queue:/new:QCom.Test"


// C++
IUnknown *pUnknown;
HRESULT hr = CoGetObject(L"queue:/new:QCom.Test", NULL, IID_IUnknown, (void**)&pUnknown);
if (FAILED(hr)) {
    cout << "CoGetObject failed " << endl;
}

// pUnknown 를 해당 인터페이스로 변환하여 사용
// 혹은 직접 인터페이스의 IID_ 및 인터페이스 포인터로 접근하여 사용



http://msdn2.microsoft.com/en-us/library/ms683468.aspx
http://msdn2.microsoft.com/en-us/library/ms686762.aspx

'Dev > Windows' 카테고리의 다른 글

달라진 기능 (IIS 6.0)  (0) 2007.09.28
SQLOLEDB Provider 의 특이한 동작  (0) 2007.09.20
SWC (Services Without Components)  (0) 2007.08.08
RestartService  (0) 2007.07.19
MultiMedia Timer  (0) 2007.05.14

+ Recent posts