深入浅出Oracle之Business Events实例详解.doc

上传人:飞****9 文档编号:134059886 上传时间:2020-06-02 格式:DOC 页数:33 大小:1,009KB
返回 下载 相关 举报
深入浅出Oracle之Business Events实例详解.doc_第1页
第1页 / 共33页
深入浅出Oracle之Business Events实例详解.doc_第2页
第2页 / 共33页
深入浅出Oracle之Business Events实例详解.doc_第3页
第3页 / 共33页
深入浅出Oracle之Business Events实例详解.doc_第4页
第4页 / 共33页
深入浅出Oracle之Business Events实例详解.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

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

1、Oracle 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-Apr-05Jianhua.HuangDraft 1aNo Previous

2、 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 document control purposes.If you receive

3、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.其他特性和功能实例132.1.关键概念理解132.2.关于Defer172.3.第2个例子:

4、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 Events System基础职责:Workflow Administrator

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

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

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

8、单应用。操作监控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 FROM v$parameter p WHERE p.NAME IN (jo

9、b_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_option_id = prv.profile_option_id(+) AND

10、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.running_processes actual FROM fnd_concurre

11、nt_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, fcq.running_processes actual, fcqs.sl

12、eep_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、首先,我们必须保证一个叫做“Workflow Agent Listene

13、r Service”的Concurrent Manager正常工作,这个可以通过SYSADMIN职责的“Administer Concurrent Manager”Form来看,要保证它的Target=12、如果你怎么整也没办法把这个Target整成1,那么你需要检查一下一个称为“Service Manager: ”的Concurrent Manager是否正常工作,也就是说,它的Target必须先为13、如果这个东东也整来整去整不成1,那么你需要检查一个“Concurrent:GSM Enabled”的Profile,是不是在Site层设为“Y”的,如果是“N”的话,也是不行的Workflo

14、w必要设置,如果打算在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), PARAMETER_VALUE2 VARCHAR2(4000), EVENT_DATE DATE

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

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