请选择 进入手机版 | 继续访问电脑版

赵耀的知识库

 找回密码
 立即注册
搜索
热搜: 报盘 状态 失败
查看: 3697|回复: 0

备机同步线程也在从未确认流中读数据发给主

[复制链接]

421

主题

428

帖子

2622

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2622
发表于 2021-4-29 15:05:17 | 显示全部楼层 |阅读模式
在测试7*24改造的时候发现,正常启动后没问题,当切一次流之后会出现备机会把收到的消息再发给主机的情况。
经过查阅查阅代码:只有主备机连接的时候,主机的同步线程才会挂接未确认流。而备机同步线程不会挂接的。也就是数据是单向同步的。
void CCompServer::HotlineAttachFlow(DWORD nStartId)
{
        m_pHotlineSession->AttachFlow(m_pFlowFactory->GetUnConfirmedFlow(), nStartId);
}

而我在切流的时候,把主备机的挂接流都重置了。也就是备机也挂接了未确认流,所以也就会出现上述现象。
解决:
在切的时候判断下当前的状态,如果不是备机才会重置挂接流。是备机的话不会重置。
bool CCompServer::RetSetFlow(DWORD nStartId)
{
        m_dateTrading = (long)m_pFlowFactory->GetCommPhaseNo();
        if (m_nowState != CS_SECONDARY)
        {
                HotlineAttachFlow(nStartId);//主机才会挂载未确认流,备机不挂载
        }
        PublishTradeSeries();
        return true;
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则