999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于PL/SQL語言實現數據驗證平臺中的事務處理

2017-12-21 09:37:24劉繼敏
數字技術與應用 2017年10期

劉繼敏

摘要:在原有的數據驗證平臺中采用軟件進行數據交換,存在較大的因中間環節處理失敗或是單點故障的可能性,同時監控困難。在新的數據驗證平臺中直接采用在oracle中使用PL/SQL語言進行事務處理,極大提高了系統的穩定性和高執行性能。

關鍵詞:PL/SQL;數據驗證平臺;事務控制;自治性事務;并發訪問與會話

中圖分類號:TP311 文獻標識碼:A 文章編號:1007-9416(2017)10-0101-01

1 為什么選擇PLSQL腳本語言

數據驗證平臺是數據交換類型的中間平臺,它作為一種數據交換服務在后臺運行,首要解決的問題就是平臺的穩定性。

數據驗證平臺原有的設計方案是基于IBM InfoSphere DataStage軟件作為數據抽取和同步的中間層,它將各個業務系統數據庫中的證書和產品數據同步到數據驗證平臺的數據庫。再通過Java編寫的Web應用進行Job定時調度,調用總局e-CIQ的Web Service接口來發送通關驗證平臺的證書和產品數據。該設計方案引入Java Web應用和IBM InfoSphere DataStage等中間處理環節,這些環節并不是必須的,而且會帶來更多的因中間環節處理失敗或是單點故障的可能性。同時,IBM InfoSphere DataStage是第三方軟件,目前還只能從日志文件中得到每次任務處理結果信息,監控不方便。

新的數據驗證平臺設計方案是完全使用ORACLE數據庫端的腳本語言PL/SQL來實現,不再使用舊方案的Java Web應用和IBM InfoSphere DataStage。新方案的所有代碼完全在數據驗證平臺自身的數據庫中調度和運行,具備高度穩定性和高執行性能。

PL/SQL一種塊結構的語言,主要用于ORACLE數據庫中。PL/SQL程序塊是最基本單位,整個PL/SQL程序塊分三部分:用DECLARE關鍵字的聲明部分、用BEGIN/END關鍵字包括的執行部分和用EXCEPTION關鍵字的異常處理部分。程序塊是可以嵌套的,完全可以控制變量的可見范圍和異常范圍。PL/SQL語言可以完成相關的數據抽取、數據準備、數據打包和數據發送等功能。

2 面臨的技術問題

理論上,雖然PL/SQL可以實現數據驗證平臺數據交換所有功能,但作為生產力語言,還是需要對它的語法規范、數據類型、程序包封裝、事務控制和自治性的事務控制(ORACLE特性功能)、并發訪問與數據庫會話關系、異常處理、JOB功能調度和性能優化等方面進一步深入研究,完善解決以上各類問題。

3 具體實現方法

3.1 JOB調度

數據驗證平臺主體的功能是通過JOB調度來驅動的,使用ORACLE程序包DBMS_SCHEDULER.CREATE_JOB方法創建執行JOB。以下腳本是JOB任務的創建、恢復、暫停和刪除腳本。在創建腳本中,JOB_ACTION參數值是JOB要執行的程序代碼,該代碼調用程序包INTF_MAIN的PC_MAIN方法,即INTF_MAIN.PC_MAIN()。REPEAT_INTERVAL參數值是JOB執行的時間間隔,DAILY是每天運行,BYHOUR、BYMINUTE和BYSECOND是定義具體執行的整點時刻。

3.2 程序包功能

數據驗證平臺將所有的可執行代碼封裝到ORACLE的PACKAGE對象中,就像剛才在創建JOB時調用ORACLE系統級的程序包DBMS_SCHEDULER一樣。程序包對象分為兩部分來定義,一是接口部分,二是實現部分。

程序包INTF_MAIN包括數據驗證平臺所有的業務功能。程序包實現的部分方法,包括全局變量定義和PC_MAIN方法的定義(JOB創建時調用的主程序方法)。

我們在實施中可以看到還調用了INTF_LOGS包和INTF_ EMAIN包,這兩個包是我們開發用于日志記錄包和郵件發送包。

還可以看到,對于每個業務系統,都會調用PC_CERTTYPE方法,傳入指定業務系統的系統ID,例如證書等系統。

3.3 并發訪問與會話

對于ORACLE每一次后臺JOB調度,都會啟動一個新的SESSION,即每次都是不同的SID與SERIAL#組合(SID可能會相同,但SERIAL#肯定不同)。同時,程序包INTF_MAIN包體中定義的全局變量只在JOB當前執行的會話中可以共享訪問,在不同的會話中是不能共享數據的,因此JOB執行任務可以并行執行。

