캐시에 대한 캐시 관리 작업
NCache 관리 API는 사용자가 다음 중 하나를 사용하지 않고도 OutProc 캐시에 대한 기본 관리 작업을 수행할 수 있도록 하는 프로그래밍 가능한 메서드 호출 집합입니다. NCache 관리 센터 또는 명령줄 도구. 이 관리 API는 일반적으로 요청을 실행할 때 자급자족합니다.
사전 조건
- 모든 작업에 필요한 표준 전제 조건에 대해 알아보려면 NCache 클라이언트측 기능은 다음 페이지를 참조하세요. 클라이언트 측 API 전제 조건.
- API 세부 정보는 다음을 참조하세요. 캐시 연결, 캐시매니저, 캐시 연결 옵션, CacheClientConnectivity변경됨, CacheClientConnectivityChangedCallback, 클라이언트 정보, 연결된 클라이언트 목록, GetCacheHealth, 캐시 시작, 스톱캐시, 캐시 가져오기.
API 호출을 사용하여 캐시 시작
XNUMXD덴탈의 StartCache
이 메서드를 사용하면 사용자가 지정된 서버에서 OutProc 캐시를 시작할 수 있습니다.
캐시 시작
캐시는 StartCache
서버 IP와 캐시 이름을 이용한 방법.
이 예에서 사용자는 노드를 시작하기 위해 캐시와 서버 IP를 지정해야 합니다.
// Specify cache name and server Info
string cacheName = "demoCache";
string serverIp = "20.200.20.40";
// Provide server info to CacheConnection
var connection = new CacheConnection(serverIp);
// Use CacheConnection to start cache
CacheManager.StartCache(cacheName, connection);
보안이 활성화된 캐시 시작
If 관리 수준 보안 활성화된 경우 사용자는 캐시에서 관리 작업을 수행하기 위해 사용자 자격 증명을 제공해야 합니다. 그만큼 StartCache
메서드를 사용하면 사용자 자격 증명으로 캐시를 시작할 수 있습니다.
다음 예에서는 보안이 활성화된 캐시를 시작합니다.
// Provide user credentials to CacheConnection
connection.UserCredentials = new Credentials("your-username", "your-password");
// Start cache with the security credentials
CacheManager.StartCache(cacheName, connection);
API 호출을 사용하여 캐시 중지
XNUMXD덴탈의 StopCache
메서드는 특정 서버에서 캐시를 중지합니다. 사용자가 서버를 지정하지 않으면 메서드는 클라이언트 구성 파일에서 정보를 읽습니다. 클라이언트 노드에서 호출되면 캐시와 연결된 클라이언트 구성 파일에 나열된 첫 번째 서버가 중지됩니다. 활성화된 보안과 비활성화된 보안으로 캐시를 중지할 수 있습니다. 또한 다음을 설정하여 캐시를 정상적으로 중지할 수도 있습니다. gracefullyShutDownNode
플래그를 true로 지정합니다.
캐시 중지
이 예에서는 이미 시작된 노드에서 캐시를 중지합니다. 특정 노드에서 중지할 캐시 이름과 서버 IP를 지정해야 합니다.
보안이 활성화된 캐시 중지
다음 예에서는 보안이 활성화된 특정 서버에 사용자 자격 증명을 제공하여 캐시를 중지하는 방법을 보여줍니다.
// Provide user credentials to CacheConnection
connection.UserCredentials = new Credentials("your-username", "your-password");
// Stop cache with the security credentials
CacheManager.StopCache(cacheName, connection);
API 호출을 사용하여 캐시 상태 보기
주의 사항
프로그램에 다음 네임스페이스를 포함했는지 확인하십시오. Alachisoft.NCache.Runtime.CacheManagement
.
XNUMXD덴탈의 GetCacheHealth
방법을 사용하면 사용자가 캐시 서버 노드 상태를 볼 수 있습니다. 이 메소드 호출은 CacheHealth
모든 통화에 반대합니다. 캐시 이름, 서버 노드, 관리 포트를 지정하여 캐시 상태 정보를 가져올 수 있습니다. 다음 예에서는 지정된 서버 노드에 등록된 DemoCache 캐시에 대한 캐시 상태를 가져오고 포트 번호 8250에서 수신 대기합니다.
// Get cache health on the specified node
CacheHealth cacheHealth = CacheManager.GetCacheHealth(cacheName, connection);
Console.WriteLine($"Cache : {cacheHealth.CacheName}\nNode : {serverIp}\nTopology : {cacheHealth.Topology}\nNode Status : {cacheHealth.Status}");
캐시에 연결된 클라이언트 모니터링
NCache 클라이언트 활동 이벤트를 활성화하는 기능을 제공합니다. 이러한 이벤트를 사용하여 각 클라이언트는 클러스터형 캐시에 연결하고 다른 클라이언트의 연결/연결 끊김 이벤트에 대해 알리도록 구독할 수 있습니다. 또한 각 클라이언트는 클라이언트 요구 사항에 따라 구독자에게 반환되는 프로세스 수준 사용자 지정 식별자를 지정할 수 있으며 클러스터 캐시에 연결하거나 연결을 끊을 수 있습니다. 클라이언트 활동 이벤트는 클라이언트가 지정된 캐시에 연결하거나 연결을 끊을 때 발생합니다. 이러한 이벤트는 지정된 캐시에 대해 등록되며 사용자 정의 콜백 메서드에서 처리됩니다.
캐시에 연결
XNUMXD덴탈의 AppName
캐시 연결 시 할당할 수 있는 프로세스 수준의 고유 식별자입니다. 이를 위해 캐시에 연결하기 전에 CacheConnectionOptions
사용자 지정 식별자 문자열을 해당 AppName
재산.
따라서 이 클라이언트가 연결되거나 연결이 끊어지면 클라이언트를 구독한 모든 클라이언트의 콜백은 다음을 얻습니다. AppName
자신의 ClientInfo
예.
// Create an instance of CacheConnectionOptions
var options = new CacheConnectionOptions();
// Assign the custom identifier
options.AppName = "MyApp";
// Connect to cache with custom AppName property
ICache cache = CacheManager.GetCache(cacheName, options);
이벤트 콜백 메소드 생성
콜백 메소드는 사용자 정의되며 클라이언트가 캐시에 연결/연결 해제되면 호출됩니다. 메소드는 다음에 대해 등록됩니다. CacheClientConnectivityChanged
이벤트 속성 CacheClientConnectivityChangedCallback
특정 캐시에 입력하십시오. 따라서 생성된 메서드는 대리자의 서명과 일치해야 합니다.
public delegate void CacheClientConnectivityChangedCallback(string cacheId, ClientInfo client);
생성된 메서드에는 다음 매개변수가 포함됩니다.
// User defined event callback method
static void MyClientConnectivityCallback(string cacheName, ClientInfo clientInfo)
{
// Handle event
}
파라미터 | 상품 설명 |
---|---|
cacheName |
클라이언트가 연결되거나 연결이 끊긴 캐시의 이름입니다. 이것은 이벤트의 발신자 역할을 합니다. |
clientInfo |
이벤트를 발생시킨 클라이언트에 대한 정보가 포함된 ClientInfo 클래스의 개체입니다. |
클라이언트 정보 클래스
회원 | 상품 설명 |
---|---|
AppName |
사용자 할당, 프로세스 수준, 고유 식별자. |
ClientID |
클라이언트의 고유 ID입니다. |
IPAddress |
클라이언트가 연결된 IP. |
MacAddress |
클라이언트의 Mac 주소입니다. |
PhysicalCores |
클라이언트의 사용 가능한 물리적 코어. |
LogicalCores |
클라이언트의 사용 가능한 논리 코어입니다. |
ProcessID |
클라이언트의 프로세스 ID입니다. |
MachineName |
클라이언트의 시스템 이름입니다. |
Status |
캐시 클라이언트의 연결 상태입니다. |
ClientVersion |
캐시 클라이언트의 버전입니다. |
IsDotNetCore |
클라이언트가 있는지 확인하는 플래그 .NET Core 아니면 않습니다. |
Memory |
클라이언트의 사용 가능한 메모리입니다. |
Operating System |
클라이언트에서 사용하는 운영 체제입니다. |
이벤트 등록
메소드는 에 추가하여 등록됩니다. CacheClientConnectivityChanged
속성을 이벤트 콜백으로 사용합니다. 이를 통해 클라이언트는 다른 클라이언트의 연결/연결 해제 이벤트를 수신할 수 있습니다. 다른 클라이언트가 지정된 캐시에 연결하거나 연결을 끊으면 콜백 메서드가 호출됩니다.
// Register method to event
cache.MessagingService.CacheClientConnectivityChanged += MyClientConnectivityCallback;
연결된 클라이언트의 클라이언트 정보 모니터링
XNUMXD덴탈의 ClientInfo
연결된 각 클라이언트의 형식은 로컬에서 사용할 수 있습니다. cache.ClientInfo
재산.
연결된 클라이언트 목록 보기
요청 시 캐시에 연결된 모든 클라이언트에 대한 정보를 얻으려면 ConnectedClientList
캐시의 속성은 다음과 같습니다.
// Connect to cache with custom AppName property
ICache cache = CacheManager.GetCache(cacheName, options);
// Get list of all connected clients
IList<ClientInfo> connectedClients = cache.ConnectedClientList;
Console.WriteLine($"Following are the clients connected to '{cacheName}':");
foreach(ClientInfo clientInfo in connectedClients)
{
Console.WriteLine($"Client ID : {clientInfo.ClientID}");
}