Discover Refinitiv
MyRefinitiv Refinitiv Perspectives Careers
Created with Sketch.
All APIs Questions & Answers  Register |  Login
Ask a question
  • Questions
  • Tags
  • Badges
  • Unanswered
Search:
  • Home /
  • TREP APIs /
  • UPA /
avatar image
REFINITIV
Question by Steven McCoy · May 18, 2016 at 04:33 PM · upacache

totalCountHint incorrectly set by API for multi-part refresh

The documentation for RsslMap indicates totalCountHint should contain an approximate total for the entire map across a multi-part response. When specifying a hint of zero or none at all the library automatically fills in the count of each single refresh instead. Is this expected?

People who like this

0 Show 0
Comment
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

3 Replies

  • Sort: 
avatar image
REFINITIV
Best Answer
Answer by jirapongse.phuriphanvichai · May 19, 2016 at 03:56 AM

totalCountHint is optional and API should not be able to set its value because it couldn't know the total number of entries across a multi-part response sent by the application.

I believe that the application see the incorrect value because it doesn't verify its presence before accessing it. In UPA, the application should check a RSSL_MPF_HAS_TOTAL_COUNT_HINT flag before accessing the value of totalCountHint.

Comment
Steven McCoy

People who like this

1 Show 1 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

avatar image
REFINITIV
Steven McCoy ♦♦ · May 19, 2016 at 03:57 PM 0
Share

The hint count is being set as I have fed the message through the value-add payload cache.

avatar image
REFINITIV
Answer by jirapongse.phuriphanvichai · May 24, 2016 at 06:11 AM

From my test, I found that the value-add payload cache can update totalCountHint properly for the multi-part refresh message.

I sent these three part refresh messages and apply those message to cache.

<refreshMsg domainType="RSSL_DMT_SYMBOL_LIST" streamId="400" containerType="RSSL_DT_MAP" flags="0x11A8 (RSSL_RFMF_HAS_MSG_KEY|RSSL_RFMF_SOLICITED|RSSL_RFMF_HAS_QOS|RSSL_RFMF_CLEAR_CACHE|RSSL_RFMF_HAS_PART_NUM)" groupId="0" partNum="0" qosDynamic="0" qosRate="1" qosTimeliness="1" dataState="RSSL_DATA_OK" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text="Item Refresh Completed"  dataSize="24">
    <key  flags="0x3 (RSSL_MKF_HAS_SERVICE_ID|RSSL_MKF_HAS_NAME)"  serviceId="1" name="_UPA_ITEM_LIST"/>
    <dataBody>
        <map flags="0x0" countHint="0" keyPrimitiveType="RSSL_DT_BUFFER" containerType="RSSL_DT_NO_DATA" >
            <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="TRI" >
            </mapEntry>
            <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="RES-DS" >
            </mapEntry>
            <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="MING" >
            </mapEntry>
        </map>
    </dataBody>
</refreshMsg>

<refreshMsg domainType="RSSL_DMT_SYMBOL_LIST" streamId="400" containerType="RSSL_DT_MAP" flags="0x10A8 (RSSL_RFMF_HAS_MSG_KEY|RSSL_RFMF_SOLICITED|RSSL_RFMF_HAS_QOS|RSSL_RFMF_HAS_PART_NUM)" groupId="0" partNum="1" qosDynamic="0" qosRate="1"qosTimeliness="1" dataState="RSSL_DATA_OK" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text="Item Refresh Completed"  dataSize="26">
    <key  flags="0x3 (RSSL_MKF_HAS_SERVICE_ID|RSSL_MKF_HAS_NAME)"  serviceId="1" name="_UPA_ITEM_LIST"/>
    <dataBody>
        <map flags="0x0" countHint="0" keyPrimitiveType="RSSL_DT_BUFFER" containerType="RSSL_DT_NO_DATA" >
            <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="MING1" >
            </mapEntry>
            <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="MING2" >
            </mapEntry>
            <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="MING3" >
            </mapEntry>
        </map>
    </dataBody>
</refreshMsg>

<refreshMsg domainType="RSSL_DMT_SYMBOL_LIST" streamId="400" containerType="RSSL_DT_MAP" flags="0x10E8 (RSSL_RFMF_HAS_MSG_KEY|RSSL_RFMF_SOLICITED|RSSL_RFMF_REFRESH_COMPLETE|RSSL_RFMF_HAS_QOS|RSSL_RFMF_HAS_PART_NUM)" groupId="0" partNum="2"qosDynamic="0" qosRate="1" qosTimeliness="1" dataState="RSSL_DATA_OK" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text="Item Refresh Completed"  dataSize="19">
    <key  flags="0x3 (RSSL_MKF_HAS_SERVICE_ID|RSSL_MKF_HAS_NAME)"  serviceId="1" name="_UPA_ITEM_LIST"/>
    <dataBody>
        <map flags="0x0" countHint="0" keyPrimitiveType="RSSL_DT_BUFFER" containerType="RSSL_DT_NO_DATA" >
            <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="MING4" >
            </mapEntry>
            <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="MING5" >
            </mapEntry>
        </map>
    </dataBody>
