Home Comments

Long blocking time when connecting to busy replica group after upgrade to ICE 3.7.5

raycrayraycray Member Ray ChengProject: Electronic Trading
edited August 6 in Comments

Hi,

I have upgraded from ICE 3.7.1 to 3.7.5 (with c++11 features too) and experienced long queue up time when connecting to a busy replica group. I have a replica group which work as Pricing calculators, and I have 2 server applications start almost at the same time and connect to it. I found that when the first server connected and sent lots of request, the second server will be blocked in below code until the queue up tasks completed. But in previous version (3.7.1) it could "connect" and return immediately. Please kindly advice any workaround for this.

CalcNodeEndpoint endpoint{ _replicaGroup };
auto comm = _iceHandler.comm();
auto obj = comm->stringToProxy(endpoint.objectId());
auto proxy = Ice::checkedCast<slice::CalcNodePrx>(obj);
_calcNodePrx = Ice::checkedCast<slice::CalcNodePrx>(proxy->ice_connectionCached(false));
Tagged:

Comments

  • raycrayraycray Member Ray ChengProject: Electronic Trading
    edited August 6

    after adding more lots I found the blocking code is
    auto proxy = Ice::checkedCast<slice::CalcNodePrx>(obj);

    And I have reviewing my code it was originally in c++98 as below:

    auto proxy = slice::CalcNodePrx::uncheckedCast(obj);
    _calcNodePrx = slice::CalcNodePrx::uncheckedCast(proxy->ice_connectionCached(false));
    
Sign In or Register to comment.