question

Upvotes
Accepted
129 6 14 23

Exception: RSSL_RET_INCOMPLETE_DATA is received, when downloading custom dictionary from TREP

I have developed a provider application to publish internal data in custom fields. The fields have been added to RDMFieldDictionary and enumtype.def used by TREP. Once a RFA consumer application connects to the TREP, and then downloads data dictionaries from TREP, the following error has been generated.

Exception: RSSL_RET_INCOMPLETE_DATA in class ArrayReadIterator in method forth()

I have enabled the RSSL trace message and found that the dictionary response message was incomplete. It ends with the following message which is for field id: -2015. What could be the cause of the issue?

<seriesEntry>
    <elementList flags="0x2 (RSSL_ELF_HAS_SET_DATA)">
        <elementEntry name="FIDS" dataType="RSSL_DT_ARRAY">
            <array itemLength="2" primitiveType="RSSL_DT_INT">
                <arrayEntry data="-2015"/>
            </array>
        </elementEntry>
        <elementEntry name="VALUE" dataType="RSSL_DT_ARRAY">
            <array itemLength="2" primitiveType="RSSL_DT_ENUM">
                <arrayEntry data="0"/>
                <arrayEntry data="2"/>
                <arrayEntry data="4"/>
                <arrayEntry data="8"/>
                <arrayEntry data="16"/>
                <arrayEntry data="32"/>
            </array>
        </elementEntry>
        <elementEntry name="DISPLAY" dataType="RSSL_DT_ARRAY">
            <array itemLength="7" primitiveType="RSSL_DT_ASCII_STRING">
                <arrayEntry data="UNKNOWN"/>
                <arrayEntry data="SPOTOUT"/>
                <arrayEntry data="RIGHSWA"/>
                <arrayEntry data="PDEPOSI"/>
                <arrayEntry data="TFRA(0xfe)(0x05)(0x18)"/>

The custom field: -2015 is below.

RDMFieldDictionary

! TicketDealType
TICKETYPE    "TICKETDEALTYPE"    -2015    NULL    NONE    0    ENUM    1
!

enumtype.def

!
! ACRONYM    FID
! -------    ---
!
TICKETYPE  -2015
!
! VALUE     
DISPLAY   MEANING
! -----      ------   -------
      0    "UNKNOWN"   Unknown                                                
      2       "SPOT"   Spot                                                   
      4   "OUTRIGHT"   Outright                                               
      8       "SWAP"   Swap                                                   
     16    "DEPOSIT"   Deposit      
     32        "FRA"   FRA<br>
treprfarfa-api
icon clock
10 |1500

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

1 Answer

Upvotes
Accepted
11.3k 25 8 13

I have been able to replicate the issue with the field you provided. It seems that TREP encode array of DISPLAY values with a specific fix-width. However, the DISPLAY values in this case have different width, so the array is corrupt.

Normally all values in the DISPLAY column of an enumeration field needs to have the same width, so white spaces need to be filled to display’s value. Below is the modified version of your enum value which could fix the issue.

! ACRONYM    FID
! -------    ---
!
TICKETYPE  -2015
!
! VALUE     
DISPLAY   MEANING
! -----     -------   -------
      0   " UNKNOWN"   Unknown
      2   "    SPOT"   Spot
      4   "OUTRIGHT"   Outright
      8   "    SWAP"   Swap
     16   " DEPOSIT"   Deposit
     32   "     FRA"   FRA
icon clock
10 |1500

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

Click below to post an Idea Post Idea