{"id":45724,"date":"2020-03-11T13:19:49","date_gmt":"2020-03-11T05:19:49","guid":{"rendered":"https:\/\/oihelp.corporate.ifs.com\/help\/?page_id=45724"},"modified":"2025-02-19T13:56:33","modified_gmt":"2025-02-19T05:56:33","slug":"data-cache","status":"publish","type":"page","link":"https:\/\/oihelp.corporate.ifs.com\/help\/p2-server\/connecting-your-data\/data-cache\/","title":{"rendered":"Data Cache"},"content":{"rendered":"\n<p class=\"left-bar\">This article applies to version 4.17 and later of IFS OI Explorer.\u00a0<\/p>\n<p class=\"intro-text\">A data cache is a local database that stores data from one or more external datasources, creating a local copy of this data.\u00a0 This can be used to improve fetch performance on datasources with lower access speeds or high network latency.<\/p>\n<p class=\"intro-text\">The Data Cache can be connected to local datasource and also to and Edge Hosted datasources.<\/p>\n<p class=\"intro-text\">Data Cache also allows caching of values from sources which do not themselves retain history, such as a DA-only OPC source. In this scenario, we retain snapshots of values at the configured intervals so Explorer will show the captured history in displays (such as the trend), even though it's only possible to fetch the current value from the original source.<\/p>\n<p>&nbsp;<\/p>\n<h2 class=\"page-subheading\" style=\"border-top: 1px solid #cccccc;\">How Data Cache Works<\/h2>\n<p class=\"intro-text\">With Data Cache enabled, the system will collect the configured data from the external source systems, and store them into the configured Cache Database.\u00a0 InfluxDB and SQL Server databases are supported to store this data.<\/p>\n<p class=\"intro-text\">Once the cache is enabled, when a user asks for that piece of data, the system will recognize that the tag is being added to the cache.\u00a0 It will then automatically collect that tag from the cache when the system asks for data.<\/p>\n<p class=\"intro-text\">For end users of the data, this means that there is a seamless change from the tag being collected from the original source, to being retrieved from the Data Cache instead.<\/p>\n<p><a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_15e3b699.png\" rel=\"lightbox-0\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-69905\" src=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_15e3b699.png\" alt=\"Diagram of how data cache works\" width=\"548\" height=\"660\" srcset=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_15e3b699.png 1030w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_15e3b699-768x924.png 768w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_15e3b699-125x150.png 125w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_15e3b699-600x722.png 600w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_15e3b699-40x48.png 40w\" sizes=\"auto, (max-width: 548px) 100vw, 548px\" \/><\/a><\/p>\n<h2 class=\"page-subheading\">Prerequisites and Installation<\/h2>\n<h3>Prerequisites<\/h3>\n<ul class=\"intro-text\">\n<li>If you are using <strong>InfluxDB<\/strong> as the <strong>Cache database<\/strong>:\n<ul class=\"intro-text\">\n<li><strong>InfluxDB<\/strong> version 2.7.6<\/li>\n<\/ul>\n<\/li>\n<li><strong>Network<\/strong>:\n<ul class=\"intro-text\">\n<li>Server port 443 (HTTPS; for configuration)<\/li>\n<li>Server port 8883<\/li>\n<\/ul>\n<\/li>\n<li><strong>SSL<\/strong> certificate<strong>\n<p><\/strong><\/li>\n<li>If using <strong>Edge Host<\/strong>:\n<ul class=\"intro-text\">\n<li>Same Adaptor must be installed on both sides<\/li>\n<li>Server port 8883 must be firewall accessible<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Installation<\/h3>\n<p class=\"intro-text\">The Explorer Data Cache is installed as part of the standard Explorer installer.<\/p>\n<p class=\"intro-text\">In the <a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/p2-explorer\/explorer-admin\/serverconfig-xml\/\">ServerConfig.xml<\/a> configuration file, add <strong>DataCache<\/strong> to the list of enabled features in the <strong>Web<\/strong> configuration group<b><i>.<\/i><\/b><\/p>\n<p class=\"code-fragment\">&lt;ConfigGroup Name=\"Web\"&gt;<br \/>\n\u00a0 \u00a0&lt;CollectionParam Key=\"EnabledFeatures\"&gt;<br \/>\n\u00a0 \u00a0 \u00a0&lt;Value&gt;DataCache&lt;\/Value&gt;<br \/>\n...<\/p>\n<p class=\"intro-text\">The section below shows the tuning options that are available.\u00a0 Most of these are for tuning the cache on limited bandwidth connections where running it at full speed may use the majority of the connection bandwidth.<\/p>\n<h3>Configuration File Settings<\/h3>\n<p class=\"intro-text\">Locate these settings under the &lt;ConfigGroup Name=\"DataCache\"&gt; node in <a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/p2-explorer\/explorer-admin\/serverconfig-xml\/\">ServerConfig.xml<\/a>.<\/p>\n<table style=\"width: 100%;\">\n<tbody class=\"intro-text\">\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>DataCacheDirectory<\/strong><\/td>\n<td>The path on disk the data ingestor should persist data batches. Default: <em>%programdata%\\P2 Energy Solutions\\DataCache<\/em><\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>DataIngestorMetricsDatasourceName<\/strong><\/td>\n<td>The name of the Datasource which is used to write data cache metrics data to.<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>DataCacheMaxDataPointsToWrite<\/strong><\/td>\n<td>Maximum batch size of data points to write to data cache. Note: setting too high a value may cause writes to be ignored. Default: 15000<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>DataCacheMaxParallelWrites<\/strong><\/td>\n<td>Maximum Data Cache Parallel writes Default: 16<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>DataCacheWriteTimeout<\/strong><\/td>\n<td>Timeout (secs) for waiting until a Data Cache write is completed. Default: 60<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>DataCacheWritePrecision<\/strong><\/td>\n<td>Timestamp precision for datums written to a Data Cache. Options are: Seconds, Milliseconds. Default: Seconds<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>DataIngestorTransferThrottleMBperMinute<\/strong><\/td>\n<td>Maximum compressed MB per minute of data to write to the Data Cache. Default: 30<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>DataIngestorHistoryFetchDays<\/strong><\/td>\n<td>Number of days in the past to start caching historical data. Changing this setting without service restarts will cause Scan groups to restart history fetching if history recovery is enabled. Default: 30.<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>DataIngestorRecentFetchDays<\/strong><\/td>\n<td>Number of days in the past to start caching recent data. Default: 1<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>DataIngestorDelayOffset<\/strong><\/td>\n<td>Delay offset (in seconds) for reading data for ingestion. Setting to -1 will use the Scan group period as the offset. Default: -1<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>DataIngestorDataItemsPerRequest<\/strong><\/td>\n<td>Maximum number of datums to return in ingestion batch read. NOTE: Increasing this value may impact performance and\/or cause timeouts. Default: 50000<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>DataIngestorMaxEntitiesPerRequest<\/strong><\/td>\n<td>Maximum number of entities to return in ingestion batch read. NOTE: Increasing this value may impact performance and\/or cause timeouts. Default: 200<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>DataIngestorDisable<\/strong><\/td>\n<td>Disable the Data Ingestion. Default: false<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2 class=\"page-subheading\">Creating a Data Cache<\/h2>\n<p class=\"intro-text\">In IFS OI Server Management, adding a data cache is performed through the Connections menu option.<\/p>\n<p class=\"intro-text\">1. Open IFS OI Server Management, and click the <strong>Connections <a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2017\/12\/attribute-value-icon.png\" rel=\"lightbox-1\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-34463\" src=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2017\/12\/attribute-value-icon.png\" alt=\"\" width=\"13\" height=\"13\" \/><\/a><\/strong> icon.<\/p>\n<p class=\"intro-text\">2. Select the <strong>Data Cache<\/strong>\u00a0option from the middle panel.<\/p>\n<p class=\"intro-text\">3. Click the\u00a0<strong>Create New Data Cache <\/strong>button.\u00a0If you are updating a datasource, click the name of the data cache instead.<\/p>\n<p class=\"intro-text\">4. Fill in the datasource parameters and adaptor parameters (see below), and then click <strong>Save<\/strong>.<\/p>\n<p class=\"intro-text\">After you have saved, you can then create <strong>Scan Groups<\/strong>.<\/p>\n<h3>Datasource Parameters<\/h3>\n<p class=\"intro-text\">The configuration parameters are different depending on the type of datasource you are configuring. For an InfluxDB Cache, the parameters are as follows.<\/p>\n<table>\n<tbody class=\"intro-text\">\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Parameter<\/strong><\/td>\n<td><strong>Description and example<\/strong><\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Name<\/strong><\/td>\n<td>\n<p>The name that this datasource will be known by, to be used in other applications such as\u00a0<a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/p2-explorer\/\">IFS OI Explorer<\/a>. In the example below, the list of datasources appears in IFS OI Explorer when adding a dataset to a page.<\/p>\n<p><a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2015\/05\/adddatasource.png\" rel=\"lightbox-1 lightbox-2\"><img loading=\"lazy\" decoding=\"async\" class=\"border-image alignnone wp-image-4056 \" src=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2015\/05\/adddatasource.png\" sizes=\"auto, (max-width: 655px) 100vw, 655px\" srcset=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2015\/05\/adddatasource.png 655w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2015\/05\/adddatasource-150x115.png 150w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2015\/05\/adddatasource-24x18.png 24w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2015\/05\/adddatasource-36x28.png 36w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2015\/05\/adddatasource-48x37.png 48w\" alt=\"adddatasource\" width=\"458\" height=\"351\" \/><\/a><\/p>\n<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Description<\/strong><\/td>\n<td>Detailed information on the purpose of the data cache. A good description helps to address any ambiguities when there are several data caches with similar names.<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Adaptor<\/strong><\/td>\n<td>The type of connection that is used by the datasource to retrieve the data. This is, by default, <strong>InfluxDB Cache<\/strong>.\u00a0 SQL Server can also be used for caching smaller numbers of tags.<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Data Cache Pool Size<\/strong><\/td>\n<td>The adaptor pool hosts a number of adaptors (datasource connections), which can be called upon to retrieve data. You need to specify the minimum and maximum adaptor pool size by moving the sliders left and right.<br \/>\nIf your external system only allows one active connection at a time, set both minimum and maximum to 1. Default: Min=2, Max=8.<br \/>\nFor more information on adaptor pool sizes, see <a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/p2-server\/primers\/datasources\/\">Datasources and Adaptors<\/a>.<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Data Cache Write Pool Size<\/strong><\/td>\n<td>The number of adaptor instances that are used to write data from the original datasource to the cache.<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Initialisation Timeout<\/strong><\/td>\n<td>Applies to the initialisation of an adaptor, when it first connects to a datasource and data cache. This is the time limit allowed for the adaptor to initially set up and connect to the datasource and data cache before timing out.<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Request Timeout<\/strong><\/td>\n<td>Applies to all other operations against the datasource, such as tag fetch. It refers to the time limit applied to all non-initialisation operations against the cache and the original datasource. The precise behaviour when a datasource operation is aborted may vary by adaptor.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Adaptor Parameters<\/h3>\n<p class=\"intro-text\">The properties of the InfluxDB Cache adaptor that will allow it to correctly store and retrieve data.\u00a0The following table lists the adaptor's parameters, along with the\u00a0<em>name<\/em>\u00a0and\u00a0<em>type<\/em>.<\/p>\n<table>\n<thead class=\"intro-text\">\n<tr style=\"border: 1px solid #cccccc;\">\n<td width=\"200\"><strong>Parameter<\/strong><\/td>\n<td><strong>Description and example<\/strong><\/td>\n<td><strong>Name<\/strong><\/td>\n<td><strong>Type<\/strong><\/td>\n<\/tr>\n<\/thead>\n<tbody class=\"intro-text\">\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Server<\/strong><\/td>\n<td>The name of the server on which the data cache is hosted.<\/td>\n<td>Server<\/td>\n<td>String<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Port<\/strong><\/td>\n<td>The port to use when connecting to the data cache.<\/td>\n<td>Port<\/td>\n<td>Integer<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Database\u00a0<\/strong><\/td>\n<td>The name of the database where this data cache is stored.<\/td>\n<td>Database<\/td>\n<td>String<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Fetch Mode<\/strong><\/td>\n<td>Specifies how the source data is fetched.<\/td>\n<td>FetchMode<\/td>\n<td>String<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Max Parallel Reads<\/strong><\/td>\n<td>The maximum number of parallel tag fetches.<\/td>\n<td>MaxParallelReads<\/td>\n<td>Integer<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Use Secure Transport<\/strong><\/td>\n<td>Connect to InfluxDB using HTTPS<\/td>\n<td>UseSecureTransport<\/td>\n<td>Boolean<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Username<\/strong><\/td>\n<td>The user name to use to connect to the data cache.<\/td>\n<td>Username<\/td>\n<td>String<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Password<\/strong><\/td>\n<td>The password to use to connect to the data cache.<\/td>\n<td>Password<\/td>\n<td>EncryptedString<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2 class=\"page-subheading\">Creating a Scan Group<\/h2>\n<p class=\"intro-text\">A Scan Group is a scheduled collection of tags from a single Datasource.\u00a0Multiple Scan Groups can be configured to a single Data Cache.<\/p>\n<p class=\"intro-text\">From a <strong>Data Cache<\/strong> page:<\/p>\n<p class=\"intro-text\">1. Click the <strong>Create <\/strong>button. If you are updating a scan group, click the name of the scan group instead.<\/p>\n<p><a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24440828.png\" rel=\"lightbox-3\"><img loading=\"lazy\" decoding=\"async\" class=\"border-image alignnone wp-image-69917 \" src=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24440828.png\" alt=\"Creating a scan group\" width=\"389\" height=\"317\" srcset=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24440828.png 736w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24440828-150x122.png 150w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24440828-600x489.png 600w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24440828-48x39.png 48w\" sizes=\"auto, (max-width: 389px) 100vw, 389px\" \/><\/a><\/p>\n<p class=\"intro-text\">2. Fill in the <strong>Scan Group Details<\/strong> (see below), and then click <strong>Save<\/strong>.<\/p>\n<p class=\"intro-text\">After you have saved, you can then create more scan groups.<\/p>\n<h3>Scan Group Details<\/h3>\n<p class=\"intro-text\">The configuration parameters are different depending on the type of datasource you are configuring. For a tag\u00a0datasource, the parameters are as follows.<\/p>\n<table>\n<tbody class=\"intro-text\">\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Parameter<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Name<\/strong><\/td>\n<td>The name of the scan group, must be unique within this data cache and must not use <a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/p2-server\/primers\/reserved-characters-keywords\/\">reserved characters<\/a>.<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Tag Type<\/strong><\/td>\n<td>\n<p>The type of tags that can be assigned to this scan group.<\/p>\n<ul>\n<li><b>Datasource<\/b>: Tags that are associated with a <a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/p2-server\/connecting-your-data\/creating-a-tag-datasource\/\">timeseries datasource<\/a>. Dataset datasources are not available for caching.<\/li>\n<li><b>Calculation<\/b>: Tags that are calculations.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Datasource<\/strong><\/td>\n<td>\n<p>For Datasource tag type, specify the datasource this scan group is fetching from.<br \/>\nYou can only have one data cache per datasource, therefore Datasources which have already been assigned to other data caches are not available.<\/p>\n<p>The current <strong>Data Ingestion Pool Size<\/strong> of the datasource is displayed, and you can adjust it by clicking the link provided. This opens the <a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/p2-server\/primers\/datasources\/\">Datasource<\/a> page in a new tab. Scroll to the parameter and adjust as needed.<\/p>\n<p><a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_245ee9ee.png\" rel=\"lightbox-4\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-69918\" src=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_245ee9ee.png\" alt=\"Edit datasource pool size from Scan Group\" width=\"486\" height=\"126\" srcset=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_245ee9ee.png 486w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_245ee9ee-150x39.png 150w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_245ee9ee-48x12.png 48w\" sizes=\"auto, (max-width: 486px) 100vw, 486px\" \/><\/a><\/p>\n<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Scan Period<\/strong><\/td>\n<td>The scheduling frequency for reading from the original datasource.<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Fetch Type<\/strong><\/td>\n<td>\n<p>The type of fetch being made to the datasource.<\/p>\n<ul>\n<li><b>Raw Range<\/b>: All data is fetched from the Datasource for the entire fetch range.<\/li>\n<li><b>Raw Spot<\/b>: A single data point is fetched at the triggered time. The recorded timestamp is maintained from the original source. Note: History Fetch is not available for Raw Spot.<\/li>\n<li><b>Last Known Value Spot<\/b>: A single data point is fetched at the triggered time. The recorded timestamp is the time of the fetch.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>History Recovery<\/strong><\/td>\n<td>\n<p>For Raw Range and Last Known Spot Value fetch types, you have the option of also\u00a0 collecting historical data. The time period for the historical data is specified in the Server Configuration file.<\/p>\n<p>Selecting \u2018Collect historical data\u2019 tells the data cache to go back and fetch all data from a point in time in the past. When enabled, the data fetching is split into two parts \u2013 Historical and Recent. Each group is fetched independently.<\/p>\n<ul>\n<li>Recent (the last day by default) will always keep recent data up-to-date.<\/li>\n<li>Historical will keep back-filling from the start of the history period up to when the recent data started fetching. Once the historical data has been fetched, history recovery is disabled and only recent data will be fetched. If any data in the past is modified after the history has been fetched, changes will not be copied\/updated by the cache.<\/li>\n<\/ul>\n<p><strong>History Fetch Days<\/strong>: In days, specify the number of days to fetch history for. If left empty, the system default value will be used.<\/p>\n<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Delay Offset<\/strong><\/td>\n<td>Delay offset, in seconds, for reading data for data fetch. The offset will be earlier than the run time and is intended to account for any delay in recent data appearing in the historian. If left empty, the system default value will be used.\u00a0<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Data Items Per Request<\/strong><\/td>\n<td>\n<p class=\"intro-text\">Restricts the number of data items per data fetch. If left empty, the system default value will be used.<\/p>\n<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Max Entities Per Request<\/strong><\/td>\n<td>Restricts the number of entities per data fetch. If left empty, the system default value will be used.<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Tag Source Type<\/strong><\/td>\n<td>\n<p>The default source tags are fetched from. Use the \u201csrc\u201d parameter to overwrite the default behavior.<\/p>\n<ul>\n<li><b>Default<\/b>: Cached values will be fetched by default.<\/li>\n<li><b>Origin<\/b>: Non-cached, original values will be fetched by default.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr style=\"border: 1px solid #cccccc;\">\n<td><strong>Scan Group Type<\/strong><\/td>\n<td>\n<p>Determines how tags are assigned to the scan group.<\/p>\n<ul>\n<li><b>All<\/b>: Assigns all tags from the associated datasource to the scan group.<\/li>\n<li><b>By Filter<\/b>: Use naming expressions to assign matching tags to the scan group. Click the Preview button to view the list of matching tags. All matching tags will be assigned to the scan group on Save.\n<p><a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_247057e8.png\" rel=\"lightbox-5\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-69919\" src=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_247057e8.png\" alt=\"Scan group type by filter\" width=\"472\" height=\"202\" srcset=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_247057e8.png 603w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_247057e8-150x64.png 150w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_247057e8-600x257.png 600w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_247057e8-48x21.png 48w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><\/a><\/p>\n<\/li>\n<li><b>Manual<\/b>: Manually assign tags to the scan group. Click the Assign button to add specific tags to the scan group.\n<p><a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24718925.png\" rel=\"lightbox-6\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-69920\" src=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24718925.png\" alt=\"Manual scan group type\" width=\"425\" height=\"114\" srcset=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24718925.png 537w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24718925-150x40.png 150w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24718925-48x13.png 48w\" sizes=\"auto, (max-width: 425px) 100vw, 425px\" \/><\/a><br \/>\n<a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_2473ce13.png\" rel=\"lightbox-7\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-69922\" src=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_2473ce13.png\" alt=\"Scan group tag assignment control\" width=\"730\" height=\"199\" srcset=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_2473ce13.png 730w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_2473ce13-150x41.png 150w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_2473ce13-600x164.png 600w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_2473ce13-48x13.png 48w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2 class=\"page-subheading\">Notes and Troubleshooting<\/h2>\n<ul class=\"intro-text\">\n<li>If the cache fetches a value with low confidence, the confidence will be cached along with the datum values and it won\u2019t re-fetch the data.<\/li>\n<\/ul>\n<h3>Current Status<\/h3>\n<p class=\"intro-text\">Server Management displays statuses for both the data cache and scan groups.<\/p>\n<h4>Data Cache<\/h4>\n<p><a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24791f0a.png\" rel=\"lightbox-8\"><img loading=\"lazy\" decoding=\"async\" class=\"border-image alignnone wp-image-69925 \" src=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24791f0a.png\" alt=\"Data cache status\" width=\"263\" height=\"33\" srcset=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24791f0a.png 351w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24791f0a-150x19.png 150w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24791f0a-48x6.png 48w\" sizes=\"auto, (max-width: 263px) 100vw, 263px\" \/><\/a><\/p>\n<p>A <strong>Data Cache<\/strong> can have the following statuses:<\/p>\n<ul class=\"intro-text\">\n<li><strong>Started<\/strong>: The data cache is active and in use.<\/li>\n<li><strong>Updating<\/strong>:\u00a0 The data cache is in the process of fetching data.<\/li>\n<li><strong>Service Down<\/strong>: The data cache cannot connect to the server.<\/li>\n<li><strong>No Status Available<\/strong>: The data cache cannot determine a status.<\/li>\n<\/ul>\n<h4>Scan Group<\/h4>\n<p><a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24727a99.png\" rel=\"lightbox-9\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-69921\" src=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24727a99.png\" alt=\"Scan group status\" width=\"601\" height=\"42\" srcset=\"https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24727a99.png 759w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24727a99-150x10.png 150w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24727a99-600x42.png 600w, https:\/\/oihelp.corporate.ifs.com\/help\/wp-content\/uploads\/2025\/02\/Snag_24727a99-48x3.png 48w\" sizes=\"auto, (max-width: 601px) 100vw, 601px\" \/><\/a><\/p>\n<p class=\"intro-text\">A <strong>Scan Group<\/strong> can have the following statuses:<\/p>\n<ul class=\"intro-text\">\n<li><strong>No Status Available<\/strong>: No scan groups are available.<\/li>\n<li><strong>Waiting<\/strong>:\u00a0 The scan group is waiting to fetch data.<\/li>\n<li><strong>Scheduling<\/strong>: The scan group is scheduling a data fetch.<\/li>\n<li><strong>Ready<\/strong>: The scan group is ready to use.<\/li>\n<li><strong>Running<\/strong>: The scan group is fetching data.<\/li>\n<li><strong>Stopping<\/strong>: The scheduled fetch is stopping.<\/li>\n<li><strong>Shutdown<\/strong>: The scan group is not available.<\/li>\n<\/ul>\n<p class=\"intro-text\">When a scan group is in a Ready state, it also displays the Last fetch time, if available.<\/p>\n<h3>Overriding Cached Tags<\/h3>\n<ul class=\"intro-text\">\n<li>It is possible to override cached tags to read data from the original data source by using the following syntax in place of the tagname: {Tagname, src=\u201dorigin\u201d}<\/li>\n<li>InfluxDB versions 2.0 to 2.7.5 are known incompatible.<\/li>\n<li>Relevant changes to the Data Dictionary are detected and Scan Groups will update themselves without the need for Service restarts.<\/li>\n<li>If tags exists in multiple Scan Groups, the Scan Group with the lowest scan period will fetch the tag data.<\/li>\n<li>A Datasource can only be assigned to one Data Cache via a Scan group.<\/li>\n<\/ul>\n<h3>Data Cache Buffering<\/h3>\n<ul class=\"intro-text\">\n<li>Data which has been fetched for a Scan Group is compressed and stored on the local hard drive.\u00a0 These are sent to the P2 Server Service which then sends it to InfluxDB or MS SQL Server via the Cache Adaptor.\u00a0 Even if the Data Cache database is unavailable, the data will be stored on the file system until the Cache database is back online.<\/li>\n<li>For low network bandwidth scenarios, the data sent can be throttled using the <strong>DataIngestorTransferThrottleMBperMinute<\/strong> setting in <a href=\"https:\/\/oihelp.corporate.ifs.com\/help\/p2-explorer\/explorer-admin\/serverconfig-xml\/\">ServerConfig.xml<\/a>.\u00a0<\/li>\n<li><strong>Note<\/strong>: Throttling too low can cause the files to back up on the local system if they are being collected faster than they are being pushed to the Cache, potentially running out of hard drive space.<\/li>\n<\/ul>\n<h3>Data Ingestor System Metrics<\/h3>\n<ul class=\"intro-text\">\n<li>For diagnostics, the Data Ingestor can create <em>system metrics<\/em> tags via the Influx Adaptor which can be trended in Explorer.<\/li>\n<li>Tags names are prefixed with <strong>DataCache<\/strong>.<\/li>\n<li>Data is written once per minute.<\/li>\n<li>Edge Hosts which are ingesting will create unique tags by appending the Edge host name.<\/li>\n<\/ul>\n<h3>Edge Host Notes<\/h3>\n<ul class=\"intro-text\">\n<li>Edge Hosts can be configured to remotely ingest data. Set \u2018<strong>DataIngestorDisable<\/strong>\u2019 to \u2018<strong>false<\/strong>\u2019 in <strong>xml<\/strong>.<\/li>\n<li>Scan group scheduling and fetching for remote Datasources happens in the Edge Host process at the Edge Node.<\/li>\n<li>Buffered data is stored locally on the Edge Host server and sent to the P2 Server Service for storage in InfluxDB.<\/li>\n<li>It is possible to enable remote logging from an Edge Host. ISS Logger messages are sent from the Edge Host to the main Explorer machine where they are written to ISS Logger.\u00a0\u00a0It is recommended to enable this for short periods while debugging to reduce the network overhead that it adds when enabled.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A data cache is a time series specialised database that stores data from one or more datasources. Caches may improve fetch performance on datasources with higher latency and can be used for normal and Edge Hosted datasources.<\/p>\n<p class=\"continue-reading-button\"> <a class=\"continue-reading-link\" href=\"https:\/\/oihelp.corporate.ifs.com\/help\/p2-server\/connecting-your-data\/data-cache\/\">Read more<i class=\"crycon-right-dir\"><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":65228,"parent":3649,"menu_order":9,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"","_members_access_role":[],"_members_access_error":""},"categories":[9],"tags":[1190],"class_list":["post-45724","page","type-page","status-publish","has-post-thumbnail","hentry","category-tech-ref","tag-influx","Version-4-19","Product-srv"],"_links":{"self":[{"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/pages\/45724","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/comments?post=45724"}],"version-history":[{"count":25,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/pages\/45724\/revisions"}],"predecessor-version":[{"id":69984,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/pages\/45724\/revisions\/69984"}],"up":[{"embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/pages\/3649"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/media\/65228"}],"wp:attachment":[{"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/media?parent=45724"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/categories?post=45724"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oihelp.corporate.ifs.com\/help\/wp-json\/wp\/v2\/tags?post=45724"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}