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

對Linux平臺OCI接口斷網阻塞問題的處理

2019-01-30 08:05:32顧鵬程
電子技術與軟件工程 2019年2期
關鍵詞:數據庫信號方法

文/顧鵬程

1 引言

OCI是Oracle公司提供的Oracle數據庫的C接口。一些監控系統,如軌道交通監控系統、電力調度系統等,需要在Linux平臺對OCI進行封裝。這類系統實時性要求較高,而OCI接口在Linux平臺存在斷網阻塞問題,這大大影響了系統實時性。本文提出一種對已封裝Linux平臺OCI接口的改進方法,可在接口斷網阻塞時快速切換至備網。

2 OCI網絡阻塞問題描述

長期不間斷運行的系統不可避免會出現數據庫服務器網線插拔或松動等問題,如果故障未及時恢復,OCI函數將長時間阻塞,例如在Ubuntu系統可能長達二十多分鐘,這在大多數情況下是不允許的。監控系統一般配備主備網絡,因此開發者往往希望當發生阻塞時,數據庫接口能夠自動切換網絡。

3 阻塞問題處理

3.1 理論分析

在Linux系統中對于阻塞的解決通常使用sigalarm信號,指定信號觸發時間,在可能的阻塞模塊前調用alarm函數。經過實驗,該方法只是對現有進程的打斷,無法對接口函數給出錯誤返回值,且需退出進程,無法保證事務連貫。

還有采用線程和條件變量相結合的處理方法,將接口函數置于線程中執行,用條件變量計時等待接口函數返回。該方法不必退出程序,但未考慮主備網絡切換,且條件變量方法存在弊端,即當信號先于等待發出時,信號將不再起作用,導致等待無法返回。

圖1:任務流程

本文以上方法進行總結,提出一種結合泛型、線程、信號量方法的阻塞式任務線程方法,避免了上述方法的弊端,能夠在接口阻塞時自動切換網絡。

3.2 處理流程

首先在創建數據庫連接時,創建一個任務線程,負責執行接口函數。接口函數通過泛型進入線程。當線程被獲得任務時,觸發“任務”信號以執行任務。當任務結束時,觸發“返回”信號,主線程返回結果。調用接口函數的模塊在獲得“返回”信號前將一直阻塞并計時,當任務超時,采取tnsping的方式對網絡狀況進行判斷,若網絡未斷將繼續等待;若網絡斷開,將創建備用線程和備用網絡數據庫連接,而后執行阻塞任務,并退出原線程。具體流程如圖1所示。

3.3 關鍵代碼實現

本文采用VC10實現。泛型部分參考了任務隊列的方法,增加了支持不同返回類型的修改。首先定義模版類class Base,結構體struct task_unit由class Base指針對象構造,表示任意函數任務。任務的產生由templatestatic task_unit gen(FUNCT func_, ARG1 arg1_...)實現。如果涉及引用類型參數,需要在函數中加入相應的引用符號。

阻塞任務隊列部分采用ACE庫實現,也可以選擇Linux的C++標準庫實現。線程類繼承ACE_Task_Base,信號量采用ACE_Semaphore,“任務”信號初始化為 t_sem(0),“返回”信號初始化為r_sem(0)。線程通過調用t_sem.acquire()等待任務注入。主線程將任務注入任務線程后,調用t_sem.release()觸發任務執行,調用r_sem.acquire(&timeout)等待任務完成,其中timeout為超時設置。任務結束時,線程調用ret_sem.release(),使主線程獲得返回值。

4 結論

本文方法對Linux平臺OCI接口的網絡阻塞問題進行處理,針對已封裝的接口函數,只需利用泛型、多線程、信號量,即可構造一個通用的阻塞模式任務隊列,將接口函數置于阻塞任務隊列下,在網絡阻塞時,通關新的線程調用備用網絡,解決了原本OCI接口函數長時間阻塞的問題。經過實驗,該方法對舊有接口的改造工作量小,并且能實現應用的數據庫連接在網絡發生通斷問題時進行自動切換。

猜你喜歡
數據庫信號方法
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
數據庫
財經(2016年3期)2016-03-07 07:44:46
基于LabVIEW的力加載信號采集與PID控制
數據庫
財經(2016年6期)2016-02-24 07:41:51
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
主站蜘蛛池模板: 欧美不卡视频在线| 性欧美精品xxxx| 亚洲精品成人片在线观看| 日韩小视频网站hq| 欧美亚洲网| 一级毛片基地| 国产91在线|中文| 最新亚洲人成无码网站欣赏网 | 中文成人在线| 亚洲一区二区三区中文字幕5566| 全部免费毛片免费播放| 日本欧美中文字幕精品亚洲| 国产97色在线| 久久久久久尹人网香蕉| 国产一区二区免费播放| 无码中文字幕乱码免费2| 伊人色综合久久天天| 日本中文字幕久久网站| 婷婷亚洲视频| 亚洲日本韩在线观看| 97国内精品久久久久不卡| 日本在线国产| 美女无遮挡免费视频网站| 日韩无码一二三区| 无码日韩人妻精品久久蜜桃| 国产一国产一有一级毛片视频| 久久综合伊人 六十路| 中文字幕在线视频免费| 91九色国产在线| 欧美亚洲一区二区三区导航| 亚洲成A人V欧美综合| 久久久精品久久久久三级| 中文字幕永久在线看| 国产96在线 | 99精品视频九九精品| 久久网欧美| 亚洲不卡网| 欧美伦理一区| 99久久99视频| 在线国产资源| 亚洲最新地址| 国产91高清视频| 日韩经典精品无码一区二区| 色噜噜在线观看| 91成人在线免费视频| 激情午夜婷婷| 国产精品人人做人人爽人人添| 欧日韩在线不卡视频| 国产精品自在自线免费观看| 中文国产成人精品久久| 精品亚洲欧美中文字幕在线看| 久久精品这里只有国产中文精品| 亚洲欧洲美色一区二区三区| 在线日本国产成人免费的| 精品人妻AV区| 国产高潮视频在线观看| 波多野结衣无码视频在线观看| 日本午夜影院| 欧美性猛交一区二区三区| 粗大猛烈进出高潮视频无码| 在线无码九区| 一本色道久久88亚洲综合| 免费看a级毛片| 久久窝窝国产精品午夜看片| 亚洲国产天堂久久九九九| 国产视频只有无码精品| 在线观看91香蕉国产免费| 欧美色视频在线| 亚洲综合久久成人AV| 91成人免费观看在线观看| 2021国产精品自拍| 欧美黄网在线| 日本人妻丰满熟妇区| 精品乱码久久久久久久| 国模视频一区二区| 国产亚洲日韩av在线| 99热这里只有免费国产精品| 国产成人一区免费观看| 欧美日本视频在线观看| 又污又黄又无遮挡网站| 亚洲视频无码| 真实国产乱子伦视频|