OpenSCADA

Modules/DBGate

English • ‎Українська
Module Name Version License Source Languages Platforms Type Author Description
DBGate DB gate
  • Features: SQL, LIST, STRUCT, GET, SEEK, PRELOAD, SET, DEL, FIX, TR, ERR
1.1 GPL2 bd_DBGate.so en,uk x86,x86_64,ARM DB Roman Savochenko BD module. Allows to locate databases of the remote OpenSCADA stations to local ones.
- implementation the local cache for the function fieldSeek() by the deep seeking to the XML-context on the remote part.

Main function of this module is the data reflection of the subsystem "Databases" of the remote OpenSCADA stations on the local ones. In its work, the module uses the OpenSCADA self protocol and service functions of the subsystem "Databases". This module can be useful:

The module realizes following functions:

Contents

1 Operations over the database

The operations of opening and closing of the database is supported only for the local DB object and without possibility of creating new database and deleting the existing ones at the close, on the remote station. In terms of the subsystem "DB" of OpenSCADA, opening of DB is its registration-connecting to the remote DB, for further using of the program. It also supports the operation of requesting the list of tables in the remote database.

The DB-object configuration page also reflects mostly properties of the remote DB, besides:

The DBGate database is addressed by specifying-selecting the DB name in the format "{RemoteStation}.{DBModule}.{DB}", where:

2 Operations over the table

Supports transmitting to the remote station for operations of opening, closing tables, with the possibility of creating a new table when opening and removing an existing one when closed, as well as querying the structure of the table.

3 Operations over the table content

Transmitting to DB of the remote station for the table operations:

API of the subsystem "DB" suppose the access to the contents of the table on the value of key(s) fields. Thus, the operation of requesting of the record implies the preset of key columns of the object TConfig, which will do the request. Creating a new record (row) is performed by setting the record values that are missing.

The table dynamically structure change depends on the linked remote DB type only.

The module implements the mechanism of support the multilingual text variables indirectly in the core functions of working with the configuration file: TBDS::dataSeek(), TBDS::dataGet() and TBDS::dataSet().

4 Permissions

Access rights to the end side database are determined by the rights specific to the remote DB type and by the rights of the remote station user accessing the subsystem DB in whole, for the rights described in the follow table:

Function/operation/service Rights relatively to "root:BD:{other}"
Enabling DB W:W:-
Available tables list R:R:R
Creating table W:W:-
Deleting table W:W:-
SQL request (call:/serv/SQL) W:W:-
Field structure (call:/serv/fieldStruct) R:R:R
Field seek (call:/serv/fieldSeek) R:R:R
Field get (call:/serv/fieldGet) R:R:R
Field set (call:/serv/fieldSet) W:W:-
Field delete (call:/serv/fieldDel) W:W:-

5 Productivity of the DB

Measurement of the performance of the database, more precisely the gate, is carried out by testing the "database" of the module "SystemTests", by performing operations on records by the structure "name char (20), descr char (50), val double (10.2), id int (7), stat bool, reqKey string, reqVal string" twice, first for the remote environment DB, and then to the same DB, but through the gateway — this module.

Operations for 1000 records, seconds AMD A8-6500 <Ethernet> AMD Phenom II X4 [RAID1] <> SQLite AMD A8-6500 <Ethernet> AMD Phenom II X4 [RAID1] <> MySQL
Creating: 2.36 > 0.35 3.39 > 1.35
Updating: 2.31 > 0.31 2.97 > 0.94
Getting: 2.45 > 0.2 2.67 > 0.49
Seeking: 2.22 > 0.13 3.59 > 1.48
Seeking in preload*: 1.93 > 0.02 1.88 > 0.04
Deleting: 1.85 > 0.051 2.14 > 0.27

* — this operation has no effect because preloading-caching is performed only on the remote station side.

Modules/DBGate/en - GFDLMarch 2024OpenSCADA 0.9.7