Database Integration may not work if the database format is UTF-8

Note: Applies to RTI Connext DDS 5.0.0 and above.

Database Integration Service may fail silently if the database character set is UTF-8 (by default in MySQL 5.6). As a consequence the communication between the database service and the Database Integration Service daemon (rtirtc_mysql) is not established and the updates on the publication and subscription tables are not propagated. You may detect this behavior by checking if the table  RTIRTC_TBL_INFO has not been created.

 

You can check the current database character set with the following SQL statement:

SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '<dbname>';

 

To fix this situation you need to specify the latin1 character set. There are several ways to do this:

Method 1

Change the default character set of the database used by Database Integration Service with the following steps:

  • Stop the Database Integration Service daemon.
  • Run the following SQL statement to change the database character set:  ALTER DATABASE DEFAULT CHARACTER SET latin1;
  • Delete all the Database Integration Service metatables: RTIDDS_PUBLICATIONS, RTIDDS_SUBSCRIPTIONSRTIRTC_LOG and RTIRTC_TBL_INFO.
  • Start the Database Integration Service daemon.

Method 2

Comment out the following lines or change them to “latin1” inside the file my.ini of your home directory or MySQL installation directory.

default-character-set=utf8
character-set-server=utf8

 

The MySQL service should be restarted after changing the values. Also, the database should be recreated after restarting:

    • drop database <dbname>;
    • create database <dbname>;
Keywords: