成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Oracle 8x中實(shí)現(xiàn)自動(dòng)斷開后再連接的實(shí)現(xiàn)

數(shù)據(jù)庫 Oracle
如果你想對(duì)Oracle 8x里實(shí)現(xiàn)自動(dòng)斷開后再連接中的后臺(tái)任務(wù)的定時(shí)執(zhí)行這一項(xiàng)目有研究的話,以下的文章的相關(guān)內(nèi)容可以供你們參考。

以下的文章主要描述的是如何在Oracle 8x中實(shí)現(xiàn)自動(dòng)斷開后再連接的實(shí)際操作方案,其中涉及到識(shí)別系統(tǒng)中規(guī)定超過一定的空閑時(shí)間的連接,以及識(shí)別及斷開空閑用戶的存儲(chǔ)過程等,相關(guān)內(nèi)容的描述。

在實(shí)際的數(shù)據(jù)庫應(yīng)用中,我們經(jīng)常遇到這樣一個(gè)問題,連接到Oracle數(shù)據(jù)庫的用戶在作了一次操作后,再也沒有后續(xù)操作,但卻長時(shí)間沒有和數(shù)據(jù)庫斷開連接。對(duì)于一個(gè)小型的應(yīng)用系統(tǒng)來講,本身的連接數(shù)目就有限,這好像沒有什么嚴(yán)重的后果,但如果對(duì)于一個(gè)大型的數(shù)據(jù)庫應(yīng)用。

如稅務(wù)、工商等,如果數(shù)據(jù)庫的連接數(shù)目很多,對(duì)于數(shù)據(jù)庫服務(wù)器來講,多一個(gè)連接就要多消耗一份資源,如果大量用戶連接進(jìn)入數(shù)據(jù)庫系統(tǒng)但卻不進(jìn)行任何的操作,這無形之中就白白造成了服務(wù)器系統(tǒng)資源的浪費(fèi),同時(shí)造成服務(wù)器負(fù)載的提高,對(duì)于那些確實(shí)在工作的用戶來講,就不能最大限度的利用服務(wù)器的資源,嚴(yán)重情況下可能造成系統(tǒng)性能的急劇下降。

針對(duì)這種問題,該如何處理呢?對(duì)于目前流行的三層結(jié)構(gòu)(Browser/Application/Server)開發(fā)來講,這個(gè)問題可以通過設(shè)置應(yīng)用服務(wù)器端的連接共享池(shared pool)來避免。但對(duì)于傳統(tǒng)的兩層結(jié)構(gòu)(Client/Server)應(yīng)用,就必須由我們?nèi)藶楦深A(yù)來避免這種資源浪費(fèi)情況。

具體可以通過一個(gè)后臺(tái)任務(wù)來監(jiān)控系統(tǒng)中的所有進(jìn)程,對(duì)于那些空閑超過一定時(shí)間的進(jìn)程采取一定的特殊處理措施,如在客戶端提示用戶連接時(shí)間太長,如果沒有后續(xù)操作系統(tǒng)將自動(dòng)殺掉該連接或者直接將該空閑連接殺掉。下面就來具體討論如何在Oracle 8x環(huán)境下實(shí)現(xiàn)用戶進(jìn)程的自動(dòng)監(jiān)控及其對(duì)對(duì)超過一定空閑時(shí)間連接的處理辦法。

一、識(shí)別系統(tǒng)中超過一定空閑時(shí)間的連接

要實(shí)現(xiàn)后臺(tái)任務(wù)自動(dòng)對(duì)超過一定時(shí)間空閑連接的處理,首先第一步工作就是要從所有與數(shù)據(jù)庫服務(wù)器的Oracle 8x中實(shí)現(xiàn)自動(dòng)斷開后再連接中識(shí)別出那些連接需要處理,也就是需要獲得與服務(wù)器連接的每個(gè)用戶的登陸時(shí)間及其最后一次操作后的空閑時(shí)間。在Oracle系統(tǒng)中,有一個(gè)動(dòng)態(tài)性能視圖v$session,該視圖保存著系統(tǒng)當(dāng)前連接的各種動(dòng)態(tài)信息。其中,有兩個(gè)字段LOGON_TIME和 LAST_CALL_ET可以得到上面的兩個(gè)答案。

l LOGON_TIME是一個(gè)日期型(Date)字段,為用戶登陸時(shí)間;

l LAST_CALL_ET是一個(gè)數(shù)字型(Number)字段,其含義是用戶最后一條語句執(zhí)行完畢后的時(shí)間,單位為秒。每次用戶執(zhí)行一個(gè)新的語句后,該字段復(fù)位為0,重新開始記數(shù)。我們可以通過該字段來獲得一個(gè)連接用戶最后一次操作數(shù)據(jù)庫后的空閑時(shí)間。

