StreamState::NON_STREAMING

When do a consumer get StreamState::NON_STREAMING? Can u get it when u subscribe to a ric (say IBM.N)?

Best Answer

  • Jirapongse
    Answer ✓

    The consumer can get StreamState::NON_STREAMING when using snapshot request. In EMA, the consumer can set interestAfterRefresh(false) to send snapshot request.

    consumer.registerClient( ReqMsg().serviceName( "ELEKTRON" ).name( "IBM.N" ).interestAfterRefresh(false), client );

    After that, the stream state of the response will be Non-streaming.

    Item Name: IBN.N
    Service Name: ELEKTRON
    Item State: Non-streaming / Ok / None / 'All is well'
    Fid: 1 Name: PROD_PERM value: 213
    Fid: 2 Name: RDNDISPLAY value: 153
    Fid: 3 Name: DSPLY_NAME value: BARCLAYS LON
    Fid: 5 Name: TIMACT value: 08:20:00:000:000:000

Answers

  • I am getting error message as service name not found , any suggestions ?

    Item Name: XXXX
    Service Name: <not set>
    Item State: Open / Ok / None / 'Refresh Completed'
    Handle: 31721744 Closure: 0x1

    Item Name: IBM.N
    Service Name: ELEKTRON
    Item State: Closed / Suspect / Source unknown / 'Service name of 'ELEKTRON' is not found.'
    <!-- Outgoing Message (Channel IPC descriptor = 9) -->
    <!-- Time: 14:58:18:442 -->
    <!-- rwfMajorVer="14" rwfMinorVer="0" -->
    <closeMsg domainType="RSSL_DMT_LOGIN" streamId="1" containerType="RSSL_DT_NO_DATA" flags="0x0" dataSize="0">

  • consumer.registerClient( ReqMsg().serviceName( "ELEKTRON" ).name( "IBM.N" ).interestAfterRefresh(false), client ); 

    I'm getting service name not found ,. Any suggestions

  • @yajnasteju

    From the response, you got the XML tracing. Please provide the full XML tracing. We can know the available service names from the XML tracing.

    You can enable XML tracing by using <XmlTraceToStdout> or <XmlTraceToFile> under the channel (Channel_1) of the default Consumer (Consumer_1). The EMA configuration file is EmaConfig.xml.

    <Channel>
    <Name value="Channel_1"/>
    <ChannelType value="ChannelType::RSSL_SOCKET"/>
    <CompressionType value="CompressionType::None"/>
    <GuaranteedOutputBuffers value="5000"/>
    <ConnectionPingTimeout value="30000"/>
    <TcpNodelay value="1"/>
    <Host value="localhost"/>
    <Port value="14002"/>
    <XmlTraceToStdout value="1"/>
    <XmlTraceToFile value="1"/>
    </Channel>
  • @jirapongse.phuriphanvichai

    I have the Xml Tracing , which node should i look into for the list of services ? the file is too huge to go through



  • @yajnasteju

    The available services are in the refresh message of RSSL_DMT_SOURCE domain.

    <refreshMsg domainType="RSSL_DMT_SOURCE" streamId="2" containerType="RSSL_DT_MAP" flags="0x168 (RSSL_RFMF_HAS_MSG_KEY|RSSL_RFMF_SOLICITED|RSSL_RFMF_REFRESH_COMPLETE|RSSL_RFMF_CLEAR_CACHE)" groupId="0" dataState="RSSL_DATA_OK" streamState="RSSL_STREAM_OPEN" code="RSSL_SC_NONE" text=""  dataSize="3206">

    Each mapEntry will contain the service information. You can find the service name from the "Name" elementEntry.

    <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="2115" >

    <filterList containerType="RSSL_DT_ELEMENT_LIST" countHint="0" flags="0x0"> <filterEntry id="1" action="RSSL_FTEA_SET_ENTRY" flags="0x0" containerType="RSSL_DT_ELEMENT_LIST">

    <elementList flags="0x8 (RSSL_ELF_HAS_STANDARD_DATA)">

    <elementEntry name="Name" dataType="RSSL_DT_ASCII_STRING" data="API_ELEKTRON_EPD_RSSL"/>

  • jirapongse.phuriphanvichai

    thanks a lot , it is working