Cache Isolation Level (InProc/OutProc)
If your application is running on a server node (the node that is participating in the cluster), you can access the cache either as InProc or OutProc. For InProc, cache lives inside your application process and performs all the clustering operations from there. For OutProc, you have to start the cache independently and then connect to it. Both access modes have their own pros and cons.
InProc mode in a replicated cache can give you really fast GET operations since you are accessing all the data from within your own memory space. However, since your application and the cache are sharing the same memory, you may face memory size limitation (in terms of how much you can cache).
Similarly, OutProc has benefit that multiple applications on the same machine can share a common cache. Additionally, since the cache lives in its own memory, you have more memory available to you. But, there is an overhead of transferring data between your application process and the NCache process.
OutProc requires that the objects are marked as Serializable.
If you are running NCache in a clustered configuration, you must ensure this on all machines in the cluster. By default, all caches are OutProc but isolation level can be changed for caches of local topology. It can be done in the following way.
Using NCache Manager
Click on the cache name in Cache Explorer to open cache settings.
Go to Main tab.
Change the cache Isolation Level as per your requirement.
Right click on cache name in Cache Explorer and select Apply Configuration option.
Through Config.ncconf
In Config.ncconf,
you can specify the attribute value of inproc
as true (for InProc)
or false (for OutProc):
<cache-config ...>
<cache-settings inproc="False"...>
</cache-config>
Note
InProc mode is only available for Local cache.
See Also
Cache Size
Cache Data Expiration
Error Logging
Management Operations