Best practices when integrating Database Integration Service and LabVIEW together
There are a some restrictions to take into account when integrating RTI Database Integration Service (DIS) and RTI DDS Toolkit for LabVIEW together. These are the following:
The database limitations, see Appendix B on DIS User's Manual. National Instrument (NI) Cluster types are mapped to IDL types using the rules described in Section 5.2 “Data Representation Mapping” of the DIS User's Manual. If the Cluster type is very complex, it may cause that the resulting SQL mapping exceeds some of the limitations - e.g., the number of columns or the length of the column name. Some of these limitations can be addresses by using the <idl_member_prefix_max_length> <idl_member_suffix_max_length> settings in DIS.
It is necessary considering that some IDL types are not supported in DIS, such as unbounded types or mutable types. As well as the arrays of structs are not supported by the RTI Connext DDS LabVIEW Toolkit.
- The third limitation comes imposed by the database engine itself. For instance, in MySQL it is not possible to have keys longer than 767 bytes. All the strings published by LabVIEW are 1024 bytes, so as a consequence we should not use strings as keys if we want to integrate it with DIS MySQL. As an a side note here, the 767 bytes limitation in MySQL only affects to key columns, so if the LabView string in the NI Cluster is not part of the sample Key, it is supported out of the box. Moreover, when using MySQL with InnoDB database engine, we can use the database setting innodb_large_prefix to support keys up to 3072 bytes. Note that this setting will require to configure correctly also the MySQL settings innodb_default_row_format (requires MySQL 5.7.9 or newer) and innodb_file_format to make it work. This approach allows us to store string-keyed LabVIEW samples in MySQL with DIS without the need of RTI Routing Service.