S03002
错误代码
S03002
报错信息
Subscription to table [XX] already exists on this node. Change an actionName or cancel the existing subscription first. RefId:S03002
错误原因
在同一个节点上对相同表名的表进行订阅,并且指定了与之前订阅该表时相同的任务名称。
具体而言,当使用 subscribeTable
函数进行订阅时,DolphinDB 会使用本机的
host,port,别名,订阅指定的表名 tableName 和订阅指定的任务名称 actionName 来组成一个唯一的订阅主题
topic。
当出现订阅主题重复时,会导致该报错。
注: 即使是对不同节点上具有相同表名的表进行订阅,如果指定了相同的任务名称,仍然会出现该报错。
解决办法
-
修改发布表的名字。
-
修改
subscribeTable
中的参数 actionName 为另一个不同的字符串。 -
取消之前的同名订阅后再进行当前的订阅操作。
注: 在高可用订阅时,可能出现因为高可用订阅进行重连而导致 log 文件中出现警告信息:This dolphindb
client has already subscribed to the table [XX] .
RefId:S03002。该警告信息表示该订阅已经通过其他方式重建成功。无需额外处理和解决。