易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle BAM原理简介

 Oracle BAM全称为Oracle Busines Activity Monitoring,中文叫Oracle 业务活动监视
,BAM有两种功能
    1.创建实时report
    2.创建基于一定规则的alert
 BAM最大的特点就是,它的功能都是实时的,任意的数据变化,他都能实时的反应到正在显示的report上去,也能立刻触发alert的发生。怎么实现这项功能呢?
1.在我们一般的系统中,report都是通过数据库查询产生的,也就是说,由report产生工具去主动查找数据,这样原理在BAM中是无法使用的,因为它要求实时,要在几秒之内用户就能看到report的变化。所以BAM采用的是被动接受数据的原理,BAM服务启动后,其它系统就可以通过BAM Adaptor/Sensor,JMS,Data Integrator,Web Services等方法把数据发送到BAM,BAM就会根据数据自动产生report。另有一种数据源,External Data Source,用来从数据库中读取数据,不过,它只在服务启动的时候读取一次,不能实时反应变化。
2.BAM的数据操作都是基于内存的,report信息都存在内存里,所以客户端来读取数据时,可以立刻从内存中拿到数据发给客户端。那内存中的数据会不会太多呢?实际上应该会比想象的少,因为BAM的report都是增量的report。数据来之后根据数据重新调整report,然后,数据会被存到一个由BAM创建的表中,这样下次启动,数据也不会错。
BAM的大致流程如下:
BAM Adaptor/Sensor----->BAM Active Data Cache-->BAM Event Engine-->BAM Report Cache-->BAM Web Applications
JMS-------------------|           
Data Integrator-------| 
Web Services----------|
External Data Source--|
最左边的五种数据,会被载入Active Data Cache(ADC)中,这是一个机遇内存的存储数据的模块。Event Engine会监听数据的变化,更新report,把report放在一个缓存块中(Report Cache),然后BAM Web Applications就会从缓存块中读取数据。图里没有画出Alert的产生,它也是由Event Engine触发的。
大致就这样,有不足的请补充^_^


相关文档:

oracle 物理读,逻辑读的理解

一.物理读(physical read)
当数据块第一次读取到,就会缓存到buffer cache 中,而第二次读取和修改该数据块时就在内存buffer cache 了 以下是例子:
1.1 第一次读取:
C:"Documents and Settings"Paul Yi>sqlplus "/as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on Thu Feb 28 09:32:04 2008
Copyright (c) 19 ......

ORACLE数据库的数据导入方法

以 下七种数据导入方法哪个最适用需要针对具体情况具体分析,我也附带列举了影响导入速度的各种因素供斟酌。为了比较各种数据导入方法的效果,我创建了示例表 和数据集,并用各种方法导入示例数据集来计算总体导入时间和导入进程占用 CPU 时间,这里得出的时间仅供参考。需要说明的是,建议你使用 Oracle 9i 企业版数据库, ......

ORACLE 时间字段排序问题

 ORACLE 时间字段排序问题
早上在弄EXT排序的时候,因为数据库ID是STRING的,因此在command类里多了一个integer idSort字段,
没想到,根据这个整型的字段进行排序也不行,因为EXT分页出来的虽然是根据这个整型字段排序了。但是
各个页面没有完全的统一排序。
因此,在DAO里写了如下HQL语句:
select tbl from Tr ......

C# 读取和写入oracle的blob字段的方法

 //向数据库中写入
        private void button1_Click(object sender, EventArgs e)
        {
            oracleConnection1.Open();
      & ......

Oracle SQL精妙SQL语句讲解


--行列转换 行转列
DROP TABLE t_change_lc;
CREATE TABLE t_change_lc (card_code VARCHAR2(3), q NUMBER, bal NUMBER);
INSERT INTO t_change_lc
SELECT '001' card_code, ROWNUM q, trunc(dbms_random.VALUE * 100) bal from dual CONNECT BY ROWNUM <= 4
UNION
SELECT '002' card_code, ROWNUM q, trunc(d ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号