Code Generator 2: Generate Code Faster 1

Are you tired of waiting for all your code to be generated? Would you like to customize the generated output? Code Generator 2 is your solution. This new code generator is already available in your RTI Connext DDS 5.1.0 installation as an Early Access Release (EAR).

Code Generator 2 is written completely in Java and uses Apache Velocity (VLT) templates to define the generated output. This allows you to customize the generated code for different languages by modifying those templates. Check the predefined set of variables available in RTI_rtiddsgen_template_variables.xlsx, located in the Code Generator 2 documentation.

This new design also improves performance compared to the current code generator. The VLT templates are parsed faster than the XSLT ones (used by the current code generator). When generating code for a large IDL, Code Generator 2 is up to 10 times faster than the current code generator.

If you want to invoke the code generator multiples times with different parameters or IDL files, Code Generator 2 provides a server mode that further improves its performance. When used in server mode, Code Generator 2 runs as a native executable that connects through TCP with a server instance of the code generator. The server instance is initiated automatically the first time that the code generator is invoked and it is automatically stopped after an inactivity period. As a result, the JVM is only loaded once when the server is started, the VLT templates are compiled once and the following invocations to Code Generator 2 are resolved faster.


Do you want to try Code Generator 2? Just run the rtiddsgen2 or the rtiddsgen2_server (for running in server mode) scripts with the usual parameters. If you need more information about supported and new features available in Code Generator 2, check out its Getting Started Guide.

Recording Service 5.1: Faster, More Scalable and More Concurrent than Ever! Reply

You’re facing a problem in your DDS system: you want to use Recording Service 5.0 to record high throughput data coming in from sensor networks. The database has to be accessed by other applications while Recorder is continuously recording. Your topics are updated frequently and Recorder has to write at such speeds that it locks some of your other applications out of the database. When you open the database, you realize that although your types are small, the tables are big and full of columns you don’t really need. What can you do??

Good news!

RTI Recording Service 5.1 was released a month ago with one of the biggest feature releases across the entire suite, including Recorder, Replay, Recording Console and Converter.

There were three motivations behind the updates to Recording Service 5.1 (RS):

  1. The OMG XTypes Specification, which required integration with XTypes, including Mutability and types with optional members.

  2. Enhanced scalability and performance, which resulted in additional configurability of the SampleInfo and metadata fields being recorded, and a reduction in new default column sets.

  3. Improvements in data concurrency, especially in systems where the database is accessed by other applications while Recorder is recording.

Your types evolve? No problem. Recorder records them, Replay replays them

Systems evolve and as they evolve, so do their data and data types. Recorder and Replay support the XTypes specification, with mutable types and types with optional members. Recorder and Replay allow you to choose what version of a type to record or replay, by providing the types via XML. A new feature that easily allows mapping of topic names and type versions in the configurations.


Recorder and Replay administration types and topics are now also using X-Types. From this point forward (starting with 5.1), if the types evolve in the future, legacy applications will be able to administer the tools.

Configurability for enhanced scalability and performance

One of the coolest new features in Recorder is the ability for the user to select the SampleInfo and metadata fields to be included in user topic tables, as well as which fields to store in the discovery tables. Also now, by default, only a few extra fields are recorded apart from those of the user data types – just the necessary fields for Replay and Converter to work with the database file. See section 4.5.1 of Recording Service User’s Manual for details and examples.

These new settings and feature enable a boost in the performance and scalability of Recorder. It can now record more user data fields and fewer irrelevant fields. Compared with version 5.0, the size of the database can be significantly reduced in cases where the user types are small- to medium-sized.

Boosting concurrent access to the database while Recorder is recording

There are new features that enable improved concurrent access to the database while it’s being recorded. Highlights include:

  • Ability to specify SQLite pragmas upon creation of the database file (and subsequent segments).
    Among other things, this gives the ability to change SQLite from journal mode to WAL mode. Write-Ahead Logging offers improved concurrency because readers of the database don’t block writers and a writer doesn’t block readers.

  • Online indexing.
    Recorder can create and maintain indexes on the database while recording. Indexes can be established for any SampleInfo fields or for user data fields (when recording in deserialized format). When other applications need efficient access to certain tables, and the access is based on the content in certain fields in those tables, online indexing can really improve the overall performance of the system. However, remember there is a tradeoff: Recorder’s performance will decrease as the number of indexes to maintain increases. Check out section 4.8.2 of our RTI Recording Service User’s Manual 5.1 for tips and tricks for indexing in SQLite databases.

And more…

There are lots of new features, improvements and cool changes I haven’t covered here, including automatic path separator detection in Replay, a new and faster deserialization algorithm for Converter and topic filters in QoS settings.

Check out the RTI Recording Service 5.1 Release Notes to get a sense of all this new stuff!


Features and Enhancements and Support – Oh My! Reply

connext dds 5.1.0_wordCloud

As engineers we all know that product releases are no joke. The making of a great product is fueled by hard work, and lots of it. It takes teams of people working together to make something bigger and better than any one of them could do alone. The results generated by all of that hard work can be downright inspiring and impressive. But do you know what my favorite part of the release is? It’s the feeling when we ship it to the public. When all of the ducks are in order. Every person in the company, irrespective of their group, has contributed something necessary to getting the product to that point. Seeing it all come together? That’s my favorite part. I love it.

Did I mention that RTI Connext DDS 5.1.0 was released 2 weeks ago? It was!

To help ensure your transition to the new version is as seamless as possible, as well as keep you informed on the new features and enhancements you’ll see in version 5.1.0, I thought a post that served as a cheat-sheet of sorts might be helpful. We have put a lot into this release and I’m sure that you’ll love some of the great new features such as our new Built-in QoS Profiles and additional support for DDS-XTypes . For up-to-date product information and more information about the release, don’t forget to visit our Community Portal follow us on twitter .

I hope you enjoy 5.1.0. We certainly enjoyed all of the work we did bringing it to you.

Connext DDS 5.1 – Download. 


Community Newsletter – Special Edition. A Special Edition newsletter, focused solely on the 5.1 release, was sent out to all registered community members. You can find a copy of it here (although, you all should be registered community members so you would have already received and read this!).

Free Webinar + Slides/Replay Available.

photo (2)

David (left) and Jan (standing,right) during their webinar on February 27th.

David (our VP of PM) and Jan (VP of Engineering) presented a webinar where they dove into the new release and it’s capabilities – it was pretty awesome. If you missed out, don’t worry! You can view the replay (here), the slides (here), and if you have any questions about the webinar content – or the release! – you can post them on the Community Portal forum. We’d love to hear from you and help you out!

5.1 Blogs. A handful of posts were put together to inform you of some new features and capabilities in this release.

Additional content on the Community Portal.

Also be sure to check out the Connext DDS landing page on our main website. It’s been updated with all kinds of info on the release, including a video.