DM系統包學習之四 DBMS ALERT包

2021-10-03 19:39:14 字數 2351 閱讀 6056

一、相關方法

1. dbms_alert.register 為當前會話註冊乙個預警事件,本操作會提交當前事務。 

語法:dbms_alert.register (  name in  varchar(30) ) ;

說明:name 輸入引數,預警事件名。 

2. dbms_alert.remove 刪除當前會話的乙個預警事件,如果該預警事件正在 dbms_alert.waitone 或者 dbms_alert.waitany 等待,則被阻塞,直到 dbms_alert.waitone 或者 dbms_alert.waitany結束。本操作會提交當前事務。 

語法:dbms_alert. remove (  name  in varchar(30) )  

3. dbms_alert.removeall 刪除當前會話下所有的預警事件,如果該預警事件正在 dbms_alert.waitone 或者 dbms_alert.waitany 等待,則被阻塞,直到 dbms_alert.waitone 或者 dbms_alert.waitany結束。本操作會提交當前事務。

語法:dbms_alert. removeall () ;

4. dbms_alert.signal 給所有名為name的預警事件傳送訊息,當前事務提交時生效。 

語法:dbms_alert. signal (  name  in  varchar(30),  message  in  varchar(1800) );

說明:message 輸入引數,待傳送的訊息。 

5. dbms_alert.set_defaults 設定輪詢時間,在dm中無用,只為相容oracle。 

語法:dbms_alert. set_defaults (  sensitivity  in int ) ;

說明:sensitivity 輸入引數,輪詢時間間隔,單位秒。引數為null,則使用預設值5s。 

6. dbms_alert.waitone 預警事件上等待預警訊號,獲得dbms_alert. signal傳送的訊息內容。本操作會提 交當前事務。

語法:dbms_alert. waitone (  

name  in varchar(30),

message  out varchar(1800),

status out int,

timeout in int default 86400000 );

說明:message 輸出引數,獲得dbms_alert. signal傳送的訊息。 

status 輸出引數,表示waitone是否成功。如果bms_alert. waitone傳入的name是已經註冊過的預警,則0表示預警發生;1 表示預警等待超時。 

timeout 輸入引數,waitone的等待超時時間,單位為秒,預設值為86400000秒。如果timeout設定為空串、null和負值時,dm處理成預設值。

7.dbms_alert. waitany 同dbms_alert. waitone。

語法:dbms_alert. waitany (  

name  out varchar(30),  

message  out varchar(1800),  

status out int,    

timeout  in int default 86400000 ) ;

二、例子:為當前會話註冊乙個名為 a1 的預警事件,給預警事件上等待預警訊號,獲得 dbms_alert. signal傳送的訊息內容,最後刪除當前會話的乙個預警事件。同時,會話 1存活期間,可以通過dbms_alert_info檢視檢視到a1預警事件。

會話1: create or replace procedure wait1 is

msg  varchar(1800);

statu integer;  

begin 

dbms_alert.register('a1');  

dbms_alert.waitone('a1', msg, statu, 39);

print 'msg: ' || msg || ' statu: ' || statu;

dbms_alert.remove('a1');  

end wait1;

exec wait1;

同時會話2執行:

create or replace procedure set_alert1 is

begin

dbms_alert.signal('a1', 'this is a sig');

commit;

end set_alert1;

exec set_alert1; 

select * from dbms_alert_info;

C 系統學習之四 陣列

與vector的異同 陣列中元素的個數也屬於陣列型別的一部分,編譯的時候維度應該是已知的,也就是說,維度必須是乙個常量表示式。預設情況下,陣列的元素被預設初始化。note 可以對陣列元素進行列表初始化,此時允許忽略陣列的維度。當指定了維度,則維度應比列表初始值的數量多,當維度比初始化列表的數量大時,...

DM學習之路2之DM資料庫實時主備環境的搭建

達夢資料庫主備搭建 主備搭建 掛載資料庫iso安裝包到乙個空資料夾 切換到dmdba使用者 開始安裝 安裝命令,剩下跟著提示走 安裝結束 安裝完成後,按照系統提示使用 root 使用者執行指令碼。dm8 script root root installer.sh 初始化例項dminit 新建資料夾d...

VPP學習 四 VPP trace追蹤包 抓包

新增dpdk型別的包追蹤,抓10個包 trace add dpdk input 10 檢視包 show trace 清理 抓100000個包,寫入檔案vppcapture pcap dispatch trace on max 100000 file vppcapture buffer trace d...