キャッシュ管理 キャッシュに対する操作
NCache Management API は、ユーザーが OutProc キャッシュで基本的な管理操作を実行できるようにする一連のプログラム可能なメソッド呼び出しです。 NCache Management Center またはコマンド ライン ツール。この管理 API は通常、リクエストの実行時には自己完結します。
前提条件
- すべてを使用するために必要な標準的な前提条件について学習するには NCache クライアント側の機能については、次のページを参照してください。 クライアント側 API の前提条件.
- APIの詳細については、以下を参照してください。 キャッシュコネクション, CacheManager, キャッシュ接続オプション, キャッシュクライアントの接続が変更されました, CacheClientConnectivityChangedCallback, クライアント情報, 接続済みクライアント リスト, GetCacheHealth, スタートキャッシュ, ストップキャッシュ, GetCache.
API 呼び出しを使用してキャッシュを開始する
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 呼び出しを使用してキャッシュを停止する
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呼び出しを使用したキャッシュステータスの表示
Note
プログラムに次の名前空間が含まれていることを確認してください。 Alachisoft.NCache.Runtime.CacheManagement
.
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 は、クライアント アクティビティ イベントを有効にする機能を提供します。 これらのイベントを使用して、各クライアントはクラスター化されたキャッシュに接続し、他のクライアントの接続/切断イベントについての通知をサブスクライブできます。 各クライアントは、クライアントの要件に基づいてサブスクライバに返すプロセスレベルのカスタム識別子を指定することもでき、クラスター化されたキャッシュに接続したり、クラスター化されたキャッシュから切断したりできます。 クライアント アクティビティ イベントは、クライアントが指定されたキャッシュに接続するか、指定されたキャッシュから切断されるときに発生します。 これらのイベントは、指定されたキャッシュに対して登録され、ユーザー定義のコールバック メソッドで処理されます。
キャッシュに接続する
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;
接続されたクライアントのクライアント情報を監視する
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}");
}