Login Page - Create Account

Support Board


Date/Time: Wed, 05 Mar 2025 19:35:25 +0000



Malformed DTC EncodingResponse

View Count: 546

[2022-01-16 12:21:05]
User322148 - Posts: 17
If I send an EncodingRequest to the historical data port of the SierraChart DTC server (v 2345 rev 40737M), I get the following response (from WireShark)

0b 00 07 00 08 08 1a 03 44 54 43

Hence:
len = 11
msg type = 7

From DTCProtocol.h

struct s_EncodingResponse
{
  uint16_t Size;
  uint16_t Type;
  int32_t ProtocolVersion;
  EncodingEnum Encoding; // which is uint32_t
  char ProtocolType[4];

.....
}

Which I make to be 16 bytes.

Why is the server sending 11 bytes in its response?
Notably, there's missing /incorrect data and "DTC" is not \0 terminated.

This doesn't seem to be documented behaviour.

The same message to the other port gets a reply as expected.

Thanks
[2022-01-16 14:28:59]
Sierra Chart Engineering - Posts: 104368
There could not be any problem on the server side. We just simply do not know precisely what you are doing, and the actual data. There could not be a problem with this. This functionality is used hundreds of thousands of times every single day without issue.

You are in a better position to determine the problem rather than us. You know exactly what you are doing. An encoding request can only be used at the very start of a historical data connection.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2022-01-16 21:57:04
[2022-01-16 16:05:52]
User322148 - Posts: 17
Thanks for replying (especially on a Sunday).

This is right at the start of a new connection on port 11098 for Historical Data. No other data has been sent.

Wireshark capture of Encoding Request:

0000 10 00 06 00 08 00 00 00 04 00 00 00 44 54 43 00 ········ ····DTC·

Wireshark capture of the Encoding Response:

0000 0b 00 07 00 08 08 1a 03 44 54 43 ········ DTC

The message coming back should not be length 0x0b, it is stating a size which is not documented.

I have no problem whatsoever on the Listening Port 11099.

I'm not in a better position, because if the encoding request is correct, which it looks to be, the server should not return that message. In fact, it should never send a message type 0x07 with length 0x0B, regardless of what junk someone fires at it. It should *always* be 0x10. I have attached a Wireshark PCAP file that shows the above behaviour.

I'd be delighted to be proved wrong, but I don't think I am.
Private File
[2022-01-16 16:59:49]
User322148 - Posts: 17
If I send the Encoding Request as a protobuf message, again it works fine. I would not have have expected this, since the first message is supposed to be binary.
Anyway, this does work.
[2022-01-16 19:43:53]
Sierra Chart Engineering - Posts: 104368
We think we understand what the problem is.

You should not be doing an encoding request because what we think you have done is you have set Global Settings >> Sierra Chart Server Settings >> DTC Protocol Server >> Encoding to "Google Protocol Buffers"

In which case, the encoding response will always be encoded using protocol buffers and there is no point with sending an encoding request.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2022-01-16 20:03:50]
User322148 - Posts: 17
Yes, that is set that way.

Thank you

To post a message in this thread, you need to log in with your Sierra Chart account:

Login

Login Page - Create Account