In output direction the interface uses a memory buffer and additionally a file buffer that can be enabled optionally.
Data to be sent to the target system always passes through the internal ibaPDA memory buffer. If the connection to the target system exists, the data is sent there immediately. If the connection is lost, or the data cannot be sent out fast enough, the data is temporarily stored in the memory buffer. The memory buffer is located in the RAM of the ibaPDA computer and is therefore limited and volatile. If, for example, the acquisition is restarted, the buffered data will be lost. If the memory buffer grows beyond the configured size during ongoing acquisition, the oldest values are deleted and thus lost.
To improve this, a file buffer can additionally be enabled, which can buffer much larger amounts of data. The data is stored in files in a directory on a local drive of the ibaPDA computer. When the file buffer is enabled, data is transferred from the overflowing memory buffer to the file buffer. If the acquisition is stopped or restarted (e.g. by applying a modified I/O configuration), data that may be in the memory buffer at this time is also transferred to the file buffer.
After reconnecting to the target system, the oldest data is always sent first. Newer values are added to the buffer in the meantime. If there is still buffered data in the file buffer when the acquisition is started, it will be handled and processed in the same way.
In terms of SQL statements this means that the statements are buffered according to the configuration which was valid at the time of buffering. If you change the SQL statement during an ongoing buffering (change and apply in the I/O Manager), the system will still execute the old statements as generated at the time of buffering after the connection has been reestablished.
You configure the buffering on the Buffer tab in the Outputs section of the SQL interface.
Memory buffer
The memory buffer is always enabled. You cannot deactivate it because data to be transmitted always passes through the buffer before being forwarded to the target system.
Maximum size
Enter here the maximum total size for items buffered in memory. If the maximum size is exceeded, there are 2 options:
-
When file buffering is disabled, the oldest item in memory is deleted (and is lost forever).
-
When file buffering is enabled, the oldest part of the buffer memory is moved to a buffer file.
Periodically persist memory buffer every … s
You can only enable this option if file buffering is enabled. If the option is enabled, the entire memory buffer is periodically swapped to a buffer file.
Enter a duration after which the memory buffer is periodically stored. It must be between 10 s and 600 s.
With this option you can ensure that as little data as possible is lost in case of a system failure.
Current memory configuration
Display of the approximate time period that can be temporarily stored in the memory buffer with the configured settings. Specification in d.hh:mm:ss.
File buffer
Use file buffering
By default, the file buffer is not used. Here you can enable file buffering.
Current file configuration
Display of the approximate time period that can be temporarily stored in the file buffer with the configured settings. Specification in d.hh:mm:ss.
File storage path
In the File storage path field you can select a location for the files. You can enter the directory directly into the text field, or select it via the browse button <…>. The configured file directory must be located on a local hard disk of the ibaPDA server computer.
You can use the same file directory for several data stores because the buffer files of a data store have a unique name. Files from different data stores can thus be distinguished by their name.
Maximum size
You can configure the maximum total size of the buffer files of an SQL command module. The buffer files themselves have the file extension .buf, the index file for managing the buffer files has the extension .info. The maximum size is the total size of all these files. If the maximum buffer size is exceeded, the oldest buffer file is deleted.
Other buffer settings
Maximum time
Stored data older than the maximum time will not be transferred to the target system. Files older than the maximum time can be deleted. You may enter any value between 1 and 1000 hours.
Maximum queue size
Here you can set the limit for the number of buffered SQL statements. Depending on the application it may be more reasonable to give a limited number of statements instead of a time limit. However, the buffer size is determining.
Memory buffer diagnostics/File buffer diagnostics
Last item removed
Indicates when the last item was taken from this part of the buffer.
Fill level
The fill level indicates what percentage of the buffer size is currently filled with buffered data.
Unprocessed level
Items transferred to the target system are not deleted immediately in the file buffer. Only when a buffer file is completely read, it is deleted. Therefore, it is possible that only a part of a buffer file contains data that has not yet been transferred. The fill level refers to the existing buffer files, while the "unprocessed level" indicates the percentage of data in the file buffer that has not yet been transferred.
Tip |
|
|---|---|
|
If you configure a diagnostic module for an SQL command module in the I/O configuration, you can monitor and record the fill level values of the memory buffer and file buffer. See also Diagnostic modules. |
|
