S03000

错误代码

S03000

报错信息

To undefine the shared stream table 'xxx', first cancel all subscriptions to it. RefId: S03000

错误原因

用户尝试用 undef 函数取消一个流表变量的定义。

流表创建出来之后,可以通过 subscribeTable 函数被订阅。订阅有三种方式:

  • 被本节点订阅
  • 被其他节点订阅
  • 被 API 程序订阅

以上三种情况均会导致流表无法被取消定义,也无法被销毁。

只有所有的订阅都被取消之后,流表才可以被 undef。

解决办法

调用 getStreamingStat 函数检查该当前被订阅的流表:

getStreamingStat().pubTables

可以看到当前流表有哪些订阅者。

同时:

getStreamingStat().pubConns

可以查看当前有哪些发布连接。

确认了有哪些订阅者之后可以依次调用 unsubscribeTable 函数取消订阅。所有订阅都取消之后流表就可以被 undef 了。