임대 갱신

임대가 만들어진 후 변경할 수 있는 유일한 임대 속성은 ILease.CurrentLeaseTime입니다. 임대를 갱신하는 두 가지 방법이 있습니다. 클라이언트에서 직접 ILease.Renew를 호출하거나 스폰서에 연락하여 임대를 갱신하도록 요청할 수 있습니다.

스폰서

스폰서는 특정 개체의 임대를 연장하는 호스트 응용 프로그램 도메인의 요청을 수신 대기합니다. 스폰서는 ISponsor를 구현하며 임대에 대한 참조를 가져온 다음 ILease.Register를 호출하여 임대 관리자에 등록됩니다. 일반적으로 원격 개체당 많은 클라이언트가 있는 경우 모든 클라이언트가 원격 개체로 요청을 보내도록 하는 대신 원격 개체가 클라이언트 중 하나로 임대 갱신 요청을 보내도록 하는 것이 더 효율적입니다.

Note참고:

.NET Framework 버전 1.1에서 시작하여 서버 개체의 수명에 참여할 스폰서를 등록하려면 서버 응용 프로그램 도메인과 스폰서에서 모두 Full 자동 deserialization 설정이 필요합니다. 자세한 내용은 .NET Remoting에서의 자동 deserialization을 참조하십시오.

스폰서를 사용하면 많은 클라이언트에서 동적 갱신 정책이 제공됩니다. 이는 하나 이상의 클라이언트가 여러 개의 원격 개체에 해결할 문제를 제공하는 병렬 문제 해결에 효과적일 수 있습니다. 원격 개체에서 솔루션을 반환하는 경우 스폰서가 알림을 받고 다른 모든 원격 개체 임대가 만료될 수 있습니다.

클라이언트가 찾을 필요 없이 원격 개체가 현재 위치에서 클라이언트에 접속하므로 이 접근 방법은 원격 개체를 다른 컴퓨터로 마이그레이션하는 데에도 유용합니다.

큰 네트워크에 있거나 많은 방화벽이 설치된 인터넷에 있는 경우 스폰서에 도달하기 어려울 수도 있습니다. 백업 스폰서를 사용하거나 어느 정도 확실하게 도달할 수 있는 호스트 응용 프로그램 도메인에 가까운 곳에 스폰서를 배치하면 이 문제를 완화시킬 수 있습니다.

호스트 응용 프로그램 도메인의 임대 관리자는 스폰서 목록을 유지 관리합니다. 스폰서가 임대 시간을 갱신해야 하는 경우 목록 맨 위의 스폰서에게 시간을 갱신하도록 요청됩니다. 스폰서가 ILease.SponsorshipTimeout 시간 범위 내에 응답하지 않으면 목록에서 제거되고 목록의 다음 스폰서가 호출됩니다.

스폰서를 사용하여 임대 갱신

스폰서는 수명 임대에 참여하여 특정 개체 참조에 대한 임대를 가져오고, 자신을 스폰서로 등록하고, 원격 임대 관리자가 ISponsor.Renewal을 호출할 때까지 기다립니다. 임대가 매개 변수로 필요한 개체를 사용하는 RemotingServices.GetLifetimeService를 호출하면 개체 임대를 가져올 수 있습니다. 이 호출은 RemotingServices 클래스의 정적 메서드입니다. 개체가 응용 프로그램 도메인에 로컬인 경우 이 호출의 매개 변수는 개체에 대한 로컬 참조이고 반환되는 임대는 임대에 대한 로컬 참조입니다. 개체가 원격이면 프록시가 매개 변수로 전달됩니다. 임대 자체가 MBR(참조에 의한 마샬링) 개체이므로 원격 개체에 대한 임대를 가져오는 경우 임대에 대한 프록시를 가져옵니다. 따라서 임대의 메서드를 호출하는 경우 서버 프로세스에 대한 원격 호출을 수행합니다.

그런 다음 Register를 호출하고 스폰서 및 개체가 방금 만들어진 경우 선택적 TimeSpan 개체를 전달하여 원격 임대 관리자에 스폰서를 등록합니다.

이 개체에 대한 임대가 만료되면 임대 관리자가 원격 스폰서를 콜백할 수 있습니다. Renewal 구현에 대한 스폰서의 반환 값이 새 임대 시간이 됩니다.

참고 항목

작업

방법: 임대 갱신

참조

<lifetime> 요소
원격 설정 스키마

개념

원격 서비스 예제: 수명
수명 임대
임대 초기화

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.