亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于PL/SQL語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)驗(yàn)證平臺(tái)中的事務(wù)處理

        2017-12-21 09:37:24劉繼敏

        劉繼敏

        摘要:在原有的數(shù)據(jù)驗(yàn)證平臺(tái)中采用軟件進(jìn)行數(shù)據(jù)交換,存在較大的因中間環(huán)節(jié)處理失敗或是單點(diǎn)故障的可能性,同時(shí)監(jiān)控困難。在新的數(shù)據(jù)驗(yàn)證平臺(tái)中直接采用在oracle中使用PL/SQL語(yǔ)言進(jìn)行事務(wù)處理,極大提高了系統(tǒng)的穩(wěn)定性和高執(zhí)行性能。

        關(guān)鍵詞:PL/SQL;數(shù)據(jù)驗(yàn)證平臺(tái);事務(wù)控制;自治性事務(wù);并發(fā)訪問(wèn)與會(huì)話

        中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2017)10-0101-01

        1 為什么選擇PLSQL腳本語(yǔ)言

        數(shù)據(jù)驗(yàn)證平臺(tái)是數(shù)據(jù)交換類型的中間平臺(tái),它作為一種數(shù)據(jù)交換服務(wù)在后臺(tái)運(yùn)行,首要解決的問(wèn)題就是平臺(tái)的穩(wěn)定性。

        數(shù)據(jù)驗(yàn)證平臺(tái)原有的設(shè)計(jì)方案是基于IBM InfoSphere DataStage軟件作為數(shù)據(jù)抽取和同步的中間層,它將各個(gè)業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫(kù)中的證書和產(chǎn)品數(shù)據(jù)同步到數(shù)據(jù)驗(yàn)證平臺(tái)的數(shù)據(jù)庫(kù)。再通過(guò)Java編寫的Web應(yīng)用進(jìn)行Job定時(shí)調(diào)度,調(diào)用總局e-CIQ的Web Service接口來(lái)發(fā)送通關(guān)驗(yàn)證平臺(tái)的證書和產(chǎn)品數(shù)據(jù)。該設(shè)計(jì)方案引入Java Web應(yīng)用和IBM InfoSphere DataStage等中間處理環(huán)節(jié),這些環(huán)節(jié)并不是必須的,而且會(huì)帶來(lái)更多的因中間環(huán)節(jié)處理失敗或是單點(diǎn)故障的可能性。同時(shí),IBM InfoSphere DataStage是第三方軟件,目前還只能從日志文件中得到每次任務(wù)處理結(jié)果信息,監(jiān)控不方便。

        新的數(shù)據(jù)驗(yàn)證平臺(tái)設(shè)計(jì)方案是完全使用ORACLE數(shù)據(jù)庫(kù)端的腳本語(yǔ)言PL/SQL來(lái)實(shí)現(xiàn),不再使用舊方案的Java Web應(yīng)用和IBM InfoSphere DataStage。新方案的所有代碼完全在數(shù)據(jù)驗(yàn)證平臺(tái)自身的數(shù)據(jù)庫(kù)中調(diào)度和運(yùn)行,具備高度穩(wěn)定性和高執(zhí)行性能。

        PL/SQL一種塊結(jié)構(gòu)的語(yǔ)言,主要用于ORACLE數(shù)據(jù)庫(kù)中。PL/SQL程序塊是最基本單位,整個(gè)PL/SQL程序塊分三部分:用DECLARE關(guān)鍵字的聲明部分、用BEGIN/END關(guān)鍵字包括的執(zhí)行部分和用EXCEPTION關(guān)鍵字的異常處理部分。程序塊是可以嵌套的,完全可以控制變量的可見(jiàn)范圍和異常范圍。PL/SQL語(yǔ)言可以完成相關(guān)的數(shù)據(jù)抽取、數(shù)據(jù)準(zhǔn)備、數(shù)據(jù)打包和數(shù)據(jù)發(fā)送等功能。

        2 面臨的技術(shù)問(wèn)題

        理論上,雖然PL/SQL可以實(shí)現(xiàn)數(shù)據(jù)驗(yàn)證平臺(tái)數(shù)據(jù)交換所有功能,但作為生產(chǎn)力語(yǔ)言,還是需要對(duì)它的語(yǔ)法規(guī)范、數(shù)據(jù)類型、程序包封裝、事務(wù)控制和自治性的事務(wù)控制(ORACLE特性功能)、并發(fā)訪問(wèn)與數(shù)據(jù)庫(kù)會(huì)話關(guān)系、異常處理、JOB功能調(diào)度和性能優(yōu)化等方面進(jìn)一步深入研究,完善解決以上各類問(wèn)題。

        3 具體實(shí)現(xiàn)方法

        3.1 JOB調(diào)度

        數(shù)據(jù)驗(yàn)證平臺(tái)主體的功能是通過(guò)JOB調(diào)度來(lái)驅(qū)動(dòng)的,使用ORACLE程序包DBMS_SCHEDULER.CREATE_JOB方法創(chuàng)建執(zhí)行JOB。以下腳本是JOB任務(wù)的創(chuàng)建、恢復(fù)、暫停和刪除腳本。在創(chuàng)建腳本中,JOB_ACTION參數(shù)值是JOB要執(zhí)行的程序代碼,該代碼調(diào)用程序包INTF_MAIN的PC_MAIN方法,即INTF_MAIN.PC_MAIN()。REPEAT_INTERVAL參數(shù)值是JOB執(zhí)行的時(shí)間間隔,DAILY是每天運(yùn)行,BYHOUR、BYMINUTE和BYSECOND是定義具體執(zhí)行的整點(diǎn)時(shí)刻。

        3.2 程序包功能

        數(shù)據(jù)驗(yàn)證平臺(tái)將所有的可執(zhí)行代碼封裝到ORACLE的PACKAGE對(duì)象中,就像剛才在創(chuàng)建JOB時(shí)調(diào)用ORACLE系統(tǒng)級(jí)的程序包DBMS_SCHEDULER一樣。程序包對(duì)象分為兩部分來(lái)定義,一是接口部分,二是實(shí)現(xiàn)部分。

        程序包INTF_MAIN包括數(shù)據(jù)驗(yàn)證平臺(tái)所有的業(yè)務(wù)功能。程序包實(shí)現(xiàn)的部分方法,包括全局變量定義和PC_MAIN方法的定義(JOB創(chuàng)建時(shí)調(diào)用的主程序方法)。

        我們?cè)趯?shí)施中可以看到還調(diào)用了INTF_LOGS包和INTF_ EMAIN包,這兩個(gè)包是我們開(kāi)發(fā)用于日志記錄包和郵件發(fā)送包。

        還可以看到,對(duì)于每個(gè)業(yè)務(wù)系統(tǒng),都會(huì)調(diào)用PC_CERTTYPE方法,傳入指定業(yè)務(wù)系統(tǒng)的系統(tǒng)ID,例如證書等系統(tǒng)。

        3.3 并發(fā)訪問(wèn)與會(huì)話

        對(duì)于ORACLE每一次后臺(tái)JOB調(diào)度,都會(huì)啟動(dòng)一個(gè)新的SESSION,即每次都是不同的SID與SERIAL#組合(SID可能會(huì)相同,但SERIAL#肯定不同)。同時(shí),程序包INTF_MAIN包體中定義的全局變量只在JOB當(dāng)前執(zhí)行的會(huì)話中可以共享訪問(wèn),在不同的會(huì)話中是不能共享數(shù)據(jù)的,因此JOB執(zhí)行任務(wù)可以并行執(zhí)行。

        3.4 事務(wù)控制

        在PC_CERTTYPE方法內(nèi)部,實(shí)現(xiàn)了數(shù)據(jù)邏輯處理的四個(gè)階段,數(shù)據(jù)接收、數(shù)據(jù)準(zhǔn)備、數(shù)據(jù)打包和數(shù)據(jù)發(fā)送。對(duì)于每一個(gè)數(shù)據(jù)處理階段,是一個(gè)完整的事務(wù)提交和回滾。如果事務(wù)提交,會(huì)提交數(shù)據(jù)和記錄日志。如果發(fā)生回滾,則會(huì)記錄日志和發(fā)送郵件。

        3.5 自治性事務(wù)

        自治事務(wù)是指一個(gè)塊結(jié)構(gòu)內(nèi)部的事務(wù)控制脫離外部調(diào)用的事務(wù)上下文,這個(gè)塊結(jié)構(gòu)本身的事務(wù)稱之為自治事務(wù),外部調(diào)用的事務(wù)稱之為主事務(wù)。自治事務(wù)通過(guò)編譯器參數(shù)PRAGMA AUTONOMOUS_ TRANSACTION來(lái)指定。自治事務(wù)由主事務(wù)啟動(dòng)后,主事務(wù)進(jìn)入掛起狀態(tài),當(dāng)自治事務(wù)執(zhí)行提交事務(wù)或回滾事務(wù)后,主事務(wù)恢復(fù)執(zhí)行,主事務(wù)做自己的提交或回滾。也就是說(shuō),即使主事務(wù)回滾,自治事務(wù)也可以提交成功的。通關(guān)驗(yàn)證平臺(tái)對(duì)于JOB執(zhí)行的日志數(shù)據(jù)記錄采用自治事務(wù)。對(duì)于每一個(gè)數(shù)據(jù)處理階段(參考PC_CERTTYPE代碼),采用一個(gè)主事務(wù)提交或回滾。但是,無(wú)論主事務(wù)是否成功,自治事務(wù)作為獨(dú)立與主事務(wù)的事務(wù),是可以提交并記錄日志的。

        3.6 PL/SQL語(yǔ)言結(jié)構(gòu)

        從PC_CERTTYPE方法中,可以看到該方法整體是一個(gè)BEGIN … END代碼結(jié)構(gòu)。對(duì)于每一個(gè)數(shù)據(jù)邏輯處理階段,又會(huì)嵌套一個(gè)BEGIN EXCEPTION END;代碼結(jié)構(gòu)。EXCEPTION中可以編寫異常處理代碼,與JAVA異常機(jī)制類似,可以定義異常、捕獲異常、拋出異常和嵌套異常。

        4 結(jié)語(yǔ)

        采用ORACLE數(shù)據(jù)庫(kù)端的腳本語(yǔ)言PL/SQL來(lái)實(shí)現(xiàn)新的數(shù)據(jù)驗(yàn)證平臺(tái)。通過(guò)實(shí)踐驗(yàn)證,具有極高的穩(wěn)定性和優(yōu)秀的性能表現(xiàn)。在具體實(shí)現(xiàn)中,針對(duì)事務(wù)處理,在JOB調(diào)度、程序包功能、并發(fā)訪問(wèn)與會(huì)話、事務(wù)控制、自治性事務(wù)處理等方面具有很強(qiáng)的處理能力。

        參考文獻(xiàn)

        [1]Oracle PL/SQL程序設(shè)計(jì)(第6版),ISBN: 9787115448750,史蒂芬·弗伊爾斯坦(Steven Feuerstein)(作者),比爾·普里比爾(Bill Pribyl)(作者),方鑫 (譯者),人民郵電出版社,2017年7月.endprint

        亚洲一区二区不卡日韩| 久久午夜夜伦鲁鲁片免费无码 | 久久精品欧美日韩精品| 欧美日韩精品一区二区在线视频 | 亚洲av男人免费久久| av素人中文字幕在线观看| 亚洲成av人片在线观看麦芽| 五月天婷婷综合网| 国产熟女乱综合一区二区三区 | 扒开美女内裤舔出白水| 国产日产综合| 国产午夜精品电影久久| 中文字幕久久熟女人妻av免费| 亚洲国产性夜夜综合另类| 亚洲日本一区二区一本一道| 国产亚洲欧美日韩综合综合二区| 激情视频国产在线观看| 女优一区二区三区在线观看 | 一区二区特别黄色大片| 色综合悠悠88久久久亚洲| 欧美人做人爱a全程免费| 啪啪免费网站| 韩国日本在线观看一区二区| 亚洲成人中文字幕在线视频| 亚洲色无码国产精品网站可下载| 深夜国产成人福利在线观看女同| 长腿丝袜在线观看国产| 国产香港明星裸体xxxx视频| 亚洲一区精品无码色成人 | 三年片在线观看免费大全电影| 国产桃色精品网站| 久久精品亚洲成在人线av乱码| 一本色道久久88综合日韩精品| 久久精品免费一区二区喷潮| 午夜日本理论片最新片| 欧美午夜理伦三级在线观看| 亚洲精品无码久久久久| 偷拍区亚洲区一区二区| 全亚洲高清视频在线观看| 亚洲av无码一区二区三区人| 国产免费一级高清淫日本片|