</refreshMsg>

The following is the message that I got from cache.

<refreshMsg domainType="RSSL_DMT_SYMBOL_LIST" streamId="400" containerType="RSSL_DT_MAP" flags="0x1E8 (RSSL_RFMF_HAS_MSG_KEY|RSSL_RFMF_SOLICITED|RSSL_RFMF_REFRESH_COMPLETE|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="Item Refresh Completed"  dataSize="60">
    <key  flags="0x3 (RSSL_MKF_HAS_SERVICE_ID|RSSL_MKF_HAS_NAME)"  serviceId="1" name="_UPA_ITEM_LIST"/>
    <dataBody>
        <map flags="0x8 (RSSL_MPF_HAS_TOTAL_COUNT_HINT)" countHint="8" keyPrimitiveType="RSSL_DT_BUFFER" containerType="RSSL_DT_NO_DATA" >
            <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="MING" >
            </mapEntry>
            <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="MING1" >
            </mapEntry>
            <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="MING2" >
            </mapEntry>
            <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="MING3" >
            </mapEntry>
            <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="MING4" >
            </mapEntry>
            <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="MING5" >
            </mapEntry>
            <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="RES-DS" >
            </mapEntry>
            <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="TRI" >
            </mapEntry>
        </map>
    </dataBody>
</refreshMsg>

The total count hint is set properly.

Comment
Steven McCoy

People who like this

1 Show 1 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

avatar image
REFINITIV
Steven McCoy ♦♦ · May 24, 2016 at 10:09 AM 0
Share

But can I extract a multi-part refresh from a single large payload cache?

avatar image
REFINITIV
Answer by jirapongse.phuriphanvichai · May 25, 2016 at 05:07 AM

Refer to UPAValueAddDevGuide.pdf, you can get a multi-part from the cache.

9.3.3.1 Multi-Part Retrieval

...

For multi-part retrieval, the application makes a series of calls to rsslPayloadEntryRetrieve to get the OMM container in fragments (e.g. a sequence of maps are retrieved which together contain the entire set of map entries for the OMM container). In this usage, the optional RsslPayloadCursorHandle is required to maintain the state of the multi-part retrieval.

Comment
Steven McCoy

People who like this

1 Show 1 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

avatar image
REFINITIV
Steven McCoy ♦♦ · May 25, 2016 at 09:40 AM 0
Share

Wow, great, thank you very much.

Watch this question

Add to watch list
Add to your watch list to receive emailed updates for this question. Too many emails? Change your settings >
4 People are following this question.

Related Questions

RsslMap not sent as encoded

UPA app: Request Rejected: Request message payload not supported on non-private streams

Error Encoding Batch Market Item Request

UPA Port Error

For interactive provider on Redhat Linux 6/7 upa8.0.0.L1.linux.rrg, is there a limit to the configuration parameter, maxfragmentsize? In our config value is 64K (65536). However, on connection ADH, we the value down-graded to default.

  • Feedback
  • Copyright
  • Cookie Policy
  • Privacy Statement
  • Terms of Use
  • Careers
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Alpha
  • App Studio
  • Block Chain
  • Bot Platform
  • Calais
  • Connected Risk APIs
  • DSS
  • Data Fusion
  • Data Model Discovery
  • Datastream
  • Eikon COM
  • Eikon Data APIs
  • Electronic Trading
    • Generic FIX
    • Local Bank Node API
    • Trading API
  • Elektron
    • EMA
    • ETA
    • WebSocket API
  • Legal One
  • Messenger Bot
  • Messenger Side by Side
  • ONESOURCE
    • Indirect Tax
  • Open PermID
    • Entity Search
  • Org ID
  • PAM
    • PAM - Logging
  • ProView
  • ProView Internal
  • Product Insight
  • Project Tracking
  • Refinitiv Data Platform
    • Refinitiv Data Platform Libraries
  • Rose's Space
  • Screening
    • Qual-ID API
    • Screening Deployed
    • Screening Online
    • World-Check One
    • World-Check One Zero Footprint
  • Side by Side Integration API
  • TR Knowledge Graph
  • TREP APIs
    • CAT
    • DACS Station
    • Open DACS
    • RFA
    • UPA
  • TREP Infrastructure
  • TRIT
  • TRKD
  • TRTH
  • Thomson One Smart
  • Transactions
    • REDI API
  • Velocity Analytics
  • Wealth Management Web Services
  • World-Check Data File
  • Explore
  • Tags
  • Questions
  • Badges