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。

当出现订阅主题重复时,会导致该报错。

注: 即使是对不同节点上具有相同表名的表进行订阅,如果指定了相同的任务名称,仍然会出现该报错。

解决办法

  1. 修改发布表的名字。

  2. 修改 subscribeTable 中的参数 actionName 为另一个不同的字符串。

  3. 取消之前的同名订阅后再进行当前的订阅操作。

注: 在高可用订阅时,可能出现因为高可用订阅进行重连而导致 log 文件中出现警告信息:This dolphindb client has already subscribed to the table [XX] . RefId:S03002。该警告信息表示该订阅已经通过其他方式重建成功。无需额外处理和解决。