database integration service

13 posts / 0 new
Last post
Offline
Last seen: 4 months 2 weeks ago
Joined: 05/05/2020
Posts: 6
database integration service

Hi,

 

I followed the instructions in the getting started manual(Chapter 3), but after step 9 of section 3.10 Storing Samples from Publishers, Database Integration Service to does not create a user table named “Example” to store my published sample.

The QOS is copy and paste from the <NDDSHOME>\resource\xml\RTI_REAL_TIME_CONNECT.xml and have updated the <mysql_connection> section in the QOS.

 

Any help will be appreciated!

irwin's picture
Offline
Last seen: 2 months 6 days ago
Joined: 08/14/2010
Posts: 42

Hi,

  I will have to run through the example to see where either the instruction was invalid or where you went astray.

                                     Irwin

irwin's picture
Offline
Last seen: 2 months 6 days ago
Joined: 08/14/2010
Posts: 42

Hi,

The directions say:

"This entry directs Database Integration Service to create a user table named “Example” and to start

storing samples published with topic “Example MyType” and data type “MyType” in Domain 0."

   From that maybe you did not create or start the dataBase Integration service correctly. Are you sure that it is running?

Also note step: You can specify a different file using the command line option, -cfgFile

That means that you should pass your concig file to it. Did you do that? I would also rename file.

 

Offline
Last seen: 4 months 2 weeks ago
Joined: 05/05/2020
Posts: 6

Hi irwin, thanks for your reply.

I have renamed the cfg file and included -cfgFile with the renamed cfg file location into the command to run DataBase Integration service, but does not create a user table named “Example” to store my published sample?

Have you ran through the example and the service successfully create a user table named “Example” to store published sample?

Offline
Last seen: 4 months 2 weeks ago
Joined: 05/05/2020
Posts: 6

By the way DataBase Integration service should have connected with mysql with the correct cfg file, since after i ran DataBase Integration service, mysql will auto generate 2 tables (rtidds_publications and rtidds_subscriptions). Just that when i create a "Example" table record into the rtidds_subscriptions as per the instruction stated, the "Example" table did not auto generated despite my dds publisher app have been running to publish msg periodically.

irwin's picture
Offline
Last seen: 2 months 6 days ago
Joined: 08/14/2010
Posts: 42

Hi,

  You got me. I did not run the Database Integration example. I will do that. I will use my Windows 10 with RTIDDS 6.0.1. I thought I try the easy possibility first. Sincere apploogies.

 

                                                               Irwin

irwin's picture
Offline
Last seen: 2 months 6 days ago
Joined: 08/14/2010
Posts: 42

Hi,

  Well I ran the entire test case. I have one issue on step 9:

mysql> insert into RTIDDS_PUBLICATIONS (table_owner, table_name, domain_id, topic_name, type_name) values('test', 'Example', 0, 'Example MyType', 'MyType');
ERROR 1062 (23000): Duplicate entry 'test-Example-0-Example MyType' for key 'rtidds_publications.PRIMARY'

With that I do see the Example.db being created. Cause UNKNOWN.

However all other thing worked correctly.

 

                          Irwin

irwin's picture
Offline
Last seen: 2 months 6 days ago
Joined: 08/14/2010
Posts: 42

Hi,

   As I said, I ran the entire getting started. As you noted, the database Example was not visable. It just said that it was created internally. If you continue as I did you will see that it all functions corectly. The error I showed you the othere day was because I initialized the table twice, ergo that error. The getting started  doc will be updated to clarify that the database is internal to mySQL.

                            Irwin

 

                                                                         Irwin

Offline
Last seen: 4 months 2 weeks ago
Joined: 05/05/2020
Posts: 6

Hi Irwin,

 

Thanks for your reply!

 

According to Chap 3, Section 3.10, Step 10:

After running MyType_publisher application, we can view the contents of the table ("Example" which supposed created by service according to the record entry to "RTIDDS_SUBSCRIPTIONS" tables)

The sql command:

mysql> select * from Example;

However i receive the error msg: "ERROR 1146: Table 'test.example' doesn't exist"

 

Therefore the error showed that the "example" table didn't created as database integration service supposed to. 

Did you have the above error msg as well?

 

Thanks!

 

 

 

Offline
Last seen: 4 months 2 weeks ago
Joined: 05/05/2020
Posts: 6

Hi,

 

Managed to resolve the issue by following the method 1 in https://community.rti.com/kb/database-integration-may-not-work-if-database-format-utf-8

 

 

Offline
Last seen: 4 months 2 weeks ago
Joined: 05/05/2020
Posts: 6

Hi,

I have another question: is there any way to retrieve the content of the table from mySQL via RTI DDS API?

 

So far the material i read is about using DDSDataReader::read()/take() to receive callback upon any changes in the table based on rtidds_publications table.

The reason using rtidds_publications is not suitable for my use case as DDSDataReader is using global space to store the content from mySQL table:

- Using take(), the record will be removed after taken.

- Using read(), the changes of the tables will not be obivous as it maintained the whole content of 

 

I am looking to retrive the content of the table directly from mySQL via RTI DDS API instead of using sql command. 

irwin's picture
Offline
Last seen: 2 months 6 days ago
Joined: 08/14/2010
Posts: 42

Hi,

   I would suggest using the topic_query. Topic query allow a subscriber to view the witers history. If the writer is transient_local it maintains it total current cache.

Document:

RTI_ConnextDDS_CoreLibraries_UsersManual.pdf Chapter 23 Topic Queries

KB Article and example:

https://community.rti.com/glossary/topic-query

Our distribution example:

<...>\Documents\rti_workspace\6.0.1\examples\connext_dds\c++\hello_world_topic_query

                      Irwin

Offline
Last seen: 2 months 2 hours ago
Joined: 05/27/2020
Posts: 1

Hi, 

 I am having the same issue where I followed all the steps in the Getting Started Guide. I am able to launch the Database Integration Service and the tables rtidds_publications, rtidds_subscriptions, and rtirtc_tbl_info are being created. The database uses ansi-quotes and the latin1 charset. But for some reason after following step 9 in section 3.10, the Example table is not being generated. I have the MyType_publisher running and writing data.