深入浅出oracle之business-events实例详解

上传人:101****457 文档编号:99427982 上传时间:2019-09-19 格式:DOC 页数:33 大小:1.13MB
返回 下载 相关 举报
深入浅出oracle之business-events实例详解_第1页
第1页 / 共33页
深入浅出oracle之business-events实例详解_第2页
第2页 / 共33页
深入浅出oracle之business-events实例详解_第3页
第3页 / 共33页
深入浅出oracle之business-events实例详解_第4页
第4页 / 共33页
深入浅出oracle之business-events实例详解_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《深入浅出oracle之business-events实例详解》由会员分享,可在线阅读,更多相关《深入浅出oracle之business-events实例详解(33页珍藏版)》请在金锄头文库上搜索。

1、Doc Ref: Oracle ERP最佳技术实践四月 14, 2008Oracle ERP最佳技术实践E-Business SuiteOracle核心应用技术Business EventsAuthor:黄建华Jianhua.HuangMSN:Creation Date:September 19, 2006Last Updated:四月 14, 2008Document Ref: Version:DRAFT 1AApprovals: Copy Number_Document ControlChange Record33DateAuthorVersionChange Reference12-Ap

2、r-05Jianhua.HuangDraft 1aNo Previous DocumentReviewersNamePositionDistributionCopy No.NameLocation1Library MasterProject Library2Project Manager34Note To Holders:If you receive an electronic copy of this document and print it out, please write your name on the equivalent of the cover page, for docum

3、ent control purposes.If you receive a hard copy of this document, please write your name on the front cover, for document control purposes.ContentsDocument Control21.Business Events System基础41.1.总体说明41.2.应用举例51.3.必要设置51.4.先睹为快:一个简单例子.定义测试表61.5.先睹为快:一个简单例子.定义事件和订阅关系71.6.先睹为快:一个简单例子.立即执行112.其他特性和功能实例1

4、32.1.关键概念理解132.2.关于Defer172.3.第2个例子:Defer执行182.4.第3个例子:发送Notification192.5.第4个例子:创建Agent Listener212.6.第5个例子:Workflow产生/发送消息232.7.第6个例子:Workflow接收消息273.常用代码块313.1.查看订阅关系313.2.启动事件313.3.发送事件到特定Agent323.4.查看事件324.Open and Closed Issues for this Deliverable33Open Issues33Closed Issues331. Business Even

5、ts System基础职责:Workflow Administrator Web Applications(以下简称WF Admin Web)用户:SYSADMIN1.1. 总体说明Oracle业务时间系统,就是一个消息产生和消费的过程,Oracle打算用它来做系统集成。源系统产生数据,封装成业务事件,发送给目标系统,目标系统做出处理响应。这里的源系统和目标系统,可能是ERP中的不同模块,也可能是两个ERP Instance。消息产生者,产生消息消息系统,接收消息,根据消息和订阅内容判断是否缓存消息(Defer);最终都会调用每个订阅的Rule Function来处理订阅者1,处理消息订阅者n

6、,处理消息佚名:“Business Event可能在APPLICATION的集成方面大有作为”!业务事件是以AQ为基础,如果能够明白AQ的工作原理,就可以更好的理解BES了。关于AQ,请参考附件中的AQ快速入门.txt。胡永福曾写过一个精彩的实例文档深入浅出OracleEBS 11i-BES的一个简单应用,描述如何通过AQ+BES+Workflow处理外挂系统和ERP的信息交互,心急的朋友可以直接去阅读。Business Events丰富和扩展了DB标准AQ的功能,但基本原理还是一样的。EBS中用的比较多的仍旧是简单的消息订阅模式,即某个功能产生数据后,不直接更新/同步到其他功能块,而是Rai

