다음을 통해 공유


RpcNsMgmtHandleSetExpAge 함수(rpcnsi.h)

RpcNsMgmtHandleSetExpAge 함수는 이름 서비스 데이터의 로컬 복사본에 대한 이름 서비스 핸들의 만료 기간을 설정합니다.

참고 이 함수는 Windows Vista 이상 운영 체제에서 지원되지 않습니다.
 

구문

RPC_STATUS RpcNsMgmtHandleSetExpAge(
  RPC_NS_HANDLE NsHandle,
  unsigned long ExpirationAge
);

매개 변수

NsHandle

만료 기간이 설정된 이름 서비스 핸들입니다. 이름 서비스 시작 작업에서 이름 서비스 핸들이 반환됩니다.

ExpirationAge

지정된 NsHandle 매개 변수를 사용하여 모든 다음 루틴에서 읽은 로컬 이름 서비스 데이터의 만료 기간을 설정하는 정수 값(초)입니다.

만료 기간이 0이면 로컬 이름 서비스 데이터가 즉시 업데이트됩니다.

반환 값

의미
RPC_S_OK
호출이 성공했습니다.
RPC_S_NAME_SERVICE_UNAVAILABLE
이름 서비스를 사용할 수 없습니다.
 
참고 유효한 오류 코드 목록은 RPC 반환 값을 참조하세요.
 

설명

RpcNsMgmtHandleSetExpAge 함수는 지정된 이름-서비스 핸들(NsHandle)에 대한 핸들 만료 기간을 설정합니다. 만료 기간은 특성에 대한 애플리케이션의 요청에 따라 로컬 복사본을 업데이트해야 하기 전에 name-service 특성의 로컬 데이터 복사본이 존재할 수 있는 시간입니다. 애플리케이션이 실행되기 시작하면 RPC 런타임 라이브러리는 기본 만료 기간을 2시간으로 지정합니다. 기본값은 애플리케이션에 대한 전역입니다. 핸들 만료 기간은 특정 이름 서비스 핸들에만 적용되며 현재 전역 만료 기간을 일시적으로 재정의합니다.

핸들 만료 기간은 포인터 다음 작업(이름 서비스 특성에서 데이터를 읽는)에서만 사용됩니다. 다음 작업은 일반적으로 애플리케이션에서 요청하는 특성 데이터의 로컬 복사본을 찾는 것으로 시작됩니다. 로컬 복사본이 없는 경우 다음 작업은 name-service 데이터베이스에서 새 특성 데이터가 있는 복사본을 만듭니다. 로컬 복사본이 이미 있는 경우 작업은 실제 기간을 애플리케이션에서 사용하는 만료 기간(이 경우 이름 서비스 핸들에 대해 설정된 만료 기간)과 비교합니다. 실제 기간이 핸들 만료 기간을 초과하는 경우 작업은 자동으로 로컬 복사본을 새 특성 데이터로 업데이트하려고 시도합니다. 업데이트가 불가능한 경우 이전 로컬 데이터가 그대로 유지되고 다음 작업이 실패하여 RPC_S_NAME_SERVICE_UNAVAILABLE 상태 코드가 반환됩니다.

핸들 만료 기간의 scope 단일 일련의 다음 작업입니다. RpcNsMgmtHandleSetExpAge 함수는 다음 컨텍스트 내에서 작동합니다.

  • 시작 작업은 이름 서비스 핸들을 만듭니다.
  • RpcNsMgmtHandleSetExpAge 함수를 호출하면 핸들의 만료 기간이 만들어집니다.
  • 이름 서비스 핸들에 대한 일련의 다음 작업은 핸들 만료 기간을 사용합니다.
  • 이름 서비스 핸들에 대한 완료 작업은 핸들과 만료 기간을 모두 삭제합니다.
참고 일반적으로 RpcNsMgmtHandleSetExpAge를 사용하지 않아야 합니다. 대신 애플리케이션의 전역 만료 기간을 사용해야 합니다. 핸들 만료 기간을 작은 값으로 설정하면 이름 서비스 다음 작업이 애플리케이션에서 요청한 이름 서비스 특성에 대한 로컬 데이터를 자주 업데이트합니다. 예를 들어 만료 기간을 0으로 설정하면 다음 작업이 애플리케이션에서 요청한 name-service 특성에 대한 로컬 데이터를 업데이트합니다. 따라서 핸들 만료 기간을 작게 설정하면 애플리케이션에 성능 문제가 발생할 수 있습니다. 또한 애플리케이션이 원격 이름 서비스 서버를 사용하는 경우 만료 기간이 적으면 모든 애플리케이션의 네트워크 성능에 부정적인 영향을 줄 수 있습니다.
 
RpcNsMgmtHandleSetExpAge 사용을 다음 상황으로 제한합니다.
  • 항상 정확한 이름 서비스 데이터를 가져와야 하는 경우.

    예를 들어 프로필을 업데이트하기 위한 관리 작업 중에는 항상 프로필의 현재 콘텐츠를 확인해야 할 수 있습니다. 이 경우 프로필에 대한 문의를 시작하기 전에 애플리케이션에서 RpcNsMgmtHandleSetExpAge 함수를 호출하고 ExpirationAge 매개 변수에 대해 0을 지정해야 합니다.

  • 기본 만료 기간을 사용하는 요청이 실패하고 애플리케이션이 작업을 다시 시도해야 하는 경우

    예를 들어 이름 서비스 가져오기 작업을 사용하는 클라이언트 애플리케이션은 먼저 애플리케이션의 기본 만료 기간을 사용하여 바인딩을 가져오려고 시도해야 합니다. 그러나 경우에 따라 import-next 작업은 바인딩 핸들이 없거나 개수가 부족한 것을 반환합니다. 이 경우 클라이언트는 가져오기 작업을 다시 시도할 수 있으며 RpcNsBindingImportBegin 호출 후 RpcNsMgmtHandleSetExpAge 호출을 포함하고 ExpirationAge 매개 변수에 대해 0을 지정합니다. 클라이언트가 import-next 함수를 다시 호출하면 핸들 만료 기간이 작으면 import-next 작업이 로컬 특성 데이터를 업데이트합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 rpcnsi.h(Rpc.h 포함)
라이브러리 Rpcns4.lib
DLL Rpcns4.dll

추가 정보

RpcNsBindingImportBegin

RpcNsMgmtInqExpAge

RpcNsMgmtSetExpAge