3.4 事務控制

在PC_CERTTYPE方法內部,實現了數據邏輯處理的四個階段,數據接收、數據準備、數據打包和數據發送。對于每一個數據處理階段,是一個完整的事務提交和回滾。如果事務提交,會提交數據和記錄日志。如果發生回滾,則會記錄日志和發送郵件。

3.5 自治性事務

自治事務是指一個塊結構內部的事務控制脫離外部調用的事務上下文,這個塊結構本身的事務稱之為自治事務,外部調用的事務稱之為主事務。自治事務通過編譯器參數PRAGMA AUTONOMOUS_ TRANSACTION來指定。自治事務由主事務啟動后,主事務進入掛起狀態,當自治事務執行提交事務或回滾事務后,主事務恢復執行,主事務做自己的提交或回滾。也就是說,即使主事務回滾,自治事務也可以提交成功的。通關驗證平臺對于JOB執行的日志數據記錄采用自治事務。對于每一個數據處理階段(參考PC_CERTTYPE代碼),采用一個主事務提交或回滾。但是,無論主事務是否成功,自治事務作為獨立與主事務的事務,是可以提交并記錄日志的。

3.6 PL/SQL語言結構

從PC_CERTTYPE方法中,可以看到該方法整體是一個BEGIN … END代碼結構。對于每一個數據邏輯處理階段,又會嵌套一個BEGIN EXCEPTION END;代碼結構。EXCEPTION中可以編寫異常處理代碼,與JAVA異常機制類似,可以定義異常、捕獲異常、拋出異常和嵌套異常。

4 結語

采用ORACLE數據庫端的腳本語言PL/SQL來實現新的數據驗證平臺。通過實踐驗證,具有極高的穩定性和優秀的性能表現。在具體實現中,針對事務處理,在JOB調度、程序包功能、并發訪問與會話、事務控制、自治性事務處理等方面具有很強的處理能力。

參考文獻

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

主站蜘蛛池模板: 国产毛片基地| 无码精品国产dvd在线观看9久| 久久国产热| 第一区免费在线观看| 91欧美在线| 国产91无码福利在线| 亚洲码在线中文在线观看| 国产中文一区a级毛片视频| 色亚洲成人| 亚洲精品日产AⅤ| 久久这里只有精品2| 免费视频在线2021入口| 免费看av在线网站网址| 制服丝袜在线视频香蕉| 国产杨幂丝袜av在线播放| 精品久久蜜桃| 日本亚洲欧美在线| 国产免费好大好硬视频| 日韩不卡高清视频| 欧美综合激情| 在线观看国产黄色| 欧美一区二区三区国产精品| 亚洲成人动漫在线观看| 国产哺乳奶水91在线播放| 99视频在线看| 亚洲欧美极品| 国产福利免费视频| 亚洲精品在线影院| 国产精品粉嫩| 沈阳少妇高潮在线| 精品国产香蕉在线播出| 欧美激情综合一区二区| 福利小视频在线播放| 五月天香蕉视频国产亚| 一级毛片免费播放视频| 超清无码一区二区三区| 成年看免费观看视频拍拍| 韩国福利一区| 亚洲欧美成人网| 亚洲精品成人片在线播放| 在线综合亚洲欧美网站| 亚洲精品你懂的| 国产午夜在线观看视频| 91娇喘视频| 成人av手机在线观看| 99精品福利视频| 天天躁夜夜躁狠狠躁躁88| 在线永久免费观看的毛片| 曰韩免费无码AV一区二区| 99久久婷婷国产综合精| 国产免费a级片| 国产无码精品在线| 久久精品亚洲专区| 欧美成人二区| 亚洲欧美精品一中文字幕| 亚洲综合色婷婷中文字幕| 国产亚洲欧美在线中文bt天堂| lhav亚洲精品| 波多野结衣中文字幕一区二区| av无码一区二区三区在线| 波多野结衣中文字幕一区二区| 亚洲色偷偷偷鲁综合| www.狠狠| 老司国产精品视频91| 亚洲福利视频网址| Jizz国产色系免费| 亚洲精品成人片在线播放| 欧美福利在线观看| 91破解版在线亚洲| 亚洲欧美成人综合| 黄色片中文字幕| 91免费国产在线观看尤物| 国产亚洲精品资源在线26u| 国产幂在线无码精品| 国产美女在线免费观看| 激情网址在线观看| 亚洲女同一区二区| 中文成人在线视频| 人妻丝袜无码视频| 午夜啪啪福利| 亚洲无码视频一区二区三区| 欧美三级自拍|