다음을 통해 공유


메시지 특성

[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);

참고 항목

코드

로컬

ncadg_mq

nocode

최적화

RPC 메시지 큐

RpcBindingSetOption

RpcBindingInqOption

Void