• Webinars
  • Docs
  • Download
  • Blogs
  • Contact Us
Show / Hide Table of Contents
  • Administrator's Guide
  • NCache Architecture
    • Cache Topologies
    • Cache Cluster
    • Local Cache
    • Cache Client
    • Client Cache
    • Data Load Balancing
    • Cache Server Backward Compatibility
    • Client Backward Compatibility
    • Eviction
    • Indexing
    • Runtime Data Sharing
    • Portable Data Types
    • Class Versioning
    • IP Binding with Multiple NICs
    • Graceful Node Down
    • Separate Cache Host Process
    • Self Healing Dynamic Clustering
  • Configuring Caches
    • Create Cache
      • Creating Local Cache
        • Create New Cache
        • Add Existing Cache
      • Creating Clustered Cache
        • Create New Cache Cluster
        • Add Existing Cache Cluster
    • Remove Cache
    • Clear Cache Contents
    • Adding Server Node in Cache Cluster
    • Removing Server Node from Cache Cluster
    • Configuring Basic Cache Settings
      • Cache Size
      • Cache Isolation Levels
      • Cache Data Expiration
      • Cache Data Format
    • Configuring Cache Cluster Settings
      • Ports
      • Operation Timeout
      • Static Replication Interval
      • Connection Retries
      • Retry Interval
    • Add Test Data to Cache
    • Deploy Providers
    • Configuring Query Indexes
    • Registering Classes for Compact Serialization
      • Registering Non-Generic Classes
      • Unregistering Non-Generic Classes
      • Registering Generic Classes
      • Registering Generic Classes Using Generic Type Handler
    • Registering Classes for Portable Data Sharing
    • Configuring Data Source Providers
      • Read-Through Provider
      • Write-Through Provider
      • Write-Through Provider for Write-Behind Operations
    • Configuring Cache Startup Loader
    • Configuring Cache Level Events
    • Configuring Cache Activity Events
    • Configuring Eviction Policy
    • Configuring Compression
    • Configuring Email Notifications
    • Binding Cluster and Client/Server IP with Multiple NICs
      • Binding Cluster with a Dedicated IP
      • Binding Client/Server with a Dedicated IP
    • Configuring Heartbeat
    • Configuring MapReduce
    • Configuring Communication Reliability
    • Auto Start Cache on Boot
    • Nagling
    • Dual Socket
    • Error Logging
    • Configuration Files
      • Client Side Configurations
        • Client Config
        • EFCaching Config
      • Server Side Configurations
        • Cache Config
        • Bridge Config
        • Security Config
      • Cache Server Configuration
  • Management Operations
    • Start Cache
    • Stop Cache
    • Restart Cache
    • Manage Cache Service on a Server Node
    • Apply Configuration
    • Hot Apply Configuration
    • Reset Configuration
    • Data Load Balancing
  • Configuring Cache Clients
    • Adding Client Node in Cluster
    • Removing Client Node from Cluster
    • Configuring Client Node Settings
    • Creating Client Cache
    • Enable Client Cache on Client Nodes
    • Disable Client Cache on Client Nodes
    • Removing Client Cache
    • Configuring Client Cache Settings
  • Configuring Security
    • Configuring Security for Cache Management
    • Configuring Security for Cache
    • Configuring Security for Client Nodes
    • Configuring Encryption for Cache
    • Configure SSL/TLS Encryption in NCache
  • Configuring Bridge for WAN Replication
    • Creating Clustered Bridge
    • Adding Clustered Caches to Bridge
    • Configuring Bridge Settings
    • Configuring Conflict Resolver
    • Changing Cache Syncronization Modes
    • Configuring Master Cache
    • Force State Transfer
    • Connect/Disconnect Cache in Bridge
    • Remove Cache from Bridge
    • Bridge Management
  • NCache on Docker
    • Using NCache Docker Images
    • Customize NCache Dockerfile
  • Monitoring NCache
    • Cache Counters
    • Monitoring Caches using NCache Manager
      • Changing Management Port of Cache Node
      • Configuring Counters to Display
      • Browse Cache Statistics
      • Cluster Health
      • Monitoring Cache Clusters using NCache Email Alerts
    • Monitoring Caches using NCache Monitor
      • Monitoring with Built-In Dashboard
      • Monitoring with Custom Dashboard
    • Monitoring Bridge using NCache Manager
    • Monitoring NCache using Windows PerfMon Tool
      • Monitoring Cache Server Counters Using PerfMon
      • Monitoring Cache Client Counters Using PerfMon
      • Monitoring Bridge Counters Using PerfMon
    • Logging in NCache
      • NCache Log Viewer
      • NCache Monitor Logging
      • Performance Counters Logging
      • Windows Event Logging
      • Email Notifications on NCache Events
      • Cache Server Logging
      • Client Side API Logging
      • Cache Event IDs
    • Troubleshooting NCache Monitoring
      • Computer Name Not Found
      • Diskperf Not Installed
      • No READ Access to the Perflib Subkeys
      • Unable to Connect to Remote Server
    • IPV6 Support
  • Upgrading NCache Versions
    • Live Upgrade NCache Version
    • Upgrade NCache Version Offline
  • Apply Windows Patches on NCache Server

