国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

Oracle現(xiàn)用數(shù)據(jù)庫

2024-08-29 13:36:17
字體:
供稿:網(wǎng)友
從數(shù)據(jù)庫調(diào)用外部處理過程的方法 Oracle9i數(shù)據(jù)庫的最大優(yōu)點(diǎn)之一,從系統(tǒng)的觀點(diǎn)來看它完全不只是一個(gè)被動的信息庫。通過內(nèi)建的PL/SQL和java語言以及調(diào)用外部程序的功能,Oracle9i數(shù)據(jù)庫能夠啟動并且完成各種處理任務(wù)。 然而,很多時(shí)候更需要完全在數(shù)據(jù)庫之外運(yùn)行一個(gè)處理過程。例如,若過程需要巨大的庫來支持,那就要以多線程方式工作或訪問由應(yīng)用程序服務(wù)器提供的資源。或許你也想在另一臺電腦上運(yùn)行處理過程,那么你就不會占用全部數(shù)據(jù)庫機(jī)器上的CPU的時(shí)間。在本專欄中,我要討論用于在數(shù)據(jù)庫外面啟動處理過程的兩種流行的方法,并給出工作示例應(yīng)用程序代碼的概要來展示這些處理方法。示例應(yīng)用程序源于一個(gè)現(xiàn)實(shí)世界當(dāng)中需要在數(shù)據(jù)庫與應(yīng)用程序服務(wù)器之間進(jìn)行復(fù)雜交互的應(yīng)用程序。下面是示例應(yīng)用程序中描述的三種處理方案: 從PL/SQL調(diào)用一個(gè)HTTP來激活一個(gè)Java Servlet。
 使用高級排隊(duì)(AQ)功能來激活一個(gè)消息驅(qū)動的bean (MDB)。
 使用AQ將數(shù)據(jù)庫中的變化通知Java客戶端應(yīng)用程序。
 圖 1 即為該示例應(yīng)用程序中的這些方案。Oracle現(xiàn)用數(shù)據(jù)庫圖1: 工作示例應(yīng)用程序的體系結(jié)構(gòu)使用UTL_HTTPUTL_HTTP提供的軟件包使你能夠從SQL和PL/SQL調(diào)出HTTP。在第一種方案中,當(dāng)有新行插入到表格中時(shí)需要從遠(yuǎn)程網(wǎng)絡(luò)服務(wù)器上提取一個(gè)文件,并將該文件保存在本地文件系統(tǒng)中。servlet將URL作為參數(shù),來完成這項(xiàng)工作。A PL/SQL ON INSERT觸發(fā)器使用UTL_HTTP來調(diào)用該servlet(它運(yùn)行于Oracle9i應(yīng)用程序服務(wù)器上)。UTL_HTTP的使用可能只是一個(gè)簡單的單行調(diào)用,否則可以通過多個(gè)調(diào)用來處理諸如認(rèn)證、代理以及cookies這一類的復(fù)雜過程。我本可以使用UTL_HTTP來提取該文件和用UTL_FILE提供的軟件包來保存該文件。然而,使用servlet都有助于保護(hù)數(shù)據(jù)庫資源,并且使我有更多的調(diào)度選擇。一個(gè)servlet能完成的各種任務(wù)的其它例子還包括調(diào)用EnterPRise JavaBean(EJB)、給某人發(fā)送即時(shí)消息、操縱圖像、進(jìn)行CORBA調(diào)用。使用高級排隊(duì)功能 在數(shù)據(jù)庫外面啟動處理過程的另一個(gè)方法是將消息排入隊(duì)列等候外部處理。AQ提供了基于Oracle9i Database而構(gòu)建的消息傳送功能。在第二種方案中,需要調(diào)用一個(gè)Web服務(wù)來確認(rèn)某些信息。PL/SQL程序?qū)⑹褂肁Q將要發(fā)送到外部程序的消息進(jìn)行排隊(duì)。因?yàn)橐粭l消息一經(jīng)成功地排入隊(duì)列,數(shù)據(jù)庫的一個(gè)事務(wù)就能完成,所以在這種方法中,使用AQ能高效地將處理過程分解成前臺處理和后臺處理。MDB是一種當(dāng)新消息到達(dá)時(shí)便自動被調(diào)用的EJB。我用MDB將消息退出隊(duì)列,并從Web服務(wù)檢索某些相關(guān)的數(shù)據(jù)。MDB會向Web服務(wù)發(fā)送一個(gè)SOAP調(diào)用并用已更改的或已更新的信息對數(shù)據(jù)庫進(jìn)行更新。使用MDB是訪問應(yīng)用程序服務(wù)器提供的服務(wù)的一個(gè)非常棒的手段。在第三種方案中,需要通知Java客戶端應(yīng)用程序數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生了變化,以便該應(yīng)用程序?qū)︼@示內(nèi)容進(jìn)行相應(yīng)的更新。和前一種方案一樣,當(dāng)數(shù)據(jù)發(fā)生變化時(shí)PL/SQL觸發(fā)器會將消息排入隊(duì)列。Java提供Java Message Service (JMS)應(yīng)用編程接口(API)用于訪問消息傳送系統(tǒng)。我已經(jīng)創(chuàng)建了一個(gè)Java應(yīng)用程序來監(jiān)控?cái)?shù)據(jù)的變化。它用JMS將由PL/SQL觸發(fā)器放入AQ的消息從隊(duì)列中退出。更多的活動可在devtrends.oracle.com 中查找全部方案和工作代碼示例以便了解更多的關(guān)于現(xiàn)用數(shù)據(jù)庫的信息。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阆中市| 洛浦县| 革吉县| 红桥区| 松潘县| 仁寿县| 武平县| 洛浦县| 佛冈县| 万载县| 轮台县| 莱芜市| 兴城市| 沭阳县| 河东区| 奇台县| 昌平区| 宜兰市| 石泉县| 团风县| 长子县| 周口市| 区。| 衡东县| 长宁县| 秦安县| 界首市| 施秉县| 北流市| 孟连| 宜都市| 山东| 大渡口区| 汉中市| 栾城县| 五台县| 名山县| 泽库县| 连南| 华安县| 江油市|