메시지 특성
[message] 특성은 원격 프로시저 호출이 클라이언트에서 서버로의 메시지로 처리되어야 했음을 나타냅니다.
[message, optional-attribute-list] void function-name(
[in, optional-parameter-attributes] param-name,. . .);
매개 변수
-
optional-attribute-list
-
함수에 적용되는 기타 특성입니다. [local], [nocode], [code] 및 [optimize] 특성만 [message] 특성과 함께 사용할 수 있습니다.
-
function-name
-
IDL 파일에 정의된 함수의 이름입니다.
-
optional-parameter-attributes
-
매개 변수에 적용할 0개 이상의 MIDL 특성입니다.
-
param-name
-
IDL 파일에 정의된 매개 변수의 이름입니다.
설명
클라이언트의 메시지로 [message] 특성을 사용하는 원격 프로시저 호출은 ncadg_mq 메시지 큐 전송을 통해 서버에 비동기적으로 전달됩니다. [message] 특성을 사용하지 않고 ncadg_mq 전송 프로토콜을 지정하여 동기 모드 메시징을 나타낼 수 있습니다.
비동기 모드 메시징을 지정하면 [메시지] 특성을 사용하면 클라이언트가 원격 프로시저를 호출하고 서버 애플리케이션이 응답하지 않는 경우에도 즉시 반환할 수 있습니다. 대상 서버를 사용할 수 없는 경우 서버를 사용할 수 있을 때까지 호출이 저장됩니다.
또한 비동기 모드 메시징을 사용하면 서버에 대한 수신 큐의 메시지 큐 속성을 제어할 수 있습니다. 서비스 품질, 호출 우선 순위 및 서버 프로세스의 호출 수명 선택에 대한 자세한 내용은 RpcBindingSetOption 을 참조하세요.
[메시지] 특성에도 다음과 같은 제한이 적용됩니다.
- Microsoft 메시지 큐는 클라이언트 및 서버 시스템에서 구현되어야 하며 메시지는 메시지 큐 설치의 scope 결정된 대로 서로 표시되어야 합니다.
- 바인딩은 잘 알려진 엔드포인트와 ncadg_mq 전송 프로토콜을 사용해야 합니다.
- 함수는 출력 매개 변수 또는 void 이외의 반환 형식을 포함할 수 없습니다. 후자의 제한으로 인해 현재 COM(개체) 인터페이스 메서드에 [message] 특성이 적합하지 않습니다. MIDL의 다음 릴리스에서는 [메시지] 함수가 error_status_t 또는 HRESULT를 반환하도록 허용합니다.
- RpcServerUseProtseqEpEx(ncadg_mq)를 호출하기 전에 RpcServerRegisterIf 또는 RpcServerRegisterIfEx를 호출하여 하나 이상의 [메시지] 호출을 포함하는 모든 인터페이스를 등록해야 합니다. 그렇지 않으면 인터페이스가 등록되기 전에 서버 큐에서 대기 중인 호출이 읽혀지고 호출이 실패합니다.
예
[message] void DisplayString(
[in, string] char * p1);
[message] void VarDataArray(
[in, size_is(iSize)] ARRAY_TYPE lpMyArray,
[in] int iSize,
[in] unsigned long ulChksum);
참고 항목