Separate Cache Host Process

Previously, the NCache service and all cache instances were confined within one single process. This meant that if the process crashed, the service along with the caches and their resource information (memory, addresses, ports) were lost.

NCache has now provided more reliability by dedicating a separate process to the service and a devoted process to each cache host.

Client communication with cache

The initial communication of the client with cache host, is a 2-hop communication:

  • It first interacts with the service, which connects the client to the cache host using the port forwarding mechanism.

  • It then communicates with the cache using the port forwarded. All future interactions for the client are made directly with the cache.

When a cache is started in its own separate process, it is assigned a Management Port on which the service will communicate with it. This port is dynamically generated from a range (default 8300 – 8400, configurable in service.exe.config).

Note that in case of Partitioned of Replica topology, two ports will be assigned.

Once the port has been forwarded, the client will send all cache requests to the cache, like adding items to the cache, or fetching or removing them from the cache.

In case one of the cache host process stops, the ports being used by that cache for communication are added back to the pool of available ports. For example, if a Partitioned of Replica node was using ports 8301 and 8302 and the process terminates, the ports will become available for use by any other cache. Now when a process starts for a new cache, the port 8301 can be re-used for this cache.

Formerly, once a port was assigned to the cache, it was considered as utilized - regardless of the cache state. This meant the port range was narrowed down involuntarily.

Server communication with cache

The server communicates with the cache host on the Management Port that is dynamically generated. All management operations are channeled through this pathway.

What if the service restarts?

In the case where the service restarts, the cache processes will not be lost but the need to rediscover their previous states will arise. This means that the service has to ensure which caches were running before it crashed, along with their credentials like Process ID, Port and so on. This rediscovery, as a result, warrants that the cache processes are not in a zombie state.

There are two tools used for rediscovery:

  • Windows Management Instrumentation service (WMI)

A standardized service to access, consolidate and share management information of devices, applications and servers in an enterprise environment. You can either run the winmgmt.exe tool or the command line tool wmic to get information regarding the service.

Example:

wmic PROCESS WHERE (Description=”Alachisoft.NCache.Service.exe”)

You can work with multiple other commands using the Windows Management Instrumentation Command Line Tool.

  • netstat tool

This command-line tool displays network connections for incoming and outgoing TCP communications, routing tables and network protocol statistics. You can rediscover your lost information about the caches by viewing the active connections and ports being utilized. Any ports within the port range of service.exe.config will indicate the cache hosts using the ports.

Example:

netstat –o will display the local address, foreign address, state and Process ID of each active connection.

More details regarding this tool can be obtained from Microsoft’s Technet page.

Back to top Copyright © 2017 Alachisoft