Text: Failed to set compression threshold on channel Channel_3
Consumer Name Consumer_3_1
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
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.
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.
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.
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).
EmaConfig.txtThis is the configuration i am using. The compression type is set to none in the config.
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