This is the release version of SIEGate v1.1.
We recommend all SIEGate installations be updated to this new version.
Version 1.1.147 - 07/30/2015
Note: This version contains all the bug fixes included with the openPDC v2.1 SP1
Changes since version 1.0:
- Fixed an issue in FrameImageParserBase that was pooling objects in memory which were no longer in use (major issue correction)
- Modified users of the AsyncDoubleBufferedQueue to use the new signalling mechanism of the DoubleBufferedQueue rather than polling (faster)
- Updated to dnp3 adapter to proxy log messages from the IDNP3Manager singleton to Iaon session through one of the adapter instances
- Fixed ConcentratorBase so it would work at extremely high frame rates.
- Implemented configuration augmentation and conditional data operations for database configurations to speed up ReloadConfig for large databases (major optimization)
- Fixed the Output Device Wizard in the Manager so that removing devices from an output stream does not take an unreasonably long amount of time (Manager scalability)
- Added time-quality flags measurement, for phasor protocols that support this, that is associated with a connection (e.g., directly connected device or concentrator). Quality flags can then archived and/or applied to an output stream. Output stream time-quality can be a measurement derived from a hardware clock
- Converted MeasurementKey to a class and provided more explicit factory functions for creating and/or looking up measurement keys (major optimization)
- Fixed issues with device updates related to renaming, changing historian and changing company with associated measurement information roll down (edge case fixes)
- Improved the performance of RuntimeID lookups in the SignalIndexCache
- Updated high-volume status message suppression logic to work better under load
- Fixed a bug that was causing the historian to attempt to offload the active file when offloading is enabled
- Fixed possible "null reference" exceptions and "an item with the same key has already been added" exceptions that can occur during stress or with malformed configurations
- Synchronized configuration file operations to help avoid possible race conditions when dealing with new configurations
- Improved the performance of Endian order processing
- Added command functions to data publisher for easier status updates on temporal sessions: EnumerateTemporalClients and GetTemporalStatus.
- Provided a better error message when using Guids as input or output measurement definition expression and specified Guid does not exist or is not enabled.
- Updated DataMigrationUtility to perform identity inserts as a faster way of spanning large auto-inc gaps in databases that support this.
- Updated SQL Server schema to include WITH (NOLOCK) in views to help reduce deadlock victim errors.
- Adjusted FRACESEC values for IEEE C37.118 and IEC 61850-90-5 timestamps in output streams to be more precise when a configuration frame is available.
- Modified elapsed time function to allow sub-second values using common SI scalars (e.g., milli).
- Modified adapter initialization to operate on a small number of independent threads to optimize system start-up at scale.
- Improved alarm configuration and monitoring screens to provide better usability and feedback.
- Issue where leaving Manager running on the home screen and connected to the service would keep allocated pinned buffers manifesting as a slow memory leak. Occurred due to use of the .NET FileSystemWatcher as a class member and parent class would not get a dispose call. In this case backup finalizer would not get called since watcher maintains a dangling reference to parent class via its internal pinned buffer. This can occur even with a properly implemented IDisposable pattern. Implemented and globally applied a SafeFileWatcher wrapper that uses weak references to correct.
- Removed reusable memory streams in GEP engine to allow system to properly reclaim memory resources after periods of stress.
- Exception while adding new phasors to input devices via the Manager.
- Updated phasor UI to check for duplicate source indexes when adding phasors manually.
- Confusing message in synchrophasor parser when receiving an exception related to data received on the command channel.
- Error messages in the DataPublisher’s UpdateCertificateChecker during reconfiguration due to null subscriber identities.
- Issue in GSF.StringExtensions.ParseKeyValuePairs where certain character encodings would be decoded automatically by the parser.
- Issue where the TLS remoting server never properly disconnected unauthenticated clients.
- Cleared the wait handle upon completion of any successful send operations in the TlsServer.
- Updated the status of the TlsServer to include client send queue sizes so resource utilization can be better monitored.
- Fixed the SubscriberStatusQuery, used on the external subscription monitoring UI screen, to properly query the TLS!DATAPUBLISHER rather than the EXTERNAL!DATAPUBLISHER.
SIEGate has been developed as a .NET 4.5 application built on the new integrated Grid Solutions Framework
(GSF). The Grid Solutions Framework is a combination of the TVA Code Library
and Time-series Framework
projects on codeplex built using the new .NET 4.5 framework. In creating the GSF, new code components have been added and all libraries have been refactored to make this integrated framework more secure and significantly better performing.
Upgrading to the 1.1 release candidate version of SIEGate from prior releases requires migration of the existing configuration - should you desire to keep it. Upgrading the configuration is handled by migrating your existing configuration to the new 1.1 release schema in the Configuration Setup Utility (select "I want to used an existing configuration", "Database" and "I want to upgrade to the latest schema"). The Data Migration Utility included with the 1.0 version of SIEGate supports MS SQL Server, Oracle, MySQL and SQLite database types and can even migrate from one database type to another (e.g., SQLite to Oracle).
Included with the SIEGate v1.1 release installation is a tool called the No Internet Fix Utility
. As its name suggests, you should run this utility when deploying the SIEGate inside an environment that does not have Internet access. This tool will ensure all TLS/SSL style connections now required by the SIEGate startup quickly by skipping timeouts even without Internet availability.
The Gateway Exchange Protocol (GEP) Subscription Tester
- has been provided to validate internal subscription style connections. This is a multi-platform application was built using the Grid Solutions Framework
Unity subscription API with deployment binaries or installers for Windows, Mac, Linux and Android devices.