在IBM DB2通用数据库中实现会话间的警告
2009-06-26 16:15:01 来源:WEB开发网您是否正将您的数据库从Oracle迁移至 IBM® DB2® Universal Database™?您是否认为可能会丢失 Oracle 的某个特殊功能?DB2 UDB 就是这样一种十分灵活的数据库,它可以满足您的许多需要。在本文中,我将介绍一下如何实现一个称为警告的功能。警告用于允许多重会话之间的通信。
警告概述
如图1中所显示,警告是为在会话间传递消息而设计的。警告标识、会话标识和消息存储在表中(这里是 alerts.dbms_alert_info)。消息由一个会话发送再由另一个会话读取,这个过程由一个在指定表中设置的标志来控制。在设计参数(像列长度、主机变量长度、轮询时间间隔等)时需要了解 Oracle 到 DB2 的迁移情况。您可以根据需要增加警告名和消息长度的大小。
图 1. 警告在会话间发送消息
设计概述
以下对象在实现类似 Oracle 具有的警告功能时都是必需的。所有对象都包含在本文的 下载部分中:
存储警告信息的表: alerts.dbms_alert_info
注册警告的存储过程: alerts.register
删除警告的存储过程: alerts.remove和 alerts.delete
发送警告消息的存储过程:alerts.signal
接收警告消息的存储过程: alerts.waitone和 alerts.waitany
实现延迟的 UDF: alerts.delay
实现会话标识的 UDF: alerts.session_id
您可以更改我的设计以满足自己的特殊要求。所有对象都使用了一个共同的模式,即警告。设计存储过程以便您可以扩展它们来捕获 SQLCODE、SQLSTATE 和 ERROR_MESSAGE。大量的异常处理在上面列出的所有存储过程中实现,但是这里并没有使用到。您可以取消样本代码中异常处理部分的注释然后再使用该部分。它们也可以返回相应的返回码,以便用主语言实现必需的操作。游标可以在所有存储过程中实现,但是在一些地方您可能希望更改为 fullselect。所有警告对象都被授予了公共执行(Public execute)许可权。您应该使用 DBADM 或 SYSADM 权限创建所有这些对象。
- ››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 实战
更多精彩
赞助商链接