Skip to content
kasemir edited this page Oct 18, 2010 · 4 revisions

= RDB Archive Engine =

Fundamentally, the !ArchiveEngine operates as the previous Channel Archiver's Archive Engine did, so the manual on https://ics-web.sns.ornl.gov/kasemir/archiver/index.html still has some relevance.

Differences:

  • Implemented in Java (CSS, Eclipse) instead of C++
  • Writes to RDB (Oracle, MySQL, maybe soon Hyper Table) instead of the binary data files used by the Channel Archiver
  • Configured from RDB instead of XML files

== Configuration Details == Compared to the Channel Archiver, the configuration options of the RDB Archive Engine has a few differences:

=== Enable/Disable === The old engine supported 'disabling' channels, while the new engine supports 'enabling' channels. The meaning is exactly reversed, because the positive 'enabling' seemed easier to understand than the negative 'disabling'.

=== Monitor === Works as before, and it's use is strongly encouraged.

=== Scanned Mode === The 'get_threshold' is no longer used. Scanned channels are always internally based on monitors. Since scanned operation is usually either missing short value changes or needlessly scanning the same unchanged value, you are strongly encouraged to use Monitored operation with an appropriate ADEL on the IOC side.

If the IOC cannot be configured with a suitable ADEL, the sample engine itself can now perform the deadband check via the "smpl_val" parameter.

=== Ignored Futuristic Samples === This used to be configurable via 'ignored_future', it's for now fixed at "1 day".

=== Batch Size === While the Archive Engine fundamentally performs one SQL 'INSERT' per sample, it submits these in batches. For example, with the default batch_size=500 it will collect 500 INSERTs and then perform a JDBC executeBatch(). See JDBC documentation for details.

This does not override the write_period: The engine will still perform writes at that period. If for example 100 values have accumulated at a write period, they will be written as one batch. If on the other hand 1100 values have accumulated, 500 will be written in one batch, then 500 in another, finally 100 in a last batch, and then the engine will wait for the next write period.

=== Logging Options === The engine uses the CSS logger based on Log4J, and can thus log to a console, file, or JMS. In addition, it has some additional 'throttles' to reduce the number of log messages by only logging them once, then suppressing additional messages of the same kind for some time with a message like "... More messsages suppressed for 2.00 sec ...."

Clone this wiki locally