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!
Hi,
I will have to run through the example to see where either the instruction was invalid or where you went astray.
Irwin
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.
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?
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.
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
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
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
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!
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
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.
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
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.