为什么持久化流表之后,重启server 后流表还是丢失了

colNames_trade = `Tkr`nTime`nIndex`nPrice`nVolume`nTurnover`chBSFlag`chOrderKind`chFunctionCode`nAskOrder`nBidOrders

colTypes_trade = [SYMBOL,INT,INT,INT,INT,INT,CHAR,CHAR,CHAR,INT,INT]

enableTableShareAndPersistence(streamTable(20000000:0,colNames_trade,colTypes_trade),"trade_stream", true, true, 20000000)

通过以上代码建立流数据表和持久化,持续有数据流入。
重启server后,defined(`trade_stream,SHARED)返回false,也无法通过GUI的界面看到流表的存在。
请先 登录 后评论

1 个回答

Draco Chen

流数据表是在内存中的,当重启server 后,内存中的数据会丢失,为了防止流表数据丢失和流表占用内存过大,通常使用enableTableShareAndPersistence enableTablePersistence 函数。

enableTableShareAndPersistence 函数是把流数据表共享,并持久化到硬盘上。

enableTablePersistence 函数是把共享的流数据表持久化到硬盘上。

当server 重启后,可以再次执行enableTableShareAndPersistence 和enableTablePersistence 函数从磁盘加载到内存。即找回了原有数据。

如果流表较多较复杂,可以将相关脚本写在startup.dos中,每次server 启动时执行。相关内容可以参考startup文档



请先 登录 后评论