question

Upvotes
Accepted
2 2 0 3

Failed to set compression threshold on channel Channel_3

loggerMsg

TimeStamp: 21:57:01.966

ClientName: ChannelCallbackClient

Severity: Error

Text: Failed to set compression threshold on channel Channel_3

Consumer Name Consumer_3_1

RsslReactor 0x0xcd6210

RsslChannel 0x0xcd6210

Error Id -1

Internal sysError 0

Error Location /local/jenkins/workspace/ESDKCore_RCDEV/OS/OL7-64/rcdev/source/esdk/Cpp-C/Eta/Include/Reactor/rtr/rsslReactorChannel.h:156

Error text </local/jenkins/workspace/ESDKCore_RCDEV/OS/OL7-64/rcdev/source/esdk/Cpp-C/Eta/Impl/Transport/rsslSocketTransportImpl.c,10375> Error: 1004 rsslSocketIoctl() failed, could not set the compression threshold mark to <30>, must be equal or greater than 300 bytes

loggerMsgEnd


The code is built using Elektron-sdk-1.4.0.L1.linux. It was working fine until this error started showing whenever i try to run the code now. Is there any configuration setting that i need to change in EmaConfig.xml or in the source files to correct this behaviour.
Also i did not mody any files between working and non-working state of the code.

elektronrefinitiv-realtimeelektron-sdkrrtema-apielektron-message-apicompression
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.

Upvotes
Accepted
56.3k 145 45 65

@saurav1

I got the same error when using the channel_3.

loggerMsg
    TimeStamp: 14:32:05.053
    ClientName: ChannelCallbackClient
    Severity: Error
    Text:    Failed to set compression threshold on channel Channel_3
        Consumer Name Consumer_3_1
        RsslReactor 0x0000026F2B3620E0
        RsslChannel 0x0000026F2B3620E0
        Error Id -1
        Internal sysError 0
        Error Location D:\Jenkins\workspace\ESDKCore_RCDEV\OS\VS150-64\rcdev\source\esdk\Cpp-C\Eta\Include\Reactor\rtr/rsslReactorChannel.h:139
        Error text <D:\Jenkins\workspace\ESDKCore_RCDEV\OS\VS150-64\rcdev\source\esdk\Cpp-C\Eta\Impl\Transport\rsslSocketTransportImpl.c,10410> Error: 1004 rsslSocketIoctl() failed, could not set the compression threshold mark to <30>, must be equal or greater than 300 bytes
loggerMsgEnd

However, if I added <CompressionThreshold value="300"/> in the Channel_3, the problem has been solved.

        <Channel>
            <Name value="Channel_3"/>
            <ChannelType value="ChannelType::RSSL_ENCRYPTED"/>
            <CompressionType value="CompressionType::None"/>
            <GuaranteedOutputBuffers value="5000"/>
            <CompressionThreshold value="300"/>
            <!-- EMA discovers a host and a port from EDP-RT service discovery for the specified location 
                 when both of them are not set and the session management is enable. -->
            <Location value="us-east"/>
            <EnableSessionManagement value="1"/>
            <EncryptedProtocolType value="EncryptedProtocolType::RSSL_SOCKET"/>
            <!-- ObjectName is optional: defaulted to ""                                                -->
            <ObjectName value=""/>
        </Channel>

I am using ESDK1.5 on Windows.

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.

Thank you for the help. i modified CompressionType field to LZ4 along with setting threshold, that's why it didn't work earlier.

Upvotes
56.3k 145 45 65

@saurav1

From the error, you may use the LZ4 compression type. The compression threshold of the LZ4 compression type must be equal to or greater than 300.

You can change the value of the compression threshold with the following configuration.

<CompressionThreshold value="300"/>

Please add this configuration to the Channel_3 channel in the EmaConfig.xml file. If it doesn't solve the problem, please share your configuration file (EmaConfig.xml).



1592801800481.png (59.0 KiB)
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.

Upvotes
2 2 0 3

EmaConfig.txtThis is the configuration i am using. The compression type is set to none in the config.

<CompressionType value="CompressionType::None"/>

If i use LZ4 compression with appropriate threshold as mentioned above i get different errors

loggerMsg
    TimeStamp: 02:32:28.009
    ClientName: EmaConfig
    Severity: Error
    Text:    convertEnum has an implementation for enumType [CompressionType] but no appropriate conversion for value [RSSL_COMP_LZ4]
loggerMsgEnd

loggerMsg
    TimeStamp: 02:32:29.626
    ClientName: ChannelCallbackClient
    Severity: Success
    Text:    Received ChannelUp event on channel Channel_3
        Instance Name Consumer_3_1
        Connected component version: ads3.3.3.L1.linux.tis.rrg 64-bit
loggerMsgEnd

loggerMsg
    TimeStamp: 02:32:32.851
    ClientName: SingleItem
    Severity: Error
    Text:    Internal error: rsslReactorSubmitMsg() failed in SingleItem::submit( RsslRequestMsg* )
        RsslChannel 0x(nil)
        Error Id -29
        Internal sysError 0
        Error Location /local/jenkins/workspace/ESDKCore_RCDEV/OS/OL7-64/rcdev/source/esdk/Cpp-C/Eta/Impl/Reactor/Watchlist/wlItem.c:697
        Error Text Domain type does not match existing request.
loggerMsgEnd

loggerMsg
    TimeStamp: 02:32:32.852
    ClientName: Consumer_3_1
    Severity: Error
    Text:    Failed to open or modify item request. Reason: RSSL_RET_INVALID_DATA. Error text: Domain type does not match existing request.
loggerMsgEnd

onInvalidUsage callback function
Error text: Failed to open or modify item request. Reason: RSSL_RET_INVALID_DATA. Error text: Domain type does not match existing request.
RecordHandler::process_record



emaconfig.txt (18.5 KiB)
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.