NCache 4.6 - Online Documentation

Monitoring Clients Connected to Cache

NCache provides the feature of enabling Client Activity Events. Using these events, each client that is connected to a clustered cache can subscribe to be notified about the connect/disconnect events of other clients. Each client can also specify a process level custom identifier which will be returned to the subscriber in case the client which specified it connects to or disconnects from a clustered cache.
Client Activity Events are fired when a client connects to or disconnects from a specified cache. These events are registered against the specified cache and will be handled in a user defined callback method.
Make sure that client events have been enabled through NCache Manager before proceeding to use them.
       To utilize the APIs, include the following namespaces in your application:
·     Create Event Callback Method
The callback method is user defined and is called once the clients are connected/disconnected from the cache. The method is registered against the CacheClientConnectivityChanged event property of CacheClientConnectivityChangedCallback type in a specific cache. Hence, the method created should match the signature of the delegate:
public delegate void CacheClientConnectivityChangedCallback(string cacheId, ClientInfo client, ConnectivityStatus status);
The method created contains the following parameters:
//user defined event callback method
static void MyClientConnectivityCallback(string cacheName, ClientInfo clientInfo, ConnectivityStatus status)
    //handle event
Name of the cache with which the clients are connected. This is the sender of the event.
Enum which determines the connectivity status of the client:
·     Disconnected = 0
·     Connected = 1
An object of the ClientInfo class containing information regarding the client which caused the event to fire.
Client Info class
Default Value
User assigned, process-level, unique identifier
Client process ID
Unique client identifier
IP through which the client is connected
Machine Name of the client
Process ID of the client
·     Initialize Cache
The AppName is a process level unique identifier which can be assigned at the time of initialization. For this purpose, before initializing the cache client, create an instance of CacheInitParams and assign a custom identifier string to its AppName property.
Thus, if this client connects or disconnects, the callbacks of all the clients which subscribed to the Client Activity Events will get this AppName in their ClientInfo instance.
CacheInitParams initParams = new CacheInitParams();
initParams.AppName = "AssignedAppName"; //assign custom identifier
//initialize cache with custom AppName property
Cache cache = NCache.InitializeCache("CacheName", cacheParams);
·     Register Event
The method is registered by appending it to the CacheClientConnectivityChanged property as an event callback. This enables the client to listen for connect/disconnect events of other clients. If another client connects to or disconnects from the specified cache, the callback method is called.
//register method to event
cache.CacheClientConnectivityChanged += MyClientConnectivityCallback;
·     Monitor Client Info of Connected Clients
The ClientInfo of each connected client is available locally in the form of cache.ClientInfo property.
ClientInfo info = cache.ClientInfo;
string AppName = info.AppName;
string clientID = info.ClientID;
System.Net.IPAddress ip = info.IPAddress;
string machineName = info.MachineName;
int processID = info.ProcessID;
·     View List of Connected Clients
To get information of all the clients connected to the cache on demand, use the GetConnectedClientsList() method on the cache as:
IList<ClientInfo> connectedClients = cache.GetConnectedClientsList();
See Also