下面的SQL查詢語句可以得到與當(dāng)前數(shù)據(jù)庫連接的所有用戶的一些基本情況,如用戶名、狀態(tài)、連接機(jī)器的名稱,操作系統(tǒng)中用戶的名稱,UNIX系統(tǒng)的進(jìn)程號(hào),在UNIX操作系統(tǒng)級(jí)斷開連接的語句,Oracle數(shù)據(jù)庫系統(tǒng)斷開連接的語句,登陸時(shí)間以及最后一次操作到現(xiàn)在的空閑時(shí)間等等。

在上面的查詢中,我們可以通過SUBSTR (machine, 1, 19) NOT IN ('機(jī)器名')這個(gè)條件來屏蔽一些機(jī)器,這些機(jī)器可能需要運(yùn)行一些耗費(fèi)很長時(shí)間的SQL語句或其他一些特殊情況的機(jī)器。屏蔽這些機(jī)器的原因就是在后面的后臺(tái)自動(dòng)識(shí)別及處理任務(wù)中對(duì)這些機(jī)器不作處理。

二、識(shí)別及斷開空閑用戶的存儲(chǔ)過程

上面的查詢語句可以得到系統(tǒng)中所有的連接用戶的一些基本情況,但是又如何來實(shí)現(xiàn)系統(tǒng)自動(dòng)判斷空閑超過一定時(shí)間的連接并將其自動(dòng)斷開呢?Oracle系統(tǒng)提供了一種稱之為后臺(tái)任務(wù)(Job)自動(dòng)處理的機(jī)制。我們可以編寫一個(gè)后臺(tái)任務(wù)來定時(shí)執(zhí)行,從而判斷是否存在這樣的用戶連接,如果存在,則通過后臺(tái)任務(wù)將其自動(dòng)斷開。

首先創(chuàng)建一個(gè)存儲(chǔ)過程來完成空閑一定時(shí)間用戶的識(shí)別和斷開工作,然后添加一個(gè)后臺(tái)任務(wù)來定時(shí)(根據(jù)空閑時(shí)間長短來確定)執(zhí)行該過程,即可實(shí)現(xiàn)自動(dòng)斷開系統(tǒng)中空閑超過一定時(shí)間用戶的需求。

存儲(chǔ)過程p_monitor見下,其中參數(shù)an_nimutes為用戶輸入?yún)?shù),用來確定識(shí)別和斷開多長空閑時(shí)間Oracle 8x中實(shí)現(xiàn)自動(dòng)斷開后再連接的用戶,單位為分鐘,默認(rèn)為60分鐘,也就是1小時(shí)。需要注意一點(diǎn)的是,該存儲(chǔ)過程,需要以sys用戶身份運(yùn)行。相應(yīng),調(diào)用該存儲(chǔ)過程的后臺(tái)任務(wù)也需要以SYS身份來添加。

  1. CREATE OR REPLACE PROCEDURE P_MONITOR(   
  2. AN_MINUTES NUMBER DEFAULT 60)   

存儲(chǔ)過程用途:識(shí)別出系統(tǒng)中超過一定空閑連接時(shí)間(
AS_MINUTES)的用戶,并將其kill掉參數(shù):
AN_MINUTES 空閑時(shí)間數(shù),單位為分鐘,默認(rèn)為60分鐘
 

  1. AS   
  2. v_Str VARCHAR2(100);   
  3. CURSOR C_users(v_minutes number) IS  SELECT s.username,   
  4. s.status, s.machine, 'alter system kill session '   
  5. ||''''||s.sid||','||s.serial# ||'''' operates   
  6. FROM v$session s, v$process p   
  7. WHERE TYPE = 'USER'   
  8. AND p.addr = s.paddr   
  9. AND status != 'KILLED'   
  10. -- AND SUBSTR (machine, 1, 19) NOT IN ('需要屏蔽不被處理的機(jī)器名')   
  11. AND last_call_et > v_minutes*60   
  12. ORDER BY last_call_et desc;   
  13. BEGIN   
  14. FOR T_users IN C_users(an_minutes) LOOP   
  15. v_Str :T_USERS.OPERATES;   
  16. EXECUTE IMMEDIATE v_str;   
  17. END LOOP;   
  18. END;   
  19. /   

 

三、后臺(tái)任務(wù)的定時(shí)執(zhí)行

最后,我們?yōu)橄到y(tǒng)添加一個(gè)定時(shí)任務(wù),定時(shí)調(diào)用上面創(chuàng)建的存儲(chǔ)過程,即可完成系統(tǒng)自動(dòng)識(shí)別和處理空閑用戶的工作。

