流應用程式——流

yangtingkun發表於2010-05-23

流的應用是事件的消費過程,這章主要描述和應用程式有關的概念。

 

 

應用程式概述

流應用程式是一個可選的ORACLE後臺程式,主要用於將LCR或使用者訊息出佇列,然後或者直接應用,或者將其作為引數傳給使用者定義過程。對於應用程式出佇列的LCR資訊,可以是DML資訊也可以是DDL資訊,這些LCR應用程式可以直接應用到目標資料庫。應用程式出佇列的使用者定義事件是SYS.AnyData型別的,可以包含使用者事件或使用者建立的LCR

應用程式應用事件時,是以應用使用者應用到資料庫中的。應用使用者將會應用所有的DML語句和DDL語句,並呼叫使用者定義的應用過程。

應用規則

應用程式在應用修改時會基於使用者定義的規則。每個規則會指明應用修改的資料庫物件和允許的修改型別。可以在下列等級指定應用規則:

表級規則:對指定表應用DMLDDL修改。子集規則:對指定表的一部分資料的修改。

方案規則:對指定方案下的物件應用DMLDDL修改。

全域性規則:應用佇列中的所有DMLDDL修改。

應用程式事件處理

應用程式處理捕獲或使用者入隊事件:

一個單獨的應用程式可以應用捕獲事件或使用者入隊事件,但不能同時應用二者。如果目標資料庫的佇列中同時包含捕獲事件和使用者入隊事件,則目標資料庫至少需要兩個應用程式來分別處理事件。

當使用DBMS_STREAMS_ADM包中的過程建立應用程式,則應用程式只應用捕獲事件。如果使用DBMS_APPLY_ADM包中的CREATE_APPLY過程,可以透過APPLY_CAPTURED引數設定應用程式應用捕獲事件還是應用使用者入隊事件。

事件的起源資料庫對於處理捕獲事件的應用程式十分重要,但對於處理使用者入隊事件的應用程式沒有意義。對於捕獲事件,源資料庫是指變化產生在重做日誌檔案中的資料庫。應用程式必須確定捕獲LCR的源資料庫,以此來保證應用的修改來自一個源資料庫,而資料庫管理員需要保證一個應用程式應用的修改來自一個源資料庫的一個捕獲程式。而對於使用者入隊事件,應用程式忽略源資料庫資訊,即使這個事件是使用者入隊LCR。一個應用程式可以應用源自不同資料庫的使用者入隊事件。

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-663495/,如需轉載,請註明出處,否則將追究法律責任。

相關文章