下载
下载
第14章 AOL故障解决方法
应用对象库( A O L ) 包括应用管理工具,管理诸如并发管理器、打印机、报表以及一些更高
级的特性,如O r a c l e应用特有的软字段。
本章涵盖的主题包括并发管理器、打印机、报表、软字段、 Oracle Alert以及 O r a c l e
Wo r k f l o w 。这部分内容的影响面较宽,是 O S S 根据接收到的客户咨询电话总结出来的故障解
决方法。我们将讨论安装和配置 A O L 时应该采取的预防措施以及出现故障时的解决方法。
Oracle Alert与A O L 的功能也密切相关,并且被认为是 O r a c l e 应用的核心产品。最近, A O L 通
过引入Oracle Wo r k f l o w 作为自动处理和定制用户商务进程的完整的应用工具扩大了它的基础。
所有的这些产品共同奠定了 O r a c l e 应用的基础,在此基础上创建了所有其他的产品如
Oracle Assets、Oracle Purchasing、Oracle General Ledge等,这些产品与A O L 共享应用代码。
另外,本章还涉及到了 A O L 的关键特性,并提供了最常见的错误及其解决方法、调试技
术以及有助于缩短系统故障时间的故障提示等补充内容。
本章还包括一般性保护错误 ( G P F )的故障解决指导,因为 O S S接收到的许多咨询电话都是
关于Wi n d o w s 系统上G P F的。
14.1 Oracle Alert
Oracle Alert是一个程序,它通过即时提供数据库活动的视图而使用户可以监视自己的商
务信息。当发生重要的或特殊的数据库事件,如更新特殊表 (事件警告)或用户选择计划上的关
键信息通知(定期警告)时,它能使用户保持对这些事件的处理权力。
14.1.1 建立Oracle Alert
本节讨论如何定义和建立Oracle Alert、Oracle Alert动作和Oracle Alert动作集。
1. 确定邮件系统
Oracle Alert通过向用户发送电子信息使用户保持对情况的了解,其电子邮件功能集成于
Oracle Off i c e 和Oracle InterOff i c e 中,Oracle Alert还支持O p e n V M S邮件和UNIX Sendmail(发
送邮件)技术。用户可以将 Oracle Off i c e / I n t e r O ff i c e 安装在Oracle Alert所在的同一数据库中,
也可以安装在通过 S Q L * N e t访问Oracle Alert数据库的一个数据库中。其他邮政工具可以使用
Oracle Off i c e / I n t e r O ff i c e 服务器和支持S M T P ( 简单邮件传输协议 )消息传送的网关链接到 A l e r t
中。
如果决定使用第三方的邮件系统,以 U N I X 为例,应确保在安装 Oracle Office 或O r a c l e
O f fice UNIX Mail Gateway之前,要测试从操作系统到第三方的邮件系统的消息流。除非
UNIX Mail在工作,否则其余的建立工作不能进行。消息流应该是:
A l e r t <—> O ff i c e < —> O ffice UNIX Mail Gateway<—>UNIX Mail<—>第三方的UNIX Mail
G a t e w a y < —>第三方的电子邮件。
依据所选取的邮件系统类型,用户必须在 O r a c l e应用的Define Oracle Alert Options屏内定
义邮件系统。选择Navigate |Definitions|Options,如下所示:
名称 命令 使能
Oracle Off i c e 无 是
UNIX Sendmail / u s r / l i b / s e n d m a i l 是
VMS Mail M A I L 是
注意 确保只有一个邮件系统已被设置为是。
当用户确定了自己的Oracle Alert消息使用的邮件系统后,就要设置环境变量$ A P P L M A I L,
它应该与所选择的邮件系统一致。
以下是设置的选项:
• $APPLMAIL=NONE(当使用任何非Oracle Office/Oracle InterOff i c e 邮件系统时)。
• $APPLMAIL=ORACLE_OFFICE(当使用Oracle Off i c e时)。
• $APPLMAIL=ORACLE_INTEROFFICE(当使用Oracle InterOff i c e时)。
用户必须在应用的环境文件 ( A P P L S Y S . e n v ) 中设置$ A P P L M A I L环境变量后,重新链接
Oracle Alert并运行该环境文件(链接到必要的A P I )。例如:
adrelink force=y ranlib=y "alr ALL"
2. 定义用户的A l e r t
接下来是定义用户的警告。用户可以有两种类型的警告:
• 当数据库中的一条记录被更新或插入时 (或二者同时发生时,这由用户定义的警告方式
决定)激活事件警告。
• 定期警告在需要时(当用户使用Request Periodic Alert Check格式时)或根据用户通过定期
警告调度程序(负责运行计划好的定期警告的并行程序 )定义的警告计划激活。
(1) 事件警告
定义一个事件警告时,必须确定警告的激活时间。例如:
U p d a t e = Ye s
I n s e r t = Ye s
在第一种情况下,若定义了警告的表中的某记录被修改 (更新)时警告被激活。在第二种情
况中,当定义了警告的表中被创建 (插入)一条记录时警告被激活。
定义一个事件警告就创建了一个数据库触发器来反映用户的警告定义。如果用户指定
U p d a t e = Ye s,那么在数据库指定了警告定义的表中就创建了一个更新触发类型的触发器。例
如,如果根据 Oracle Payables在A P _ I N V O I C E S 表上定义了一个警告,那么就创建了一个
A L R _ A P _ I N V O I C E S _ U A R 数据库触发器。
如果用户指定I n s e r t = Ye s ,那么在数据库指定了警告定义的表中就创建了一个插入触发类
型的触发器。例如,如果根据 Oracle Payables在A P _ I N V O I C E S 表上定义了一个警告,那么就
创建了一个A L R _ A P _ I N V O I C E S _ I A R 数据库触发器。由于 A l e r t 中的约束,用户对任何表 (插
入的和更新的)只能定义一种类型的触发器,尽管这是两种不同的警告定义。这种约束是由于
Oracle Alert触发器命名设定造成的。
注意 用户事件警告的SQL语句中必须包含对警告基于的表的where rowid=:rowid操作
子句,否则Oracle Alert不能确定事务发生的行。
第14章 AOL故障解决方法 301
下载
(2) 定期警告
定义一个定期警告时,必须确定警告的激活时间。如果用户在频率字段中指定为 O n
D e m a n d,那么只有当用户进入 Alerts |Check form并选择激活那个特定的警告时,警告才会激
活。如果用户指定Every N Calendar Days、Every N Business Days、We e k l y或M o n t h l y ,那么
用户选择的就是在一天之内警告若干次或在某一天内只警告一次。
注意 如果用户定义警告在Every N Business Days激活,那么应确保在M i s c e l l a n e o u s
O p t i o n s屏幕(选择N a v i g a t e | D e f i n i t i o n s | O p t i o n s,进入最后面的区域,并选择M i s c e l l a n e o u s
O p t i o n s ) 中已经建立了正确的商务的定义。
如果用户要求警告一天内运行若干次,就要将 Check Once Each Day的标志设置为N o,并
通过在Start Ti m e、End Time 和Time Between Checks字段中输入适当的值(确保输入的时间值
是“小时:分:秒”的格式,例如, 3小时则输入0 3 :0 0:0 0 ) 来定义它应该运行的次数。
有关定义定期警告和事件警告的更多信息,请参考《 Oracle Alert参考手册》。
3. 创建警告动作
用户应该为自己的警告创建一个警告动作,每个警告 (事件的或定期的)必须至少有一个动
作。警告动作可以是下列之一:
• 消息动作
向某人或别名或预定义分布表中的任何一个人发送一条电子消息,也可以向打印机发送
一条警告消息。但这种情况下,用户必须确保与打印机类型相连的打印机风格是 P o r t r a i t。
• 并行程序请求
提交一个运行Oracle Applications并发程序的请求(用户输入程序需要的变量 )。
• SQL脚本
执行一个S Q L 语句脚本(用户输入脚本或 Oracle Alert调用一个包含脚本的外部文件 )。
• 操作系统脚本
启动一个操作系统脚本(用户输入脚本或Oracle Alert调用一个包含脚本的外部文件 )。
在定义一个警告动作时,用户还必须指定如下一种警告级别:
• Detail 警告每次异常返回,警告动作就执行一次。
• Summary 警告全部异常返回,警告动作执行一次。
• No Exception 警告没有异常返回时,警告动作执行一次。
4. 创建一个警告动作集
用户还必须定义一个动作集,指定特定警告激活时要完成的动作,即使用户只有一个警
告动作也必须这样做。只有当下面的三步操作全部完成时,警告才能激活所要求的动作。
1) 定义一个警告。
2) 定义一个或多个警告动作。
3) 定义一个包含一条或多条警告动作的动作集。
14.1.2 应答处理
Oracle Alert提供了定义应答处理警告的能力
—
可以根据用户对警告消息的应答来执行
例程事务。定义一个应答警告时,用户可以定义动作完成:当接收到一个用户的有效应答
时;当接收到一个用户应答时;当在指定时间内没有接收到应答时。
302 第三部分 核 心 应 用
下载
用户必须要么使用Oracle Office /Oracle InterOffice 作为自己的邮件系统,要么使用 O r a c l e
O ffice/Oracle InterOff i c e 作为到电子邮件系统的“网关”。与A l e r t捆绑在一起的单用户许可证
能满足此项要求。
用户必须在Oracle Office/Oracle InterOff i c e 内定义两个文件夹记录对 Oracle Alert消息应答
的处理:
• REVIEWED
• REVIEWED_OK
用户必须在 Oracle Alert内定义Response Processing参数。为此,在 O r a c l e应用中选取
Navigate |Definitions|Options,并进入Oracle Office Options时间带设置参数。
例如:
Oracle Office Options 值
Enable Response Processing Yes (是)
(使应答处理有效)
Check for Open Responses Ye s (是)
Before Rending Response
(在读应答之前检查打开的应答 )
Response Processor Start Ti m e 0 1 :0 0 ( 2 4小时:分钟格式)
(应答处理器开始时间)
Response Processor End Ti m e 2 3 :3 0 ( 2 4小时:分钟格式)
(应答处理器结束时间)
Response Processor Interval 5 ( 分钟)
(应答处理器时间间隔)
注意 如果没有指定应答处理器的开始时间、结束时间和时间间隔,那么Oracle Alert将
在每天午夜提交程序。
如果用户修改了Response Processor的时间间隔,那么必须以 Schedule Alert Programs形式
重新启动Response Porcessor。为此,用户可以选择Navigate |Schedule,将Response Processor
填到名字字段,并将S c h e d u l e填到动作字段。
14.1.3 阈值组
由于警告可能从数据库中返回大量不同的异常情况,所以定义一个阈值组是会有帮助的。
阈值组即警告完成的详细动作,如果异常比概要阀值中设计的少。
在阈值组中可以定义一个概要动作和一个详细的动作。用户也可以定义一个概要阈值,
它的意思是如果异常数少于或等于概要阈值量,那么每个异常警告都要完成一个详细的动作。
但是如果异常数大于概要阈值量,那么对所有的异常警告只完成一次概要动作。
阈值量包括在警告的动作集定义中。定义一个只有一个概要动作的阈值是可能的。概要
阈值量也必须定义,它意味着只有当返回的异常数大于概要阈值量时,概要动作才执行;否
则,不执行动作。
注意 定义阈值组时,详细动作和概要动作都必须属于同一动作类型(例如消息、并发
程序等)并且与阈值组中设计的类型一样。
第14章 AOL故障解决方法 303
下载