S03003
错误代码
S03003
报错信息
All subscriptions to the stream table <xxx> must be canceled before it can be dropped. Call getStreamingStat().pubTables to get the status of all stream tables. RefId: S03003
错误原因
用户尝试用 dropStreamTable
函数或者 drop 语句取消一个流表变量的定义。
流表创建出来之后,可以通过 subscribeTable
函数被订阅。订阅有三种方式:
- 被本节点订阅
- 被其他节点订阅
- 被 API 程序订阅
以上三种情况均会导致流表无法被取消定义,也无法被销毁。
只有所有的订阅都被取消之后,流表才可以被 drop。
解决办法
调用 getStreamingStat
函数检查该当前被订阅的流表:
getStreamingStat().pubTables
可以看到当前流表有哪些订阅者。
同时:
getStreamingStat().pubConns
可以查看当前有哪些发布连接。
确认了有哪些订阅者之后可以依次调用 unsubscribeTable
函数取消订阅。所有订阅都取消之后流表就可以被 drop
了。