Microsoft Esent and Local Storage
Microsoft Esent supports the local storage mechanism of Feeder Manager 2.0. The ArcFM installer adds a single .dll to enable Esent support for Feeder Manager 2.0. Esent itself is installed with Microsoft Windows.
Feeder Manager 2.0 uses these locally stored Microsoft Esent databases to mimic the Feeder Manager 2.0 cache, and relies on those in the event that the cache becomes too large. Like the cache, the local Esent databases store tracing results, including Feeder IDs and Feeder Info. Additionally, the data is stored locally per version. When a version is changed, a new database is created for the version. The existing database remains. When you close ArcMap, the local database remains.
When using SDE, Feeder Manager 2.0 checks the existing Esent database and reuses it if its data are still valid. If not, it rebuilds the Esent store everytime you open a new session or reconnect. For file and personal geodatabases, the Esent store is rebuilt at the start of every session.
The Esent databases reside in the user's AppData\Roaming directory.
Feeder Manager 2.0 is optimized out-of-the-box for the majority of use cases. There are a variety of registry key values, however, that you can use to adjust the way Esent works with Feeder Manager 2. There are only three reasons that should make you consider using these values to improve performance:
You have a very small network.
You have a large electric network with more than 1500 circuit sources.
You have a very good reason for tightly limiting memory consumption, such as a Citrix environment.
These values must be created in HKEY_CURRENT_USER\Software\Miner and Miner\ArcFM8\Feeder Manager.
EsentDisabled: Create this DWORD value and set it to 1 to turn off Esent. This eliminates local storage of Feeder Manager 2 data. You should only consider using this option to increase performance if you have a very small network and its database is hosted on a machine with multiple processors and abundant RAM.
EsentMaxCacheSizeBytes: Create this DWORD value to specify the maximum amount of memory you'll allow Esent to use, in bytes. By default, Esent uses a maximum of 200MB (209715200). Note that this affects the size of the Esent database only—not the process. ArcMap is larger, and so is any client application that uses the Feeder Manager 2.0 public API.
FeatureThreshold: Create this DWORD value to specify how many features are stored in Esent's memory cache before writing to the Esent database. This alters the point at which Esent starts its work. The default is 50,000 features. Only lower this value if you must strictly limit the amount of memory consumed by ArcMap, and you can tolerate the resulting performance impact. Only raise this value if you're attempting to improve Feeder Manager 2 performance on a very large network with more than 1500 circuit sources, and you can tolerate ArcMap's resulting memory consumption.
UnleashEsent: Create this DWORD value and set it to 1 (true) if you want Esent to use as much memory as it wants. Set it to 0 (false) in order to respect the EsentMaxCacheSizeBytes value (described above). By default, Esent respects the EsentMaxCacheSizeBytes value. Or, if you create neither the UnleashEsent nor EsentMaxCacheSizeBytes values, Esent uses a maximum of 200MB of memory. Consider using this option to increase performance if you have a small network whose database is hosted on a machine with multiple processors and abundant RAM.NOTE: Citrix users: These settings are unique to the session and user. Make sure you don't exhaust your Citrix server's resources by, for example, unleashing Esent for all users.
Personal and file geodatabase users: You may notice a new file with the .fm extension stored in the location containing your PGDB or FGDB. Feeder Manager 2.0 creates such files so that Esent can track when database changes occur.