WEB开发网
开发学院数据库DB2 在IBM DB2通用数据库中实现会话间的警告 阅读

在IBM DB2通用数据库中实现会话间的警告

 2009-06-26 16:15:01 来源:WEB开发网   
核心提示:您是否正将您的数据库从Oracle迁移至 IBM® DB2® Universal Database™?您是否认为可能会丢失 Oracle 的某个特殊功能?DB2 UDB 就是这样一种十分灵活的数据库,它可以满足您的许多需要,在IBM DB2通用数据库中实现会话间的警告,在本文中,我将介绍一下

您是否正将您的数据库从Oracle迁移至 IBM® DB2® Universal Database™?您是否认为可能会丢失 Oracle 的某个特殊功能?DB2 UDB 就是这样一种十分灵活的数据库,它可以满足您的许多需要。在本文中,我将介绍一下如何实现一个称为警告的功能。警告用于允许多重会话之间的通信。

警告概述

如图1中所显示,警告是为在会话间传递消息而设计的。警告标识、会话标识和消息存储在表中(这里是 alerts.dbms_alert_info)。消息由一个会话发送再由另一个会话读取,这个过程由一个在指定表中设置的标志来控制。在设计参数(像列长度、主机变量长度、轮询时间间隔等)时需要了解 Oracle 到 DB2 的迁移情况。您可以根据需要增加警告名和消息长度的大小。

图 1. 警告在会话间发送消息

在IBM DB2通用数据库中实现会话间的警告

设计概述

以下对象在实现类似 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 权限创建所有这些对象。

1 2 3 4 5 6  下一页

Tags:IBM DB 通用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接