7、se一个消息到队列,然后立即返回操作界面;待后台的Listener起来后,根据订阅关系执行相关操作。这里面的优点是:前端操作不在同一Transaction处理太多事情,性能得到改善;仅通过消息传递,功能块之间的耦合度小;对于不同系统间的集成操作,提供了非常成熟的方案。不过还是觉得不够干脆:比如不同系统间,还是DB_LINK来得直接,没有中间处理,效率也不错;本系统内部,用了Business,徒增一个动作的执行路径,搞不好还容易导致问题。1.2. 应用举例处理问题EBS中广泛使用BES,如果不了解,遇到问题岂不麻烦?William Shi在关于用户/职责方面的修改中处理的关键问题就是BES引发的

8、问题。系统集成胡永福的深入浅出OracleEBS 11i-BES的一个简单应用。操作监控Oracle的Alert具有监控功能,但其基于DB触发器,可能引起性能问题。如果采用BES,在用操作时记录增删改Event,再Defer到后台,统一处理。系统中有些标准功能如BOM,已经有此类事件产生,我们仅需做订阅即可达到监控目的。1.3. 必要设置数据库参数BES本质上使用AQ,AQ本质上使用数据库JOB。所以要保证AQ和Job工作正常。通常建议:job_queue_processes=10aq_tm_processes=1SELECT p.NAME, p.description, p.VALUE FR

9、OM v$parameter p WHERE p.NAME IN (job_queue_processes, aq_tm_processes)Profile:Concurrent:GSM Enabled在Site层设置为Yes。SELECT pro.profile_option_name, pro.user_profile_option_name, prv.profile_option_value FROM apps.fnd_profile_options_vl pro, applsys.fnd_profile_option_values prv WHERE pro.profile_optio

10、n_id = prv.profile_option_id(+) AND prv.level_id = 10001 AND pro.profile_option_name = CONC_GSM_ENABLEDConcurrent Manager:Service Manager: Target和Actual个数要=1。如Service Manager: GTHF。SELECT fcq.concurrent_queue_name, fcq.user_concurrent_queue_name, fcq.target_node, fcq.max_processes target, fcq.runnin

11、g_processes actual FROM fnd_concurrent_queues_vl fcq WHERE fcq.enabled_flag = Y AND fcq.concurrent_queue_name LIKE FNDSM%Concurrent Manager:Workflow Agent Listener ServiceTarget和Actual个数要=1。SELECT fcq.concurrent_queue_name, fcq.user_concurrent_queue_name, fcq.target_node, fcq.max_processes target, f

12、cq.running_processes actual, fcqs.sleep_seconds FROM fnd_concurrent_queues_vl fcq, fnd_concurrent_queue_size fcqs WHERE fcq.concurrent_queue_id = fcqs.concurrent_queue_id AND fcq.enabled_flag = Y AND fcq.concurrent_queue_name = WFALSNRSVC上面3步设置,摘自William Shi的“关于用户/职责方面的修改”:怎样让Business Event系统保持的工作1、

13、首先,我们必须保证一个叫做“Workflow Agent Listener Service”的Concurrent Manager正常工作,这个可以通过SYSADMIN职责的“Administer Concurrent Manager”Form来看,要保证它的Target=12、如果你怎么整也没办法把这个Target整成1,那么你需要检查一下一个称为“Service Manager: ”的Concurrent Manager是否正常工作,也就是说,它的Target必须先为13、如果这个东东也整来整去整不成1,那么你需要检查一个“Concurrent:GSM Enabled”的Profile,是

14、不是在Site层设为“Y”的,如果是“N”的话,也是不行的Workflow必要设置,如果打算在WF中使用BES参考Oracle E-Business Suite 实例详解之Workflow.doc之“1.2.必要设置”。1.4. 先睹为快:一个简单例子.定义测试表准备数据库表创建表:- Create tablecreate table CUX_BES_DEMOS( DEMO_ID NUMBER, MESSAGE_NAME VARCHAR2(100), MESSAGE_KEY VARCHAR2(100), MESSAGE_CONTENTS CLOB, PARAMETER_VALUE1 VARCHAR2(4000),

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号