在IBM DB2通用数据库中实现会话间的警告
2009-06-26 16:15:01 来源:WEB开发网等待并读取特定警告:alerts.waitone
目标:存储过程等待并从指定警告名中读取警告消息。
相关性:delay() UDF
输入参数:警告名(最大长度为 60 个字符)
输出参数:SQLCODE、SQLSTATE、ERROR_MESSAGE(以备扩展使用)、警告消息和超时状态。
授权:将 EXECUTE 授权给 PUBLIC
功能行为:该存储过程首先检查指定警告名是否存在以及其标志是否设置为“Y”。这个标志意味着此会话可以从一个注册警告接收警告消息,因为另一个会话已经发送了一条消息,而此会话正在查找来自那个会话的消息。
这个存储过程等待警告消息。如果该警告没有消息,它将等待一个预定义的时间间隔然后再检查。缺省轮询时间间隔是 5 秒,但是如果超时输入参数设置为少于 5 秒或不是 5 秒的倍数,则轮询时间间隔将设置为 1 秒。阅读完消息以后,此存储过程清除消息字段并将标志重新设置为“N”以使其不会阻塞其它会话。现在其它会话可以使用注册警告发送消息。如果成功的话返回 0;否则返回 -1。
等待并读取任何警告消息:alerts.waitany
目标:等待并从任意警告名中读取警告消息的存储过程。
相关性:delay() UDF
输入参数:超时值,按秒计。
输出参数:SQLCODE、SQLSTATE、ERROR_MESSAGE(以备扩展使用)、发出消息的警告名、消息和超时状态。
授权:将 EXECUTE 授权给 PUBLIC
功能行为:waitone 和 waitany 存储过程的差别在于,waitany 从 任何警告名中查找消息并将该警告名作为输出参数返回。waitone 从指定警告名查找消息。
这两个存储过程的另一个不同就是轮询时间间隔。对于 waitany,默认的轮询时间间隔设置为 1 秒并且在每个轮询周期中按指数级增加。如果超时时间间隔小于某个轮询周期,则在开始此轮询周期之前,此存储过程将以该超时状态结束。如果成功的话返回 0;否则返回 -1。
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››DB2 pureScale 实战
更多精彩
赞助商链接