question

Upvotes
Accepted
54 1 1 4

EMA reconnection

Team您好!

针对EMA 连接RTO,如果TCP连接断开,如何捕获状态报错,进而客户重新创建连接/new consumer ?

之前问过类似问题,后台同事总说参考ex330_Login_Streaming demo, 但客户还是不知道怎么捕获。

请协助!

如下是客户问题,如方便我可以组织会议讨论一下。

1.如何捕获tcp 断连异常

2.捕获断连异常如何重新连接

3.是否可以设置tcp重连次数

谢谢!

ema-api
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.

Upvote
Accepted
49.4k 123 44 61

@gang.chen1

You need to add the following code into ex450_MP_QueryServiceDiscovery to get the login status messages.

            LoginReq loginReq = EmaFactory.Domain.createLoginReq();
            consumer.registerClient(loginReq.message(), appClient);

1657765119891.png

Then, it will get the login status when the channel is down and up.

StatusMsg
    streamId="1"
    domain="Login Domain"
    state="Open / Suspect / None / 'channel down'"
    name="..."
    nameType="1"
StatusMsgEnd
...
...
StatusMsg
    streamId="1"
    domain="Login Domain"
    state="Open / Ok / None / 'channel up'"
    name="..."
    nameType="1"
StatusMsgEnd



1657765119891.png (20.6 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
49.4k 123 44 61

@ gang.chen1

Typically, EMA can reconnect to the server when it detects the disconnection. The number of reconnection attempts can be configured via the EMA configuration (ReconnectAttemptLimit ).

1657620480565.pngHowever, there is an exception when EMA retrieves the login with the CLOSED status from the server. In this case, EMA will not reconnect to the server. To detect this scenario, please refer to the answer on this thread.



1657620480565.png (43.2 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.

Thanks Jirapongse !

Could i ask a Chinese support and have a discussion meeting with client directly ?


Hi Jirapongse,

I am using demo ex450_MP_QueryServiceDiscovery to connect RTO directly, and disconnect the network manually. But I can't receive the login status(domain: 1)

Also I used demo series300.ex330_Login_Streaming to connect local TREP directly, and disconnect the network manually. In this senario, I can receive the login status(domain: 1) meta.txt

Do you know what caused it and how could i received login status under RTO?

thanks

meta.txt (37.7 KiB)