I've tried today the recording and playback tools, I am having issues in starting the sink_driven_src with the xml as input.
These are the last traces when run in verbose mode:
No instrument name found in status. No instrument name found in status. Parsing XML element "key"... flags : 0x3 (RSSL_MKF_HAS_SERVICE_ID|RSSL_MKF_HAS_NAME) name : IBM.N serviceId : 1 Parsing XML element "dataBody"... Parsing XML element "fieldList"... flags : 0x8 (RSSL_FLF_HAS_STANDARD_DATA) Parsing XML element "fieldEntry"... data : 0C0F 96 fieldId : 22 Failed: rsslEncodeFieldEntry ,return value = "RSSL_RET_UNSUPPORTED_DATA_TYPE: Failure: The data type is unsupported.(-24)"...
I've used the standard IProv100 when recording data with the rmdsTestClient, and these are the commands I've used to start the infra tools:
rmdsTestClient.exe -S DIRECT_FEED -ef ric-list.txt -h localhost -p 14002 -ct rssl -u user -rf 8 -obf output-binary.dat sink_driven_src.exe -S DIRECT_FEED -bdf output-binary.dat –U 1 –N 14002 -K -ik -v [all fine with the above] rmdsTestClient.exe -S DIRECT_FEED -ef ric-list.txt -h localhost -p 14002 -ct rssl -u user -rf 8 -of output-xml.dat sink_driven_src.exe -S DIRECT_FEED -Q output-xml.dat –U 1 –N 14002 -K -ik -v
Also the ric-list.txt just contains the 6|IBM.N entry.
The documentation says the following:
"If the data was captured from a service called ELEKTRON_EDGE then it must be replayed on the sink_driven_src as the same"
In the case of the IProv100, the provider just claims to be the service that was requested by the consumer, so in my case this requirement seems to be satisfied.
Could anyone help me to understand what's going on?
So, now that I know more, I think there are two options:
Either you can use the infra tools, compiled and built, to replay some recorded, or canned data, from a recording.
We provide some some canned data and instructions, Canned Data, and then you can run your own consumer against this simulated provider publishing canned data.
The article I have mentioned describes the complete process in detail. You will only be using the replay functionality, no recording via rmdstestclient, the recorded data is provided.
Or you can build and run an example provider, it will create and publish some made-up data, such as Provider 100.
Both ways will work for testing. Hope the explanation helps.
Looks like you are trying to record the data from your infrastructure, and then to replay it back.
One can record or can data from a service, that is available from one's infrastructure, and the connecting user is permissioned for.
I.e. service DIRECT_FEED is usually an example name for a service, please use a real available to you service instead, for example ELEKTRON_EDGE, ELEKTRON_DD or hEDD.
Looks like you are trying to record and to replay at the same time. Would need to first record the data, then would be preferable to first examine the recorded data visually, (possible if recorded into an XML file), and next to replay it.
Please refer to this helpful article, describing the process:
Thank you for the reply.
I've not access to an actual TREP with real services, is it possible to simulate the existence of a service with the given EMA samples? This is what I tought the IProv100 was doing with the following line:
event.getProvider().submit( RefreshMsg().name( reqMsg.getName() ).serviceName( reqMsg.getServiceName() /* this will copy the received DIRECT_FEED service name*/) ... etc
About the last point, that is just a formatting error of the forum which concatenated the two lines, I run the two tools separately in the way you would expect.