下面是一個(gè)實(shí)際調(diào)用的例子,在sys用戶下,首先添加一個(gè)任務(wù),該任務(wù)每隔半小時(shí)運(yùn)行一次,每次均調(diào)用P_monitor存儲(chǔ)過程,找出系統(tǒng)中空閑時(shí)間超過1小時(shí)的Oracle 8x中實(shí)現(xiàn)自動(dòng)斷開后再連接,然后自動(dòng)斷開。

  1. DECLARE   
  2. jobno number;   
  3. BEGIN   
  4. DBMS_JOB.SUBMIT(   
  5. job => jobno,   
  6. what => 'p_monitor(60);',   
  7. next_date => SYSDATE,   
  8. interval => '/*1:Hr*/ sysdate + 30/1440); -- 每半小時(shí)運(yùn)行一次   
  9. END;   
  10. /  
  1. DECLARE   
  2. jobno number;   
  3. BEGIN   
  4. DBMS_JOB.SUBMIT(   
  5. job => jobno,   
  6. what => 'p_monitor(60);',   
  7. next_date => SYSDATE,   
  8. interval => '/*1:Hr*/ sysdate + 30/1440); -- 每半小時(shí)運(yùn)行一次   
  9. END;   
  10. /  

 

以上的相關(guān)內(nèi)容就是對(duì)在Oracle 8x中如何實(shí)現(xiàn)自動(dòng)斷開后再連接的介紹,望你能有所收獲。

【編輯推薦】

  1. Oracle 10G for linux常用命令淺析
  2. Oracle 權(quán)限入門如何管理
  3. Oracle創(chuàng)建Split 與Map 函數(shù)的代碼示例
  4. Oracle 字符串split的相關(guān)實(shí)際應(yīng)用代碼介紹
  5. Oracle數(shù)據(jù)庫的安全,PL/SQL的SQL注入
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-06-26 16:21:22

Oracle自動(dòng)增長Hibernate

2011-05-16 09:58:14

Windows 8

2010-05-10 14:16:50

Oracle樹結(jié)構(gòu)

2011-05-17 14:19:28

Oracle異地數(shù)據(jù)庫自動(dòng)備份

2009-05-12 10:36:38

OracleREDO恢復(fù)

2010-04-06 15:41:22

Oracle repo

2010-10-12 11:31:07

連接MYSQL

2011-03-22 10:36:39

Oracle數(shù)據(jù)庫自動(dòng)增長列

2009-07-09 16:12:53

WeblogicJDBC

2010-05-05 17:19:32

Oracle存儲(chǔ)過程

2019-10-08 11:10:18

React自動(dòng)保存前端

2011-05-17 11:02:23

Oracle網(wǎng)絡(luò)結(jié)構(gòu)連接

2010-10-27 17:00:32

oracle樹查詢

2010-10-29 16:41:12

Oracle模糊查詢

2010-11-16 09:18:39

oracle重建索引

2010-10-26 16:07:45

連接oracle數(shù)據(jù)庫

2010-10-26 16:27:37

連接Oracle數(shù)據(jù)庫

2022-04-10 22:50:20

SSHLinux會(huì)話

2009-07-01 09:17:36

對(duì)象比較Java

2009-12-28 17:17:52

WPF導(dǎo)航
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲精品免费视频 | 亚洲大片 | 三级黄色大片网站 | 亚洲二区在线 | 国产视频综合 | 龙珠z在线观看 | 亚洲三区视频 | 国产精品69av | 久久国产亚洲 | 免费成人av网站 | 伊人婷婷 | 一区二区免费视频 | av国产在线观看 | 国产激情视频网站 | 久久久精品影院 | 色姑娘av| 免费一区二区三区在线视频 | 亚洲成人播放器 | 久久影音先锋 | 日本污视频 | 国产精品一区二区三区免费观看 | 成人在线视频免费观看 | 久久精品99久久 | 精品国产乱码久久久久久a丨 | 欧美黄色一区 | 婷婷午夜天 | 全免费a级毛片免费看视频免 | 精品国产乱码一区二区三区 | 日韩欧美视频免费在线观看 | xxx国产精品视频 | 美女国产一区 | 古装人性做爰av网站 | 国产视频线观看永久免费 | 日本特黄a级高清免费大片 成年人黄色小视频 | 国产成人综合av | 91九色在线观看 | 精品一区二区三区在线观看 | 久久久久久久久久久久久久av | 欧美黄视频 | 午夜在线| 性做久久久久久免费观看欧美 |