Hi @Chaitanya.Vishnubhotla
The error
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source)
that you encounter is similar to the problem in this How to connect to TREP using EMA topic. The problem occurs when you connect the EMA API to the ADS older versions that does not provide component version to the API. After EMA connects to older version of TREP, it tries to get TREP component version. If it fails, the exception is thrown.
What is the ADS version that you are using?
If your ADS version is 2.2 or older, they are already end of life and no longer supported, I suggest you upgrade to ADS 3.0 which is a latest version.
I can replicate the same message by using a telnet connects to the EMA Java Interactive Provider example 100 (IProvider.java), and then quit a telnet command. The example shows the same log messages
SEVERE: loggerMsg ClientName: ServerChannelHandler Severity: Warning Text: Received ChannelDown event on client handle 1 Instance Name Provider_1_1 RsslReactor Channel is null Error Id 0 Internal sysError 0 Error Location Reactor.processWorkerEvent Error text Error initializing channel: errorId=-1 text=Error occurred during connection process.loggerMsgEnd
Based on the above log message, the problem seems to happen when the provider application receives a connection from consumer client. What is the consumer application that you are using? Can you re-test by using the EMA Java Consumer example 100 as a consumer client to verify the problem?
Hi @Wasin WaeosriI have used the below example
com.thomsonreuters.ema.examples.training.consumer.series100.example100__MarketPrice__Streaming.Consumer.java class (client) to connect to Reuters servers and get the Market pricing dataBut I got as belowFor server 1:
Error text Error initializing channel: errorId=-1 text=Error occurred during connection process
Error text Error initializing channel: errorId=-1 text=Handshake failed with far end. No more Protocols to try
For server 2:
Please guide me
I can replicate the both messages when setting the Consumer example connects to the SSL publisher which is unsupported by the EMA Java. The EMA Java supports the RSSL connection only, I suggest you configure the host to the RSSL port as following example
consumer = EmaFactory.createOmmConsumer(config.host("<ADS IP>:<RSSL Port>").username("user"));
If the problem still persists after you changed the port to the RSSL port, please give us the server details (server IP, Port, snippet of code that set the connection).
Hi @Wasin Waeosri,I have used the following code for conection
consumer = EmaFactory.createOmmConsumer(config.host("stprtrsp2p:8101").username("721002"));or
consumer = EmaFactory.createOmmConsumer(config.host
("rcortrsp2p:8101").username("721002"));Server detals:
stprtrsp2p
rcortrsp2p
Username
721002
Please help me.
Hi @Chaitanya.Vishnubhotla,
Port 8101 is for legacy SSL connection. As Wasin mentioned, EMA only uses RSSL connection, which should be port 14002. Have you tried it yet?
Hi @Steven Peng and @Wasin Waeosri,I tried with RSSL port 14002 as below:
consumer = EmaFactory.createOmmConsumer(config.host("rcortrsp2p:14002").username("user"));
But I got an exception like this
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at com.thomsonreuters.ema.access.ChannelCallbackClient.reactorChannelEventCallback(ChannelCallbackClient.java:366)
@Chaitanya.Vishnubhotla,
Is your server DACS enabled?
You need to specify a valid DACS user ID in the username() parameter:
Also, do you know the version of your server? I believe
ChannelCallbackClient.java: line 366 is the place where reactorChannelEventCallback display the ADS version information but example 100 is a very simple code and I've never heard anyone has problem with it. If you still have problem, please display the main() method here so we can take a look.
Hi @Wasin Waeosri
Thanks for advice. I reached the MDS team and got the updated servers versions and now I am able to connect to servers.
Hi @steven.peng