VastbaseE100

基于开源技术的HTAP数据库管理系统。性能优异,稳定可靠,提供诸多专属领域特性。

Menu

LISTEN

LISTEN — 监听一个通知

语法格式

LISTEN channel

说明

LISTEN 在名为 channel的通知通道上将当前会话注册为侦听器。如果当前会话已注册为此通知通道的侦听器,则不执行任何操作。

无论何时通过此会话或连接到同一数据库的另一个会话调用命令 NOTIFY channel,都会通知当前正在该通知通道上侦听的所有会话,并且每个会话将依次通知其连接的客户端应用程序。

可以使用 UNLISTEN命令为给定通知通道取消注册会话。会话结束时会自动清除会话的监听注册。

客户端应用程序必须用于检测通知事件的方法取决于它使用的Vastbase E100应用程序编程接口。使用libpq库,应用程序将 LISTEN 作为普通SQL命令发出,然后必须定期调用函数 PQnotifies以查明是否已收到任何通知事件。其他接口(如libpgtcl)提供了处理通知事件的更高级方法;实际上,使用libpgtcl,应用程序员甚至不应该直接发出LISTEN 或 UNLISTEN 。有关更多详细信息,请参阅所用接口的文档。

NOTIFY包含对 LISTEN 和 NOTIFY 的使用的更广泛的讨论。

参数说明

  • channel

    通知通道的名称(任何标识符)。

注意事项

LISTEN 在事务提交时生效。如果在稍后回滚的事务中执行 LISTEN 或 UNLISTEN,则正在侦听的通知通道集不会更改。

已执行 LISTEN 的事务无法为两阶段提交做好准备。

示例

从psql配置并执行listen / notify序列:

LISTEN virtual;
NOTIFY virtual;
Asynchronous notification "virtual" received from server process with PID 8448.