4.7. Troubleshooting

4.7.1. No Input File

If Replay Service is started but there is no file for it to read from, it will print error messages like the ones below and then exit. It is looking for a database located in a cdr_recording directory inside your current working directory. You can fix this by creating a configuration file that specifies the correct location of your database to replay, or by changing directories to a location that contains your cdr_recording directory that contains a recording.

[/replay_services/default|START] create_connection:caught exception from:
    set_properties:!No valid metadata file found in directory: cdr_recording
[/replay_services/default|START] ROUTERConnection_enable:(adapter=StorageAdapterPlugin, retcode=0: set_properties:!No valid metadata file found in directory: cdr_recording
[/replay_services/default|START] ROUTERDomainRoute_start:!enable Connection
[/replay_services/default|START] ROUTERService_startDomainRoute:!start domain route
[/replay_services/default|START] ROUTERService_createDomainRoute:!start domain route
[/replay_services/default|START] ROUTERService_start:!create domain route
[/replay_services/default|START] RTI_RoutingService_start:!start routing service
main:!!start RoutingService error

4.7.2. Table Not Found Errors

When recording a database with Recording Service, there may be topics that have no associated table, because they were discovered but were filtered out by using the <allow_topic_name_filter> or <deny_topic_name_filter> tags in Topic Group or by defining Topics (that target specific topic names). While the topic will be present in the DCPSPublication table in the discovery file, it won’t have a corresponding table in the user-data files.

If the same topics are not filtered in Replay Service (by using the same <allow_topic_name_filter> or <deny_topic_name_filter> tags, or Topics), then when Replay Service starts it will discover the topics without a table because they are available in the discovery information. When Replay Service attempts to create a stream reader for these topic(s), a failure message will be printed:

ROUTERConnection_createStreamReaderAdapter:(adapter=StorageAdapterPlugin, retcode=0: Function returned NULL)
ROUTERStreamReader_enable:!create stream reader adapter
ROUTERTopicRoute_enableInput:!enable stream reader
ROUTERTopicRoute_processEvent:!enable route input
ROUTERTopicRoute_onConditionTriggered:!process event
create_stream_reader_fwd:SQLiteStorageStreamReader:!Table not found in database files: TopicNotRecorded@0

These messages are harmless, they are just informing you that a table could not be found for the topic (in the example above, TopicNotRecorded).

To get rid of the messages, use the same Topic Group filter expressions or Topics used in Recording Service.

4.7.3. Receiving the data twice

When a Subscriber uses a different typename than the current typename recorded, Replay Service will create two sessions for the same topic.

Since TypeObject is being used, discovery completes correctly, even though there are two different type names.

The behavior in this scenario is that the data for that topic will be received twice. To prevent this, make sure the Subscriber uses the same typename that was used in the recording.