This is an early BETA release of the openHistorian 2.0.
This version is primarily targeted for synchrophasor deployments, but is suitable for use for any kind of data when using the API to read/write data.
This build include the openHistorian SQL CLR components and scripts that allow openHistorian data to be directly queried from within SQL Server by using the GetHistorianData function.
This release adds:
- An optional logging path for data gap recovery operations so that clustered implementations can use DFS replication to maintain runtime and outage log synchronization for subscriptions with automatic data recovery enabled.
- Support for GEP sessions using ZeroMQ.
- Message throttling for data with bad timestamps (related to the 1.0 Historian currently used for STATs).
- Updated measurement metadata UI to do a full reload config to make sure changes are fully propagated to output adapters, e.g., flowing any updates to metadata sync.
This release also includes fixes that have been applied via GSF and the openPDC since the original version 2.1 release, including:
- 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.