Discover Refinitiv
MyRefinitiv Refinitiv Perspectives Careers
Created with Sketch.
All APIs Questions & Answers  Register |  Login
Ask a question
  • Questions
  • Tags
  • Badges
  • Unanswered
Search:
  • Home /
  • Elektron /

For a deeper look into our Elektron API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

avatar image
Question by ye.li · Nov 27, 2020 at 06:31 PM · elektronrefinitiv-realtimeelektron-sdkrdm

exceed RWF len

I am using the EMA to develop an application posting data to contribution channel. During the test, I got an error saying the encoded data length exceeds RWF length for Fid HST_CLOSE.

HST_CLOSE "HISTORIC CLOSE" 21 NULL PRICE 17 REAL64 7

Questions:

1. In the RDM dictionary, that fid has RWF len = 7. How should I interpret the len so that I can avoid the error?

2. The DeniedBySource code means the whole message will be denied by the source, right?

3. For the field length (e.g. 17 for fid HST_CLOSE), does it mean the field should have no more than 17 digits in it? Does the decimal point counted in the length?

The value sent out in PostId=9, HST_CLOSE=29979.9

[WARN] 2020-11-22 07:18:02.032896 EST (1610610432):Application::PostMsg Error: AckId: 9, NackCode: DeniedBySource

[WARN] 2020-11-22 07:18:02.032948 EST (1610610432):Application::PostMsg Error: AckId: 9, Text: Encoded data length exceeds RWF length Fid Id [21] [Failed to apply update. Cache build failed]

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.

7 Replies

  • Sort: 
avatar image
Best Answer
Answer by Mike Slade · Dec 08, 2020 at 09:08 AM

Hi @moragodkrit.chumsri_1,

Another example is the following:

addRealFromDouble(22,100000000000000.9, ExponentNeg1Enum)

[WARN] 2020-12-07 10:58:54.354297 EST (3345233664):Application::PostMsg Error: AckId: 74106, Text: Encoded data length exceeds RWF length Fid Id [21] [Failed to apply update. Cache build failed] 

In this example we cannot use a better hint to represent the value.

The value can be represented as a Real using the EMA API, why is it rejected when contributing?

Comment

People who like this

0 Show 0 · 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
Answer by moragodkrit.chumsri_1 · Dec 01, 2020 at 05:22 AM

@ye.li

  • Are you using EMA C++ and posting the message to the RCC backend?

The value you are posting should not exceed the length of REAL64.

  • Can you share the snippet of codes you used to create a posting message?
    And please turn on RSSL Tracing logs to see the actual message EMA sends and receives from the server.

To enable the tracing, please add the XmlTraceToFile parameter for the Channel that you wish to enable XML Trace for. The file will be in "emaLog_<pid>.log" format.

e.g.

<Channel>

<Name value="Channel_1"/>

<ChannelType value="ChannelType::RSSL_SOCKET"/>

...

<XmlTraceToFile value="1"/> 

</Channel>

Comment

People who like this

0 Show 0 · 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
Answer by ye.li · Dec 01, 2020 at 06:30 PM

@moragodkrit.chumsri_1

Yes, I am using EMA C++ to post into the Contribution Channel.

Here is the code i use. The upstream data is in a different price type. Price precision will tell us how many digits after the decimal point we need to keep. we then map it to the corresponding OmmReal Exponent Enum.

mamaPricePrecision pp = mPrice.getPrecision();
if( _precisionMap.find(pp) != _precisionMap.end() )
{
fList.addRealFromDouble( it->getOutputTag(), mPrice.getValue(), _precisionMap[pp] );
std::ostringstream px;
px << mPrice.getValue();
_builders[ind]->append(rField, px.str());
}


Comment

People who like this

0 Show 0 · 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
Answer by moragodkrit.chumsri_1 · Dec 02, 2020 at 03:17 AM

@ye.li

I can't find the message "Encoded data length exceeds RWF length" from EMA source codes so that I believe that it comes from the infra backend; in this case, it should be the RCC or Contribution Channel. The problem seems to relate to the double value and exponent enum you set in the post message. Therefore I need to see the RSSL Trace log generated by the app when you found the issue. It should help us verify what data the application publishes to the RCC at the time problem occurs.

I also did a quick test with the RCC example we provided on the Dev Portal.

I change the codes to use .addRealFromDouble to send the Real64 data with the sample double vale 29979.9 and below are my snippet codes.

.addRealFromDouble(22, 29979.9, OmmReal::ExponentNeg1Enum)


I test the app, and it can post data to the server without the issue. And below is the raw data EMA send to the server.

<fieldEntry fieldId="22" data="0D04 9317"/>

0D = 13 = ExponentNeg1Enum

and 049317 = 299799.


  • Do you have an application log contains the value you pass to the addRealFromDouble function?

We can compare it with the raw data from the RSSL Trace. What I can help is to verify the data which send from the app. If it's the correct value, that should be the problem on the RCC server-side, and you might need to contact the support team who takes care of the Contribution Channel server to further investigate the issue.

Comment

People who like this

0 Show 0 · 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
Answer by Mike Slade · Dec 04, 2020 at 03:20 PM

