question

Upvotes
Accepted
67 3 1 8

Are fragmented ANSI Page images supported by the ADH cache?

We encode into a standard buffer size of 1490 bytes - to reduce the memory footprint of the app (buffers are pre-allocated) and reduce the need for further packet marshalling.

However we have noticed that When ANSI images are fragmented across two messages only the 2nd part appears to be cached and late joiners only get a partial image.

So we want to know whether:

a) there is an approved way of fragmenting a ANSI page that the ADH cache understands,

b) there is a bug in this processing, or

c) ANSI page fragmentation is simply unsupported, by the ADH/ADS caches.

<!-- End Message (Channel IPC descriptor = 452) -->
<!-- Outgoing Message (Channel IPC descriptor = 452) -->
<!-- Time: 16:24:20:259 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<refreshMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="-11" containerType="RSSL_DT_ANSI_PAGE" flags="0x188 (RSSL_RFMF_HAS_MSG_KEY|RSSL_RFMF_HAS_QOS|RSSL_RFMF_CLEAR_CACHE)" groupId="0" qosDynamic="0" qosRate="1" qosTimeliness="1" dataState="RSSL_DATA_OK" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text=""  dataSize="1441">
    <key  flags="0x7 (RSSL_MKF_HAS_SERVICE_ID|RSSL_MKF_HAS_NAME|RSSL_MKF_HAS_NAME_TYPE)"  serviceId="219" name="APAGE" nameType="1"/>
    <dataBody>
        <ansiPage data="1B5B 3F32 356C 1B5B 3F37 681B 5B6D 1B28 421B 2942 1B5B 3031 3B30 3148 1B5B 324B
            1B5B 3031 3B30 3148 0F1B 5B3E 303B 316D 3031 3030 3030 3030 3031 3131 3131 3131
            3131 3132 3232 3232 3232 3232 3233 3333 3333 3333 3333 3334 3434 3434 3434 3434
            3435 3535 3535 3535 3535 3536 3636 3636 3636 3636 3637 3737 3737 3737 3737 3731
            1B5B 3032 3B30 3148 1B5B 324B 1B5B 3032 3B30 3148 3032 3334 3536 3738 3930 3132
            3334 3536 3738 3930 3132 3334 3536 3738 3930 3132 3334 3536 3738 3930 3132 3334
            3536 3738 3930 3132 3334 3536 3738 3930 3132 3334 3536 3738 3930 3132 3334 3536
            3738 3932 1B5B 3033 3B30 3148 1B5B 324B 1B5B 3033 3B30 3148 3033 1B5B 3033 3B37
            3948 3033 1B5B 3034 3B30 3148 1B5B 324B 1B5B 3034 3B30 3148 3034 1B5B 3034 3B37
            3948 3034 1B5B 3035 3B30 3148 1B5B 324B 1B5B 3035 3B30 3148 3035 1B5B 3035 3B37
            3948 3035 1B5B 3036 3B30 3148 1B5B 324B 1B5B 3036 3B30 3148 3036 1B5B 3036 3B32
            3048 4745 4444 5F42 4944 1B5B 3036 3B34 3048 302E 301B 5B30 363B 3739 4830 361B
            5B30 373B 3031 481B 5B32 4B1B 5B30 373B 3031 4830 371B 5B30 373B 3230 4847 4544
            445F 4153 4B1B 5B30 373B 3430 4830 2E30 1B5B 3037 3B37 3948 3037 1B5B 3038 3B30
            3148 1B5B 324B 1B5B 3038 3B30 3148 3038 1B5B 3038 3B32 3048 5453 595F 3259 1B5B
            3038 3B34 3048 302E 301B 5B30 383B 3739 4830 381B 5B30 393B 3031 481B 5B32 4B1B
            5B30 393B 3031 4830 391B 5B30 393B 3230 4854 5359 5F35 591B 5B30 393B 3430 4830
            2E30 1B5B 3039 3B37 3948 3039 1B5B 3130 3B30 3148 1B5B 324B 1B5B 3130 3B30 3148
            3130 1B5B 3130 3B32 3048 4745 4444 5F44 425F 5350 4152 455F 3120 2020 2020 301B
            5B31 303B 3739 4831 301B 5B31 313B 3031 481B 5B32 4B1B 5B31 313B 3031 4831 311B
            5B31 313B 3230 4847 4544 445F 4442 5F53 5041 5245 5F32 2020 2020 2031 1B5B 3131
            3B37 3948 3131 1B5B 3132 3B30 3148 1B5B 324B 1B5B 3132 3B30 3148 3132 1B5B 3132
            3B32 3048 4745 4444 5F44 425F 5350 4152 455F 3320 2020 2020 321B 5B31 323B 3739
            4831 321B 5B31 333B 3031 481B 5B32 4B1B 5B31 333B 3031 4831 331B 5B31 333B 3230
            4847 4544 445F 4442 5F53 5041 5245 5F34 2020 2020 2033 1B5B 3133 3B37 3948 3133
            1B5B 3134 3B30 3148 1B5B 324B 1B5B 3134 3B30 3148 3134 1B5B 3134 3B32 3048 4745
            4444 5F42 4944 5F53 495A 4520 2020 2020 2020 3130 3030 1B5B 3134 3B37 3948 3134
            1B5B 3135 3B30 3148 1B5B 324B 1B5B 3135 3B30 3148 3135 1B5B 3135 3B32 3048 4745
            4444 5F41 534B 5F53 495A 4520 2020 2020 2020 3130 3030 1B5B 3135 3B37 3948 3135
            1B5B 3136 3B30 3148 1B5B 324B 1B5B 3136 3B30 3148 3136 1B5B 3136 3B32 3048 4745
            4444 5F54 5854 5F53 5041 5245 5F31 2020 2020 611B 5B31 363B 3739 4831 361B 5B31
            373B 3031 481B 5B32 4B1B 5B31 373B 3031 4831 371B 5B31 373B 3230 4847 4544 445F
            5458 545F 5350 4152 455F 3220 2020 2062 1B5B 3137 3B37 3948 3137 1B5B 3138 3B30
            3148 1B5B 324B 1B5B 3138 3B30 3148 3138 1B5B 3138 3B32 3048 4745 4444 5F54 5854
            5F53 5041 5245 5F33 2020 2020 631B 5B31 383B 3739 4831 381B 5B31 393B 3031 481B
            5B32 4B1B 5B31 393B 3031 4831 391B 5B31 393B 3230 4847 4544 445F 5458 545F 5350
            4152 455F 3420 2020 2064 1B5B 3139 3B37 3948 3139 1B5B 3230 3B30 3148 1B5B 324B
            1B5B 3230 3B30 3148 3230 1B5B 3230 3B32 3048 4355 5252 454E 4359 1B5B 3230 3B34
            3048 4155 441B 5B32 303B 3739 4832 301B 5B32 313B 3031 481B 5B32 4B1B 5B32 313B
            3031 4832 311B 5B32 313B 3230 4854 494D 5F54 524B 5F31 1B5B 3231 3B34 3048 301B
            5B32 313B 3739 4832 311B 5B32 323B 3031 481B 5B32 4B1B 5B32 323B 3031 4832 321B
            5B32 323B 3739 4832 321B 5B32 333B 3031 481B 5B32 4B1B 5B32 333B 3031 4832 331B
            5B32 333B 3739 4832 331B 5B32 343B 3031 481B 5B32 4B1B 5B32 343B 3031 4832 3430
            3030 3030 3030 3131 3131 3131 3131 3131 3232 3232 3232 3232 3232 3333 3333 3333
            3333 3333 3434 3434 3434 3434 3434 3535 3535 3535 3535 3535 3636 3636 3636 3636
            36"/>
    </dataBody>
