For a deeper look into our Elektron API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
1 0 0 0

Micro cortes y token invalido

Buenas tardes,


Tenemos dos problema al realizar la conexion al stream de datos de mercado.


Por un lado no recibimos datos durante intervalos de pocos minutos durante la madrugada habitualmente. No se cae la conexion y no tenemos ningun log de error. Pero no recibimos ningun dato.


El intervalo de fallo suele ser entre las 22:00 y las 7:00.


Es problema solo nos ocurre con CADUSD y MXNUSD. Probando en diferentes maquinas nos ocurre lo mismo y el mismo sistema esta funcionando sin ningun problema con otros pares. Por lo que no parece un error ni de la maquina donde corre ni de codigo.

-----

Por otro lado, al pedir un nuevo token para actualizar la conexion de datos, a veces recivimos un token que nos indica el sistema como ya no activo.


Ya posteamos una pregunta con el mismo problema al cual voy a referenciar aqui: https://community.developers.refinitiv.com/questions/93537/recived-token-not-working.html


Las soluciones sugeridas en esa preguntas ya han sido aplicadas sin exito.



Nuestro sistema corre sobre un EC2 de AWS xlarge, el sistema esta en python. No adjuntamos logs de error, salvo los de la pregunta anterior pues son los mismos para el segundo problema y para el primero no hay ningun tipo de informacion de error.


Un saludo y gracias

tick-datarequest-token
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.

1 Answer

Upvotes
Accepted
52.5k 134 44 63

@miguel.alvarez

According to the problem statement, I assumed that you have two or more instances of the application running at the same time.

As I know, an account can't be used concurrently so you need to have a separate account for each instance.

For the first problem did the application still receive ping messages from the server? If the connection is alive, the application should be able to get ping messages every 20 seconds (Step 5) from the server. If the application didn't receive any messages including ping messages from the server, the application could consider that the channel is inactive. Then, it can cut the connection and then recover the connection and subscriptions.

For the second problem, the token can expire in 10 minutes so the application needs to get a new token (Step 6.1) and then send the new token with the login request (Step 6.2) to the server, as shown below.

1664426622152.png

However, if the application properly handles steps 6.1 and 6.2 and the server still cut the connection, please contact the RTO support directly to help you verify the issue on the server side. You can submit a ticket to the RTO support team via the my.refinitiv.com website.



1664426622152.png (45.8 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.

Hello,


Thank you for your answer.


At this moment we have 2 instances using the same account and token, we share the token between the instances when one refresh it. About that, the connection is active because we receive the ping and send the pong to the server, but we do not get any data. Also we have noticed that we get a delay in the sending data, we get ticks from previous minutes after that. For example we get ticks with time 10:03 at minute 10:05.

This use to happen only/specially with USD/CAD and USD/MXN.


We do not think it is a performance issue because we have swapped machines, and we get the same problem only on those ticks. Also our machines are in AWS same regions as yours and they are really under used in terms on computing power and memory.


About the second one, we do refresh the token as you say, the problem is, for some reason this token is rejected as not active in step 3. This happens milliseconds after we refresh the token, so it seems like the token we receive it is inactive since we get it.


Thank you in advice,


@miguel.alvarez

Do you mean that each instance sends a username and password to get an access token (both instances perform the first step)? If yes, the refresh token will be invalidated by another instance.

What API and programming language are you using?