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
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 |