</refreshMsg>

<!-- End Message (Channel IPC descriptor = 452) -->
<!-- Outgoing Message (Channel IPC descriptor = 452) -->
<!-- Time: 16:24:20:260 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<refreshMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="-11" containerType="RSSL_DT_ANSI_PAGE" flags="0xC8 (RSSL_RFMF_HAS_MSG_KEY|RSSL_RFMF_REFRESH_COMPLETE|RSSL_RFMF_HAS_QOS)" groupId="0" qosDynamic="0" qosRate="1" qosTimeliness="1" dataState="RSSL_DATA_OK" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text=""  dataSize="305">
    <key  flags="0x7 (RSSL_MKF_HAS_SERVICE_ID|RSSL_MKF_HAS_NAME|RSSL_MKF_HAS_NAME_TYPE)"  serviceId="219" name="APAGE" nameType="1"/>
    <dataBody>
        <ansiPage data="3637 3737 3737 3737 3737 3234 1B5B 3036 3B34 3048 302E 3020 2020 2020 2020 1B5B
            3037 3B34 3048 302E 3020 2020 2020 2020 1B5B 3038 3B34 3048 302E 3020 2020 2020
            2020 1B5B 3039 3B34 3048 302E 3020 2020 2020 2020 1B5B 3130 3B34 3048 3020 2020
            2020 2020 2020 1B5B 3131 3B34 3048 3120 2020 2020 2020 2020 1B5B 3132 3B34 3048
            3220 2020 2020 2020 2020 1B5B 3133 3B34 3048 3320 2020 2020 2020 2020 1B5B 3134
            3B34 3048 3130 3030 2020 2020 2020 1B5B 3135 3B34 3048 3130 3030 2020 2020 2020
            1B5B 3136 3B34 3048 6120 2020 2020 2020 2020 1B5B 3137 3B34 3048 6220 2020 2020
            2020 2020 1B5B 3138 3B34 3048 6320 2020 2020 2020 2020 1B5B 3139 3B34 3048 6420
            2020 2020 2020 2020 1B5B 3230 3B34 3048 4155 4420 2020 2020 2020 1B5B 3231 3B34
            3048 3020 2020 2020 2020 2020 1B5B 3E30 6D"/>
    </dataBody>
</refreshMsg>
elektronrefinitiv-realtimetrepinfrastructureADHcachingpage
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

Upvotes
Accepted
1.2k 23 28 42

Unfortunately not, per the RDM documentation:

All solicited or unsolicited refresh messages in the Market Price domain must be atomic. The Market Price domain does not allow for multi-part refresh use. 

Taken from §6.2.2 Market Price Refresh Message Use.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Thanks Steve, I had missed that.