Hey,
We currently publish RFA8 DateTimes to users who consume the data via RFA7 clients. This causes problems in these clients.
We understand that there are 2 accepted solutions here in that:
Our consumers are upgraded to RFA8
Our consumers are written to cope with errors that arise from this precision in RFA7
However we have clients unwilling to upgrade to RFA8, and further, are reluctant to make changes at all to their consumers. As such we are investigating the avenue of removing/not publishing RFA8 Times with precision more than millisecond.
So our questions are as follows:
In RFA 8 headers (DateTime.h, Time.h) , setMicrosecond looks to be able to receive 2047 as a blank value, but setting this throws an exception "InvalidUsageException". Why is this?
Is there another method of truncating the timestamp to a maximum of millisecond precision in order to protect downstream consumers which are not ready to consume this precision of timestamp?
Simply leaving the microsecond unset provides us with this error in the downstream client:
MarketPriceClient::processEvent() -InvaidUsageException->Data decoding failed in DataBuffer::getAsString()
For some context, our tests were conducted using the rfa client RDMConsumer.
Many Thanks!