Hi,

The following is the TRACE log we get when sending out HST_CLOSE.

[Message] feed=refinitivsource=PB-NAMR-DEVsymbol=MSTEST001.PUBHSTCLSDATE=04 DEC 2020HST_CLOSE=29979.9TRDPRC_1=12345publish_time=2020-12-04 09:58:03.475806 ESTcontrib_sym=TEST0009=JPMLmapSource=EMEA_EDG_INDEX_CHAIN_REUTERShash=15222191812757905843PostID=290796
<!-- Outgoing Message (Channel IPC descriptor = 15) -->
<!-- Time: 9:58:03:476 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<genericMsg domainType="RSSL_DMT_SYSTEM" streamId="4" containerType="RSSL_DT_MSG" flags="0x19 (RSSL_GNMF_HAS_EXTENDED_HEADER|RSSL_GNMF_HAS_SEQ_NUM|RSSL_GNMF_MESSAGE_COMPLETE)" seqNum="290797" dataSize="79">
    <extendedHeader data="0100"/>
    <dataBody>
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
        <postMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="6" containerType="RSSL_DT_MSG" flags="0x62 (RSSL_PSMF_HAS_POST_ID|RSSL_PSMF_POST_COMPLETE|RSSL_PSMF_ACK)" postId="290796" postUserId="0" postUserAddr="0.0.0.0" dataSize="57">
            <dataBody>
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
                <updateMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="6" containerType="RSSL_DT_FIELD_LIST" flags="0x8 (RSSL_UPMF_HAS_MSG_KEY)" updateType="0 (RDM_UPD_EVENT_TYPE_UNSPECIFIED)" dataSize="29">
                    <key  flags="0x2 (RSSL_MKF_HAS_NAME)"  name="TEST0009=JPML"/>
                    <dataBody>
                        <fieldList flags="0x8 (RSSL_FLF_HAS_STANDARD_DATA)">
                            <fieldEntry fieldId="79" data="040C 07E4"/>
<fieldEntry fieldId="21" data="0401 10AA 64E6 2600"/>
                            <fieldEntry fieldId="6" data="0B00 BC5E A9"/>
                        </fieldList>
                    </dataBody>
                </updateMsg>
            </dataBody>
        </postMsg>
    </dataBody>
</genericMsg>
<!-- End Message (Channel IPC descriptor = 15) -->

This results in the following application log:

[WARN] 2020-12-04 09:58:03.531388 EST (3143907072):Application::PostMsg Error: AckId: 290796, Text: Encoded data length exceeds RWF length Fid Id [21] [Failed to apply update. Cache build failed]

Code (substituting tag,value,and hint variables):

addRealFromDouble( 21, 29979.9, OmmReal::ExponentNeg10Enum);
Comment

People who like this

0 Show 0 · 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
Answer by moragodkrit.chumsri_1 · Dec 08, 2020 at 06:11 AM

@ye.li

It looks like the problem comes from the MagnitudeType you set in the addRealFromDouble function. It should be ExponentNeg1Enum rather than ExponentNeg10Enum.

Not sure why you set it to ExponentNeg10Enum in this case?


Comment

People who like this

0 Show 0 · 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
Answer by moragodkrit.chumsri_1 · Dec 09, 2020 at 03:05 AM

@Mike Slade

The value you set in EMA seems to not over 8 bytes and still covered by the Real data type. I think it should be the problem from the caching feature on the infra side. I also try the value, and it looks like the status text was generated by the infra. Basically, EMA provides a method for the user to set value and its magnitude type and then pass it to the back end, so it does not know a limitation on the specific back end.


I would suggest you contact the RCC team directly to verify the issue on the infra side and confirm its cause.

You can open a new support ticket via https://my.refinitiv.com/content/mytr/en/productsupport.html

And select the following product



opencase.png (13.3 KiB)
Comment

People who like this

0 Show 0 · 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.

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 >
10 People are following this question.

Related Questions

How can I know which legs of a strategy are being bought and sold?

32 bit fields in the Elektron RDMFieldDictionary are changing to 64 bit

What is the rule you create guid for news in MRN in Elektron?

How to identify RDM Upate Events from header?

MRN Webinar Jan 31: Do we need to establish direct connection with TR Elektron or do we need to use some middle layer component i.e. a broker ?

  • Copyright
  • Cookie Policy
  • Privacy Statement
  • Terms of Use
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Alpha
  • App Studio
  • Block Chain
  • Bot Platform
  • 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
  • Intelligent Tagging
  • Legal One
  • Messenger Bot
  • Messenger Side by Side
  • ONESOURCE
    • Indirect Tax
  • Open Calais
  • Open PermID
    • Entity Search
  • Org ID
  • PAM
    • PAM - Logging
  • ProView
  • ProView Internal
  • Product Insight
  • Project Tracking
  • RDMS
  • 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
  • TRKD
  • TRTH
  • Thomson One Smart
  • Transactions
    • REDI API
  • Velocity Analytics
  • Wealth Management Web Services
  • Workspace SDK
    • Element Framework
    • Grid
  • World-Check Data File
  • 中文论坛
  • Explore
  • Tags
  • Questions
  • Badges