一種實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅姆椒跋到y(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅姆椒?,用于避免查詢或?qū)С稣?qǐng)求長(zhǎng)時(shí)間無(wú)響應(yīng)以及避免WAS服務(wù)器線程阻塞,該方法包括:接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求,將查詢請(qǐng)求或?qū)С稣?qǐng)求的標(biāo)識(shí)返回給用戶瀏覽器,以使用戶瀏覽器在顯示的等待頁(yè)面中插入標(biāo)識(shí);啟動(dòng)線程或進(jìn)程向數(shù)據(jù)庫(kù)接口發(fā)送查詢請(qǐng)求或?qū)С稣?qǐng)求,接收數(shù)據(jù)庫(kù)接口返回的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù);接收用戶瀏覽器發(fā)送的包括標(biāo)識(shí)的結(jié)果查詢請(qǐng)求,查詢是否獲得標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給用戶瀏覽器進(jìn)行展示。本發(fā)明還公開(kāi)了實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng)。
【專利說(shuō)明】
一種實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅姆椒跋到y(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域,具體涉及一種實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅姆椒跋到y(tǒng)。
【背景技術(shù)】
[0002]在一些分析類系統(tǒng)中,往往需要對(duì)大數(shù)據(jù)表進(jìn)行查詢和導(dǎo)出,涉及數(shù)據(jù)量較大。在現(xiàn)有技術(shù)中,通常采用同步查詢或?qū)С龅姆绞?,用戶通過(guò)在瀏覽器點(diǎn)擊查詢或?qū)С霭粹o,前端WAS(WebSphere Applicat1n Server ,WebSphere應(yīng)用服務(wù)器)應(yīng)用戶請(qǐng)求生成查詢或?qū)С稣?qǐng)求并通過(guò)訪問(wèn)數(shù)據(jù)庫(kù)處理該查詢或?qū)С稣?qǐng)求。
[0003]由于資源的限制以及關(guān)系型數(shù)據(jù)庫(kù)本身的技術(shù)限制,不可避免地會(huì)遇到數(shù)據(jù)庫(kù)查詢語(yǔ)句執(zhí)行較慢或者導(dǎo)出數(shù)據(jù)量過(guò)大,導(dǎo)致無(wú)法快速返回查詢和導(dǎo)出結(jié)果的情況;另一方面,WAS會(huì)監(jiān)視應(yīng)用戶請(qǐng)求啟動(dòng)的線程活動(dòng),當(dāng)其檢測(cè)到線程處于活動(dòng)狀態(tài)的時(shí)間超過(guò)了線程監(jiān)視器閾值所定義的時(shí)間時(shí),WAS將在WAS日志中記錄一條警告,指出被掛起線程的名稱及其已處于活動(dòng)狀態(tài)的時(shí)間,當(dāng)同時(shí)掛起的WAS線程數(shù)大于閾值,則報(bào)警到監(jiān)控平臺(tái)和/或自動(dòng)重啟該WAS。因此,在現(xiàn)有技術(shù)中,存在處理查詢或?qū)С龊臅r(shí)過(guò)長(zhǎng),用戶瀏覽器處于長(zhǎng)時(shí)間沒(méi)有響應(yīng)狀態(tài)以及容易造成WAS線程阻塞,導(dǎo)致線程掛起及線程池溢出的技術(shù)問(wèn)題。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供一種實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅姆椒跋到y(tǒng),以解決現(xiàn)有技術(shù)中存在處理查詢或?qū)С龊臅r(shí)過(guò)長(zhǎng),用戶瀏覽器處于長(zhǎng)時(shí)間沒(méi)有響應(yīng)狀態(tài)以及容易造成WAS線程阻塞,導(dǎo)致線程掛起及線程池溢出的技術(shù)問(wèn)題。
[0005]為解決上述問(wèn)題,本發(fā)明提供的技術(shù)方案如下:
[0006]—種實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅姆椒ǎ龇椒ò?
[0007]接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求,將所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)返回給所述用戶瀏覽器,以使所述用戶瀏覽器在顯示的等待頁(yè)面中插入所述標(biāo)識(shí);
[0008]啟動(dòng)線程或進(jìn)程向數(shù)據(jù)庫(kù)接口發(fā)送所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求,接收所述數(shù)據(jù)庫(kù)接口返回的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù);
[0009]接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求,查詢是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示。
[0010]相應(yīng)的,所述方法應(yīng)用于實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng),所述系統(tǒng)運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS,所述系統(tǒng)包括觸發(fā)模塊、請(qǐng)求管理器以及線程池;
[0011]所述接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求,將所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)返回給所述用戶瀏覽器,包括:
[0012]所述觸發(fā)模塊接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求并發(fā)送給所述請(qǐng)求管理器;
[0013]所述請(qǐng)求管理器生成所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)并發(fā)送給所述觸發(fā)模塊;
[0014]所述觸發(fā)模塊將所述標(biāo)識(shí)返回給所述用戶瀏覽器。
[0015]相應(yīng)的,所述啟動(dòng)線程或進(jìn)程向數(shù)據(jù)庫(kù)接口發(fā)送所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求,接收所述數(shù)據(jù)庫(kù)接口返回的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),包括:
[0016]所述請(qǐng)求管理器向所述線程池發(fā)送所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求;
[0017]所述線程池啟動(dòng)線程執(zhí)行向數(shù)據(jù)庫(kù)接口發(fā)送所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求,在所述數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后接收所述查詢結(jié)果數(shù)據(jù)或所述導(dǎo)出數(shù)據(jù),并通知所述請(qǐng)求管理器已獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)。
[0018]相應(yīng)的,所述接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求,查詢是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示,包括:
[0019]所述觸發(fā)模塊接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求并發(fā)送給所述請(qǐng)求管理器;
[0020]所述請(qǐng)求管理器查詢所述查詢是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則從所述線程池獲取所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)并發(fā)送給所述觸發(fā)t吳塊;
[0021]所述觸發(fā)模塊將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示。
[0022]相應(yīng)的,所述方法應(yīng)用于實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng),所述系統(tǒng)包括觸發(fā)模塊、請(qǐng)求數(shù)據(jù)庫(kù)以及后臺(tái)進(jìn)程模塊,所述觸發(fā)模塊運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS;
[0023]所述接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求,將所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)返回給所述用戶瀏覽器,包括:
[0024]所述觸發(fā)模塊接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求并發(fā)送給所述請(qǐng)求數(shù)據(jù)庫(kù);
[0025]所述請(qǐng)求數(shù)據(jù)庫(kù)生成所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)并發(fā)送給所述觸發(fā)模塊;
[0026]所述觸發(fā)模塊將所述標(biāo)識(shí)返回給所述用戶瀏覽器。
[0027]相應(yīng)的,所述啟動(dòng)線程或進(jìn)程向數(shù)據(jù)庫(kù)接口發(fā)送所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求,接收所述數(shù)據(jù)庫(kù)接口返回的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),包括:
[0028]所述后臺(tái)進(jìn)程模塊中的生產(chǎn)者進(jìn)程從所述請(qǐng)求數(shù)據(jù)庫(kù)中獲取未處理的所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求并放入請(qǐng)求隊(duì)列,所述后臺(tái)進(jìn)程模塊中的消費(fèi)者進(jìn)程從所述請(qǐng)求隊(duì)列中獲取一條所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求發(fā)送給數(shù)據(jù)庫(kù)接口,在所述數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后將所述查詢結(jié)果數(shù)據(jù)或所述導(dǎo)出數(shù)據(jù)發(fā)送給所述請(qǐng)求數(shù)據(jù)庫(kù)。
[0029]相應(yīng)的,所述接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求,查詢是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示,包括:
[0030]所述觸發(fā)模塊接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求并發(fā)送給所述請(qǐng)求數(shù)據(jù)庫(kù);
[0031]所述請(qǐng)求數(shù)據(jù)庫(kù)查詢所述查詢是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)并發(fā)送給所述觸發(fā)模塊;
[0032]所述觸發(fā)模塊將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示。
[0033]相應(yīng)的,所述方法應(yīng)用于所述方法應(yīng)用于實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng),所述系統(tǒng)包括觸發(fā)模塊、消息中間件以及后臺(tái)進(jìn)程模塊,所述觸發(fā)模塊運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS;
[0034]所述接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求,將所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)返回給所述用戶瀏覽器,包括:
[0035]所述觸發(fā)模塊接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求以及所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí);
[0036]所述觸發(fā)模塊將所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求發(fā)送給所述消息中間件中的請(qǐng)求消息隊(duì)列,并將所述標(biāo)識(shí)返回給所述用戶瀏覽器。
[0037]相應(yīng)的,所述啟動(dòng)線程或進(jìn)程向數(shù)據(jù)庫(kù)接口發(fā)送所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求,接收所述數(shù)據(jù)庫(kù)接口返回的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),包括:
[0038]所述后臺(tái)進(jìn)程模塊監(jiān)聽(tīng)所述請(qǐng)求消息隊(duì)列,當(dāng)所述請(qǐng)求消息隊(duì)列接收到所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求后,所述后臺(tái)進(jìn)程中的消息驅(qū)動(dòng)組件從所述請(qǐng)求消息隊(duì)列中獲取所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求發(fā)送給數(shù)據(jù)庫(kù)接口,在所述數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后將所述查詢結(jié)果數(shù)據(jù)或所述導(dǎo)出數(shù)據(jù)發(fā)送給所述消息中間件中的返回消息隊(duì)列。
[0039]相應(yīng)的,所述接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求,查詢是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示,包括:
[0040]所述觸發(fā)模塊接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求并查詢所述返回消息隊(duì)列是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則從所述返回消息隊(duì)列獲取所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù);
[0041]所述觸發(fā)模塊將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示。
[0042]一種實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng),所述系統(tǒng)運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS,所述系統(tǒng)包括:觸發(fā)模塊、請(qǐng)求管理器以及線程池;
[0043]所述觸發(fā)模塊,用于接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求并發(fā)送給所述請(qǐng)求管理器,將所述請(qǐng)求管理器生成的所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)返回給所述用戶瀏覽器;
[0044]所述請(qǐng)求管理器,用于生成所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)并發(fā)送給所述觸發(fā)模塊;向所述線程池發(fā)送所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求;
[0045]所述線程池,用于啟動(dòng)線程執(zhí)行向數(shù)據(jù)庫(kù)接口發(fā)送所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求,在所述數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后接收所述查詢結(jié)果數(shù)據(jù)或所述導(dǎo)出數(shù)據(jù),并通知所述請(qǐng)求管理器已獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù);
[0046]所述觸發(fā)模塊,還用于接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求;
[0047]所述請(qǐng)求管理器,還用于查詢是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)并發(fā)送給所述觸發(fā)模塊;
[0048]所述觸發(fā)模塊,還用于將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示。
[0049]—種實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng),所述系統(tǒng)包括:觸發(fā)模塊、請(qǐng)求數(shù)據(jù)庫(kù)以及后臺(tái)進(jìn)程模塊,所述觸發(fā)模塊運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS,所述后臺(tái)進(jìn)程模塊包括生產(chǎn)者進(jìn)程以及消費(fèi)者進(jìn)程;
[0050]所述觸發(fā)模塊,用于接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求并發(fā)送給所述請(qǐng)求數(shù)據(jù)庫(kù),將所述請(qǐng)求數(shù)據(jù)庫(kù)生成的所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)返回給所述用戶瀏覽器;
[0051]所述請(qǐng)求數(shù)據(jù)庫(kù),用于生成所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)并發(fā)送給所述觸發(fā)豐吳塊;
[0052]所述生產(chǎn)者進(jìn)程,用于從所述請(qǐng)求數(shù)據(jù)庫(kù)中獲取未處理的所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求并放入請(qǐng)求隊(duì)列;
[0053]所述消費(fèi)者進(jìn)程,用于從所述請(qǐng)求隊(duì)列中獲取一條所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求發(fā)送給數(shù)據(jù)庫(kù)接口,在所述數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后將所述查詢結(jié)果數(shù)據(jù)或所述導(dǎo)出數(shù)據(jù)發(fā)送給所述請(qǐng)求數(shù)據(jù)庫(kù);
[0054]所述觸發(fā)模塊,還用于接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求并發(fā)送給所述請(qǐng)求數(shù)據(jù)庫(kù);
[0055]所述請(qǐng)求數(shù)據(jù)庫(kù),還用于查詢所述查詢是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)并發(fā)送給所述觸發(fā)模塊;
[0056]所述觸發(fā)模塊,還用于將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示。
[0057]—種實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng),所述系統(tǒng)包括:觸發(fā)模塊、消息中間件以及后臺(tái)進(jìn)程模塊,所述觸發(fā)模塊運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS,所述消息中間件包括請(qǐng)求消息隊(duì)列以及返回消息隊(duì)列;
[0058]所述觸發(fā)模塊,用于接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求以及所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí);將所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求發(fā)送給所述請(qǐng)求消息隊(duì)列,并將所述標(biāo)識(shí)返回給所述用戶瀏覽器;
[0059]所述后臺(tái)進(jìn)程模塊,用于監(jiān)聽(tīng)所述請(qǐng)求消息隊(duì)列,當(dāng)所述請(qǐng)求消息隊(duì)列接收到所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求后,消息驅(qū)動(dòng)組件從所述請(qǐng)求消息隊(duì)列中獲取所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求發(fā)送給數(shù)據(jù)庫(kù)接口,在所述數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后將所述查詢結(jié)果數(shù)據(jù)或所述導(dǎo)出數(shù)據(jù)發(fā)送給所述返回消息隊(duì)列;
[0060]所述觸發(fā)模塊,還用于接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求并查詢所述返回消息隊(duì)列是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則從所述返回消息隊(duì)列獲取所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù);將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示。
[0061]由此可見(jiàn),本發(fā)明實(shí)施例具有如下有益效果:
[0062]本發(fā)明實(shí)施例通過(guò)異步方式實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С?,在生成查詢?qǐng)求或?qū)С稣?qǐng)求后用戶瀏覽器直接返回等待頁(yè)面,而不是一直等待后臺(tái)數(shù)據(jù)庫(kù)返回查詢或?qū)С鼋Y(jié)果,此時(shí)用戶還可以進(jìn)行其他操作;啟動(dòng)線程或進(jìn)程處理查詢或?qū)С稣?qǐng)求,此時(shí)WAS不監(jiān)控自己?jiǎn)?dòng)的線程或其他進(jìn)程,避免出現(xiàn)線程掛起的警告;最后由用戶主動(dòng)觸發(fā)或采用輪詢的方式查詢請(qǐng)求是否處理完成,根據(jù)狀態(tài)決定返回等待頁(yè)面繼續(xù)等待或者展示結(jié)果數(shù)據(jù),避免了由于數(shù)據(jù)庫(kù)查詢語(yǔ)句執(zhí)行較慢或者導(dǎo)出數(shù)據(jù)量過(guò)大導(dǎo)致查詢或?qū)С稣?qǐng)求長(zhǎng)時(shí)間沒(méi)有響應(yīng)。
【附圖說(shuō)明】
[0063]圖1為現(xiàn)有技術(shù)中同步查詢或?qū)С龅倪^(guò)程示意圖;
[0064]圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)查詢或?qū)С龅姆椒▽?shí)施例一的流程圖;
[0065]圖3為本發(fā)明實(shí)施例異步查詢或?qū)С龅倪^(guò)程示意圖;
[0066]圖4為本發(fā)明實(shí)施例提供的數(shù)據(jù)查詢或?qū)С龅姆椒▽?shí)施例二的示意圖;
[0067]圖5為本發(fā)明實(shí)施例提供的數(shù)據(jù)查詢或?qū)С龅姆椒▽?shí)施例三的示意圖;
[0068]圖6為本發(fā)明實(shí)施例提供的數(shù)據(jù)查詢或?qū)С龅姆椒▽?shí)施例四的示意圖;
[0069]圖7為本發(fā)明實(shí)施例提供的數(shù)據(jù)查詢或?qū)С龅南到y(tǒng)實(shí)施例一的示意圖;
[0070]圖8為本發(fā)明實(shí)施例提供的數(shù)據(jù)查詢或?qū)С龅南到y(tǒng)實(shí)施例二的示意圖;
[0071]圖9為本發(fā)明實(shí)施例提供的數(shù)據(jù)查詢或?qū)С龅南到y(tǒng)實(shí)施例三的示意圖。
【具體實(shí)施方式】
[0072]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明實(shí)施例作進(jìn)一步詳細(xì)的說(shuō)明。
[0073]在現(xiàn)有技術(shù)中通常采用同步查詢或?qū)С龅姆绞?,參?jiàn)圖1所示,同步查詢或?qū)С隹梢苑譃槿齻€(gè)階段:
[0074]在第一階段用戶點(diǎn)擊查詢或?qū)С霭粹o,用戶瀏覽器頁(yè)面生成http(HyperTeXtTransfer Protocol,超文本傳輸協(xié)議)請(qǐng)求發(fā)送給系統(tǒng);在第二階段系統(tǒng)處理http請(qǐng)求,獲取其中的請(qǐng)求參數(shù)生成SQL查詢請(qǐng)求或?qū)С稣?qǐng)求,訪問(wèn)數(shù)據(jù)庫(kù)查詢或?qū)С?,?shù)據(jù)庫(kù)返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是查詢請(qǐng)求,系統(tǒng)封裝查詢結(jié)果數(shù)據(jù)返回給用戶瀏覽器頁(yè)面展示,如果是導(dǎo)出請(qǐng)求,系統(tǒng)根據(jù)導(dǎo)出結(jié)果生成導(dǎo)出文件,返回導(dǎo)出數(shù)據(jù);第三階段用戶瀏覽器頁(yè)面獲取查詢結(jié)果展示或下載導(dǎo)出數(shù)據(jù)。
[0075]由于資源的限制以及關(guān)系型數(shù)據(jù)庫(kù)本身的技術(shù)限制,對(duì)查詢語(yǔ)句的優(yōu)化能力往往是有限的,無(wú)法將查詢語(yǔ)句優(yōu)化到秒級(jí)。這樣用戶瀏覽器在第二階段一直處于無(wú)響應(yīng)的等待狀態(tài),無(wú)法進(jìn)行其他處理,如果第二階段處理耗時(shí)過(guò)長(zhǎng),則用戶瀏覽器處于長(zhǎng)時(shí)間無(wú)響應(yīng)狀態(tài);另一方面,系統(tǒng)例如WAS服務(wù)器會(huì)監(jiān)視第二階段響應(yīng)用戶請(qǐng)求而啟動(dòng)處理查詢或?qū)С龅木€程,當(dāng)檢測(cè)到線程處于活動(dòng)狀態(tài)的時(shí)間超過(guò)了線程監(jiān)視器閾值所定義的時(shí)間(默認(rèn)為10分鐘)時(shí),應(yīng)用程序服務(wù)器將在WAS日志中記錄一條警告,指出被掛起線程的名稱及其已處于活動(dòng)狀態(tài)的時(shí)間,在實(shí)際應(yīng)用中,例如可以設(shè)置WAS日志監(jiān)控規(guī)則為:一個(gè)服務(wù)器上若同時(shí)掛起的WAS線程數(shù)大于25,則報(bào)警到監(jiān)控平臺(tái);若同時(shí)掛起的WAS線程數(shù)大于70,則報(bào)警到監(jiān)控平臺(tái),并自動(dòng)重啟該服務(wù)器。
[0076]針對(duì)以上問(wèn)題,本發(fā)明實(shí)施例提出通過(guò)異步查詢或異步導(dǎo)出的方式,將耗費(fèi)時(shí)間較長(zhǎng)的長(zhǎng)查詢交易轉(zhuǎn)變成對(duì)用戶可見(jiàn)的短交易,避免用戶長(zhǎng)時(shí)間等待和大量WAS線程阻塞導(dǎo)致服務(wù)器重啟的技術(shù)問(wèn)題。
[0077]參見(jiàn)圖2所示,是本發(fā)明實(shí)施例中提供的實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅姆椒▽?shí)施例一,可以包括以下步驟:
[0078]步驟201:接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求,將查詢請(qǐng)求或?qū)С稣?qǐng)求的標(biāo)識(shí)返回給用戶瀏覽器,以使用戶瀏覽器在顯示的等待頁(yè)面中插入標(biāo)識(shí)。
[0079]本發(fā)明實(shí)施例可以應(yīng)用于實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng),可以包括觸發(fā)模塊、請(qǐng)求管理器以及線程池,該實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng)該可以運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS,或者實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng)可以包括觸發(fā)模塊、請(qǐng)求數(shù)據(jù)庫(kù)以及后臺(tái)進(jìn)程模塊,或者實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng)也可以包括觸發(fā)模塊、消息中間件以及后臺(tái)進(jìn)程模塊,其中觸發(fā)模塊可以運(yùn)行于WAS。用戶在用戶瀏覽器通過(guò)點(diǎn)擊查詢或?qū)С霭粹o向系統(tǒng)發(fā)送查詢或?qū)С龅恼?qǐng)求參數(shù),例如需要查詢或?qū)С瞿骋粫r(shí)間段內(nèi)的某種數(shù)據(jù),系統(tǒng)在接收到請(qǐng)求參數(shù)后生成包括SQL(Structured Query Language,結(jié)構(gòu)化查詢語(yǔ)言)查詢語(yǔ)句以及其他請(qǐng)求信息的查詢請(qǐng)求或?qū)С稣?qǐng)求,每一個(gè)查詢請(qǐng)求或?qū)С稣?qǐng)求都對(duì)應(yīng)唯一的標(biāo)識(shí),該標(biāo)識(shí)會(huì)記錄在等待頁(yè)面用于刷新頁(yè)面時(shí)查詢?cè)摌?biāo)識(shí)對(duì)應(yīng)的查詢請(qǐng)求或?qū)С稣?qǐng)求是否已經(jīng)處理完成。
[0080]步驟202:啟動(dòng)線程或進(jìn)程向數(shù)據(jù)庫(kù)接口發(fā)送查詢請(qǐng)求或?qū)С稣?qǐng)求,接收數(shù)據(jù)庫(kù)接口返回的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)。
[0081]可以采用WAS自己?jiǎn)?dòng)線程處理查詢請(qǐng)求或?qū)С稣?qǐng)求,或者啟動(dòng)另外的后臺(tái)進(jìn)程處理查詢請(qǐng)求或?qū)С稣?qǐng)求,WAS不監(jiān)測(cè)自己?jiǎn)?dòng)的線程,WAS也不會(huì)監(jiān)測(cè)其他后臺(tái)進(jìn)程,這樣即使處理查詢請(qǐng)求或?qū)С稣?qǐng)求的耗時(shí)較長(zhǎng),也不會(huì)出現(xiàn)WAS線程hung住導(dǎo)致報(bào)警以及服務(wù)器重啟的問(wèn)題。
[0082]步驟203:接收用戶瀏覽器發(fā)送的包括標(biāo)識(shí)的結(jié)果查詢請(qǐng)求,查詢是否獲得標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給用戶瀏覽器進(jìn)行展示。
[0083]參見(jiàn)圖3所示,本發(fā)明實(shí)施例采用的異步查詢或?qū)С鐾瑯涌梢苑譃槿齻€(gè)階段:
[0084]在第一階段用戶點(diǎn)擊查詢或?qū)С霭粹o,系統(tǒng)獲取請(qǐng)求參數(shù),生成查詢請(qǐng)求或?qū)С稣?qǐng)求,用戶瀏覽器返回等待頁(yè)面,等待頁(yè)面中插入查詢請(qǐng)求或?qū)С稣?qǐng)求的標(biāo)識(shí);在第二階段系統(tǒng)啟動(dòng)線程或者后臺(tái)進(jìn)程的方式,處理查詢請(qǐng)求或?qū)С稣?qǐng)求,訪問(wèn)數(shù)據(jù)庫(kù)返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù);在第三階段用戶輪詢或者主動(dòng)刷新等待頁(yè)面,系統(tǒng)查詢請(qǐng)求處理狀態(tài),如果請(qǐng)求尚未處理完畢,則返回等待頁(yè)面,如果請(qǐng)求已處理完畢,頁(yè)面展示查詢結(jié)果數(shù)據(jù)或者導(dǎo)出數(shù)據(jù)。
[0085]與現(xiàn)有技術(shù)的同步查詢或?qū)С鱿啾?,本發(fā)明實(shí)施例中異步查詢或?qū)С龅娜齻€(gè)階段中,第一階段系統(tǒng)生成查詢或?qū)С稣?qǐng)求后用戶瀏覽器直接返回等待頁(yè)面,而不是等待后臺(tái)數(shù)據(jù)庫(kù)返回查詢或?qū)С鼋Y(jié)果,此時(shí)用戶還可以進(jìn)行其他操作;第二階段由系統(tǒng)啟動(dòng)線程或者后臺(tái)進(jìn)程的方式,處理查詢和導(dǎo)出請(qǐng)求,此時(shí)WAS并不監(jiān)控這些啟動(dòng)的線程或進(jìn)程,避免出現(xiàn)線程掛起的警告;第三階段由用戶主動(dòng)觸發(fā)或前端javascript觸發(fā)查詢,系統(tǒng)檢查查詢或?qū)С稣?qǐng)求的處理狀態(tài),根據(jù)狀態(tài)決定是返回等待頁(yè)面繼續(xù)等待或者返回結(jié)果頁(yè)面進(jìn)行結(jié)果展示或下載。異步查詢與導(dǎo)出通過(guò)以上步驟,避免了由于數(shù)據(jù)庫(kù)查詢語(yǔ)句執(zhí)行較慢或者導(dǎo)出數(shù)據(jù)量過(guò)大,導(dǎo)致查詢或?qū)С稣?qǐng)求長(zhǎng)時(shí)間沒(méi)有響應(yīng)。
[0086]參見(jiàn)圖4所示,在本發(fā)明的一些可能的實(shí)現(xiàn)方式中,本發(fā)明實(shí)施例中提供的實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅姆椒梢詰?yīng)用于實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng),該系統(tǒng)可以運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS,該系統(tǒng)可以包括觸發(fā)模塊Act 1n、請(qǐng)求管理器Request Manager以及線程池ThreadPoolExecutor,在本實(shí)施例中,實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅姆椒梢园?
[0087]步驟401:用戶通過(guò)用戶瀏覽器點(diǎn)擊查詢或?qū)С霭粹o發(fā)送請(qǐng)求參數(shù),觸發(fā)模塊接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù)。
[0088]步驟402:觸發(fā)模塊根據(jù)請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求并發(fā)送給請(qǐng)求管理器。
[0089]步驟403:請(qǐng)求管理器生成查詢請(qǐng)求或?qū)С稣?qǐng)求的標(biāo)識(shí)并發(fā)送給觸發(fā)模塊。
[0090]步驟404:觸發(fā)模塊將查詢請(qǐng)求或?qū)С稣?qǐng)求的標(biāo)識(shí)返回給用戶瀏覽器,用戶瀏覽器返回等待頁(yè)面,并可以設(shè)置刷新時(shí)間。
[0091]步驟405:請(qǐng)求管理器向線程池發(fā)送查詢請(qǐng)求或?qū)С稣?qǐng)求。
[0092]步驟406:調(diào)用線程池啟動(dòng)線程執(zhí)行向數(shù)據(jù)庫(kù)接口DataBase Access Object發(fā)送查詢請(qǐng)求或?qū)С稣?qǐng)求,由數(shù)據(jù)庫(kù)執(zhí)行查詢請(qǐng)求或?qū)С稣?qǐng)求;
[0093]步驟407:在數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后接收查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),并通知請(qǐng)求管理器已獲得標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)。請(qǐng)求管理器可以記錄標(biāo)識(shí)對(duì)應(yīng)的查詢請(qǐng)求或?qū)С稣?qǐng)求的狀態(tài),即可以查詢得到是否已經(jīng)獲得標(biāo)識(shí)對(duì)應(yīng)的查詢請(qǐng)求或?qū)С稣?qǐng)求的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)。
[0094]步驟408:觸發(fā)模塊接收用戶瀏覽器發(fā)送的包括標(biāo)識(shí)的結(jié)果查詢請(qǐng)求。
[0095]步驟409:觸發(fā)模塊將包括標(biāo)識(shí)的結(jié)果查詢請(qǐng)求發(fā)送給請(qǐng)求管理器,請(qǐng)求管理器查詢查詢是否獲得標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),
[0096]步驟410:如果獲得標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),則請(qǐng)求管理器從線程池獲取標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)。
[0097]步驟411:請(qǐng)求管理器將標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)發(fā)送給觸發(fā)模塊。
[0098]步驟412:觸發(fā)模塊將標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給用戶瀏覽器進(jìn)行展示。
[0099]本實(shí)施例是基于java.util.concurrent包中CallabIe及Future接口實(shí)現(xiàn)異步方法調(diào)用。用戶點(diǎn)擊查詢后,Act1n生成查詢或?qū)С稣?qǐng)求,將請(qǐng)求放入請(qǐng)求管理器(RequestManager),之后用戶瀏覽器頁(yè)面將跳轉(zhuǎn)至等待頁(yè)面。請(qǐng)求加入請(qǐng)求管理器后,請(qǐng)求管理器會(huì)生成唯一的標(biāo)識(shí)Correlat1n ID,用于唯一標(biāo)識(shí)該請(qǐng)求。該ID會(huì)記錄在等待頁(yè)面用于刷新。請(qǐng)求管理器調(diào)用ThreadPoolExecutor啟動(dòng)線程執(zhí)行數(shù)據(jù)庫(kù)操作,獲得返回結(jié)果。用戶刷新等待頁(yè)面調(diào)用Act1n檢查請(qǐng)求管理器中Correlat1n ID對(duì)應(yīng)的請(qǐng)求是否已經(jīng)處理完成,如果尚未處理完畢,則跳轉(zhuǎn)等待頁(yè)面,繼續(xù)等待,如果處理完畢,有返回結(jié)果,跳轉(zhuǎn)查詢結(jié)果頁(yè)面展示查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)。
[0100]本實(shí)施例實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅姆椒?,?shí)現(xiàn)簡(jiǎn)單,無(wú)需調(diào)整系統(tǒng)架構(gòu);啟動(dòng)的線程不在WAS線程監(jiān)視器的監(jiān)控范圍內(nèi),故即使線程執(zhí)行時(shí)間過(guò)程,WAS也不會(huì)產(chǎn)生預(yù)警信息;而由于線程占用WAS進(jìn)程的資源,如果線程使用資源時(shí)沒(méi)有及時(shí)釋放,容易導(dǎo)致整個(gè)應(yīng)用無(wú)法使用,影響代價(jià)較大;部分支持集群環(huán)境,在集群環(huán)境下部署實(shí)現(xiàn)需依賴于WAS的會(huì)話粘性的特性,由于用戶點(diǎn)擊查詢或?qū)С龊笊傻牟樵兓驅(qū)С稣?qǐng)求信息是保存在集群中某一臺(tái)服務(wù)器的內(nèi)存中,處理完成后用戶需在同一臺(tái)服務(wù)器才能獲得查詢結(jié)果,如果該臺(tái)服務(wù)器在處理請(qǐng)求的過(guò)程中宕機(jī),可能導(dǎo)致請(qǐng)求丟失。
[0101 ]由此,在本發(fā)明的一些可能的實(shí)現(xiàn)方式中,參見(jiàn)圖5所示,本發(fā)明實(shí)施例中提供的實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅姆椒梢詰?yīng)用于實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng),該系統(tǒng)可以包括觸發(fā)模塊Act1n、請(qǐng)求數(shù)據(jù)庫(kù)REQ_INF0以及后臺(tái)進(jìn)程模塊,觸發(fā)模塊Act 1n可以運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS,后臺(tái)進(jìn)程模塊可以采用生產(chǎn)者Producer/消費(fèi)者Consumer模式,在本實(shí)施例中,實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅姆椒梢园?
[0102]步驟501:用戶通過(guò)用戶瀏覽器點(diǎn)擊查詢或?qū)С霭粹o發(fā)送請(qǐng)求參數(shù),觸發(fā)模塊接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù)。
[0103]步驟502:觸發(fā)模塊根據(jù)請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求并發(fā)送給請(qǐng)求數(shù)據(jù)庫(kù)。
[0104]步驟503:請(qǐng)求數(shù)據(jù)庫(kù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求的標(biāo)識(shí)并發(fā)送給觸發(fā)模塊。
[0105]步驟504:觸發(fā)模塊將查詢請(qǐng)求或?qū)С稣?qǐng)求的標(biāo)識(shí)返回給用戶瀏覽器,用戶瀏覽器返回等待頁(yè)面,并可以設(shè)置刷新時(shí)間。
[0106]步驟505:后臺(tái)進(jìn)程模塊中的生產(chǎn)者進(jìn)程從請(qǐng)求數(shù)據(jù)庫(kù)中獲取所有未處理的查詢請(qǐng)求或?qū)С稣?qǐng)求。
[0107]步驟506:生產(chǎn)者進(jìn)程將查詢請(qǐng)求或?qū)С稣?qǐng)求放入請(qǐng)求隊(duì)列。
[0108]步驟507:后臺(tái)進(jìn)程模塊中的消費(fèi)者進(jìn)程從請(qǐng)求隊(duì)列中獲取一條查詢請(qǐng)求或?qū)С稣?qǐng)求。
[0109]步驟508:消費(fèi)者進(jìn)程向數(shù)據(jù)庫(kù)接口DataBase Access Object發(fā)送查詢請(qǐng)求或?qū)С稣?qǐng)求,由數(shù)據(jù)庫(kù)執(zhí)行查詢請(qǐng)求或?qū)С稣?qǐng)求。
[0110]步驟509:消費(fèi)者進(jìn)程在數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后接收查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)。
[0111]步驟510:將查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)發(fā)送給請(qǐng)求數(shù)據(jù)庫(kù)。
[0112]步驟511:觸發(fā)模塊接收用戶瀏覽器發(fā)送的包括標(biāo)識(shí)的結(jié)果查詢請(qǐng)求。
[0113]步驟512:觸發(fā)模塊將包括標(biāo)識(shí)的結(jié)果查詢請(qǐng)求發(fā)送給請(qǐng)求數(shù)據(jù)庫(kù),請(qǐng)求數(shù)據(jù)庫(kù)查詢查詢是否獲得標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)。
[0114]步驟513:如果獲得標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),則將標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)并發(fā)送給觸發(fā)模塊。
[0115]步驟514:觸發(fā)模塊將標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給用戶瀏覽器進(jìn)行展示。
[0116]本實(shí)施例是采取啟動(dòng)后臺(tái)進(jìn)程的方式,前端WAS生成查詢或?qū)С稣?qǐng)求,保存在請(qǐng)求數(shù)據(jù)庫(kù)中,后臺(tái)進(jìn)程模塊從請(qǐng)求數(shù)據(jù)庫(kù)中獲得查詢或?qū)С稣?qǐng)求,進(jìn)行處理并將結(jié)果保存在請(qǐng)求數(shù)據(jù)庫(kù)中。具體的,用戶點(diǎn)擊查詢后,Act1n生成查詢或?qū)С稣?qǐng)求,將查詢或?qū)С稣?qǐng)求保存在請(qǐng)求數(shù)據(jù)庫(kù)中,之后用戶瀏覽器頁(yè)面將跳轉(zhuǎn)至等待頁(yè)面。通過(guò)請(qǐng)求數(shù)據(jù)庫(kù)序列sequence生成唯一的標(biāo)識(shí)Correlat 1n ID,用于唯一標(biāo)識(shí)該請(qǐng)求。該ID會(huì)記錄在等待頁(yè)面用于刷新,查詢或?qū)С稣?qǐng)求一開(kāi)始處于初始INIT狀態(tài)。后臺(tái)進(jìn)程模塊采用生產(chǎn)者/消費(fèi)者的多線程設(shè)計(jì)模式,生產(chǎn)者線程從請(qǐng)求數(shù)據(jù)庫(kù)中獲取所有INIT狀態(tài)的請(qǐng)求放入請(qǐng)求隊(duì)列LinkedBlockingQueue中,此時(shí)請(qǐng)求處于等待WAIT狀態(tài);消費(fèi)者線程從隊(duì)列獲得一個(gè)WAIT狀態(tài)請(qǐng)求進(jìn)行處理,處理完成后在請(qǐng)求數(shù)據(jù)庫(kù)中記錄查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)。用戶刷新等待頁(yè)面調(diào)用Act 1n查詢請(qǐng)求數(shù)據(jù)庫(kù)中Corre Iat 1n ID對(duì)應(yīng)的請(qǐng)求是否已經(jīng)處理完成,如果尚未處理完畢,則跳轉(zhuǎn)等待頁(yè)面,繼續(xù)等待,如果處理完畢,有返回結(jié)果,跳轉(zhuǎn)查詢結(jié)果頁(yè)面展示查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)。
[0117]本實(shí)施例支持集群環(huán)境,集群中多臺(tái)WAS服務(wù)器生成的查詢與導(dǎo)出請(qǐng)求均保存在請(qǐng)求數(shù)據(jù)庫(kù)中,后臺(tái)進(jìn)程模塊通過(guò)請(qǐng)求數(shù)據(jù)庫(kù)獲取請(qǐng)求進(jìn)行處理,并將處理結(jié)果保存在請(qǐng)求數(shù)據(jù)庫(kù)中,WAS服務(wù)器根據(jù)Correlat1n ID從數(shù)據(jù)庫(kù)中獲得查詢結(jié)果數(shù)據(jù)與導(dǎo)出文件的路徑,生成的導(dǎo)出文件建議保存在共享磁盤上,保證集群中多臺(tái)WAS服務(wù)器均能訪問(wèn)。同時(shí),故障恢復(fù)代價(jià)較小,由于后臺(tái)進(jìn)程模塊與前端應(yīng)用分離,后臺(tái)進(jìn)程故障將不會(huì)影響前端應(yīng)用的正常使用,影響范圍較小。且無(wú)需增加中間件,系統(tǒng)架構(gòu)調(diào)整小。但是查詢結(jié)果的展現(xiàn)需手動(dòng)觸發(fā)查詢請(qǐng)求數(shù)據(jù)庫(kù),請(qǐng)求數(shù)據(jù)庫(kù)存儲(chǔ)查詢或?qū)С稣?qǐng)求及結(jié)果,需增加數(shù)據(jù)庫(kù)表清理機(jī)制。
[0118]由此,在本發(fā)明的一些可能的實(shí)現(xiàn)方式中,參見(jiàn)圖6所示,本發(fā)明實(shí)施例中提供的實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅姆椒ㄟ€可以應(yīng)用于實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng),該系統(tǒng)可以包括觸發(fā)模塊、消息中間件以及后臺(tái)進(jìn)程模塊,觸發(fā)模塊可以運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS,消息中間件中可以包括JMS Queue(Java Messaging Service Queue,Java消息服務(wù)隊(duì)列),JMS Queue可以包括請(qǐng)求消息隊(duì)列以及返回消息隊(duì)列。在本實(shí)施例中,實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅姆椒梢园?
[0119]步驟601:用戶通過(guò)用戶瀏覽器點(diǎn)擊查詢或?qū)С霭粹o發(fā)送請(qǐng)求參數(shù),觸發(fā)模塊接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求以及查詢請(qǐng)求或?qū)С稣?qǐng)求的標(biāo)識(shí)。
[0120]步驟602:觸發(fā)模塊將查詢請(qǐng)求或?qū)С稣?qǐng)求發(fā)送給消息中間件中的請(qǐng)求消息隊(duì)列。
[0121]步驟603:將查詢請(qǐng)求或?qū)С稣?qǐng)求的標(biāo)識(shí)返回給用戶瀏覽器。
[0122]步驟604:后臺(tái)進(jìn)程模塊監(jiān)聽(tīng)請(qǐng)求消息隊(duì)列,當(dāng)請(qǐng)求消息隊(duì)列接收到查詢請(qǐng)求或?qū)С稣?qǐng)求后,后臺(tái)進(jìn)程中的消息驅(qū)動(dòng)組件Message-Driven Bean從請(qǐng)求消息隊(duì)列中獲取查詢請(qǐng)求或?qū)С稣?qǐng)求。
[0123]步驟605:消息驅(qū)動(dòng)組件將查詢請(qǐng)求或?qū)С稣?qǐng)求發(fā)送給數(shù)據(jù)庫(kù)接口 DataBaseAccess Object。
[0124]步驟606:在數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后將查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)發(fā)送給消息中間件中的返回消息隊(duì)列。
[0125]步驟607:觸發(fā)模塊接收用戶瀏覽器發(fā)送的包括標(biāo)識(shí)的結(jié)果查詢請(qǐng)求。
[0126]步驟608:觸發(fā)模塊查詢返回消息隊(duì)列是否獲得標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)。
[0127]步驟609:如果獲得標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),則從返回消息隊(duì)列獲取標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)。
[0128]步驟610:觸發(fā)模塊將標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給用戶瀏覽器進(jìn)行展示。
[0129]本實(shí)施例同樣是采取啟動(dòng)后臺(tái)進(jìn)程的方案,本實(shí)施例采用消息中間件解決進(jìn)程間通訊問(wèn)題。具體的,用戶點(diǎn)擊查詢后,Act1n生成查詢或?qū)С稣?qǐng)求,將查詢或?qū)С稣?qǐng)求發(fā)送至請(qǐng)求消息隊(duì)列Request Queue,之后用戶瀏覽器的頁(yè)面將跳轉(zhuǎn)至等待頁(yè)面。在發(fā)送查詢或?qū)С稣?qǐng)求前,Act 1n會(huì)生成唯一的標(biāo)識(shí)Corre Iat 1n ID,用于唯一標(biāo)識(shí)該請(qǐng)求,該ID會(huì)記錄在等待頁(yè)面用于刷新。后臺(tái)進(jìn)程會(huì)監(jiān)聽(tīng)請(qǐng)求消息隊(duì)列Request Queue,一旦接到請(qǐng)求消息,MDB(Message Driven Bean,消息驅(qū)動(dòng)組件)會(huì)從請(qǐng)求消息隊(duì)列中獲取查詢或?qū)С稣?qǐng)求,根據(jù)查詢或?qū)С稣?qǐng)求進(jìn)行處理,包括查詢數(shù)據(jù)庫(kù)、生成導(dǎo)出文件等等。查詢或?qū)С稣?qǐng)求處理完成后,MDB會(huì)生成返回消息,并將返回消息發(fā)送至返回消息隊(duì)列Response Queue。返回消息需設(shè)置與請(qǐng)求消息一致的Corr elat1n ID。等待頁(yè)面調(diào)用Act 1n檢查返回消息隊(duì)列Response Queue中是否有CorreIat1n ID對(duì)應(yīng)的返回消息,如果沒(méi)有返回消息,貝Ij跳轉(zhuǎn)等待頁(yè)面,如果有返回消息,跳轉(zhuǎn)查詢結(jié)果頁(yè)面展示查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)。
[0130]本實(shí)施例支持集群環(huán)境,多臺(tái)WAS服務(wù)器生成的查詢與導(dǎo)出請(qǐng)求和返回結(jié)果均保存在隊(duì)列;故障恢復(fù)代價(jià)較小,由于后臺(tái)進(jìn)程與前端應(yīng)用分離,后臺(tái)進(jìn)程故障將不會(huì)影響前端應(yīng)用的正常使用,影響范圍較??;頁(yè)面自動(dòng)刷新,自動(dòng)返回查詢結(jié)果并展示,用戶友好性較好;但是增加中間件,對(duì)系統(tǒng)架構(gòu)有較大調(diào)整。
[0131]這樣,本發(fā)明實(shí)施例通過(guò)異步方式實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С?,在生成查詢?qǐng)求或?qū)С稣?qǐng)求后用戶瀏覽器直接返回等待頁(yè)面,而不是一直等待后臺(tái)數(shù)據(jù)庫(kù)返回查詢或?qū)С鼋Y(jié)果,此時(shí)用戶還可以進(jìn)行其他操作;啟動(dòng)線程或進(jìn)程處理查詢或?qū)С稣?qǐng)求,此時(shí)WAS不監(jiān)控自己?jiǎn)?dòng)的線程或其他進(jìn)程,避免出現(xiàn)線程掛起的警告;最后由用戶主動(dòng)觸發(fā)或采用輪詢的方式查詢請(qǐng)求是否處理完成,根據(jù)狀態(tài)決定返回等待頁(yè)面繼續(xù)等待或者展示結(jié)果數(shù)據(jù),避免了由于數(shù)據(jù)庫(kù)查詢語(yǔ)句執(zhí)行較慢或者導(dǎo)出數(shù)據(jù)量過(guò)大導(dǎo)致查詢或?qū)С稣?qǐng)求長(zhǎng)時(shí)間沒(méi)有響應(yīng)。
[0132]參見(jiàn)圖7所示,本發(fā)明實(shí)施例中還提供一種實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng)實(shí)施例,該系統(tǒng)可以運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS,該系統(tǒng)可以包括:觸發(fā)模塊701、請(qǐng)求管理器702以及線程池703。
[0133]其中,觸發(fā)模塊,可以用于接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求并發(fā)送給請(qǐng)求管理器,將請(qǐng)求管理器生成的查詢請(qǐng)求或?qū)С稣?qǐng)求的標(biāo)識(shí)返回給用戶瀏覽器。
[0134]請(qǐng)求管理器,可以用于生成查詢請(qǐng)求或?qū)С稣?qǐng)求的標(biāo)識(shí)并發(fā)送給觸發(fā)模塊;向線程池發(fā)送查詢請(qǐng)求或?qū)С稣?qǐng)求。
[0135]線程池,可以用于啟動(dòng)線程執(zhí)行向數(shù)據(jù)庫(kù)接口發(fā)送查詢請(qǐng)求或?qū)С稣?qǐng)求,在數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后接收查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),并通知請(qǐng)求管理器已獲得標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)。
[0136]觸發(fā)模塊,還可以用于接收用戶瀏覽器發(fā)送的包括標(biāo)識(shí)的結(jié)果查詢請(qǐng)求。
[0137]請(qǐng)求管理器,還可以用于查詢是否獲得標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)并發(fā)送給觸發(fā)模塊。
[0138]觸發(fā)模塊,還可以用于將標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給用戶瀏覽器進(jìn)行展示。
[0139]本實(shí)施例與上述圖4對(duì)應(yīng)的實(shí)施例類似,相關(guān)說(shuō)明可以參見(jiàn)上述實(shí)施例,在此不再贅述。
[0140]參見(jiàn)圖8所示,本發(fā)明實(shí)施例中還提供一種實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng)實(shí)施例,該系統(tǒng)可以包括:觸發(fā)模塊801、請(qǐng)求數(shù)據(jù)庫(kù)802以及后臺(tái)進(jìn)程模塊803,觸發(fā)模塊可以運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS,后臺(tái)進(jìn)程模塊可以包括生產(chǎn)者進(jìn)程以及消費(fèi)者進(jìn)程。
[0141]其中,觸發(fā)模塊,可以用于接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求并發(fā)送給請(qǐng)求數(shù)據(jù)庫(kù),將請(qǐng)求數(shù)據(jù)庫(kù)生成的查詢請(qǐng)求或?qū)С稣?qǐng)求的標(biāo)識(shí)返回給用戶瀏覽器。
[0142]請(qǐng)求數(shù)據(jù)庫(kù),可以用于生成查詢請(qǐng)求或?qū)С稣?qǐng)求的標(biāo)識(shí)并發(fā)送給觸發(fā)模塊。
[0143]生產(chǎn)者進(jìn)程,可以用于從請(qǐng)求數(shù)據(jù)庫(kù)中獲取未處理的查詢請(qǐng)求或?qū)С稣?qǐng)求并放入請(qǐng)求隊(duì)列。
[0144]消費(fèi)者進(jìn)程,可以用于從請(qǐng)求隊(duì)列中獲取一條查詢請(qǐng)求或?qū)С稣?qǐng)求發(fā)送給數(shù)據(jù)庫(kù)接口,在數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后將查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)發(fā)送給請(qǐng)求數(shù)據(jù)庫(kù)。
[0145]觸發(fā)模塊,還可以用于接收用戶瀏覽器發(fā)送的包括標(biāo)識(shí)的結(jié)果查詢請(qǐng)求并發(fā)送給請(qǐng)求數(shù)據(jù)庫(kù)。
[0146]請(qǐng)求數(shù)據(jù)庫(kù),還可以用于查詢查詢是否獲得標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)并發(fā)送給觸發(fā)模塊。
[0147]觸發(fā)模塊,還可以用于將標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給用戶瀏覽器進(jìn)行展示。
[0148]本實(shí)施例與上述圖5對(duì)應(yīng)的實(shí)施例類似,相關(guān)說(shuō)明可以參見(jiàn)上述實(shí)施例,在此不再贅述。
[0149]參見(jiàn)圖9所示,本發(fā)明實(shí)施例中還提供一種實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng)實(shí)施例,該系統(tǒng)可以包括:觸發(fā)模塊901、消息中間件902以及后臺(tái)進(jìn)程模塊903,觸發(fā)模塊可以運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS,消息中間件可以包括請(qǐng)求消息隊(duì)列以及返回消息隊(duì)列。
[0150]其中,觸發(fā)模塊,可以用于接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求以及查詢請(qǐng)求或?qū)С稣?qǐng)求的標(biāo)識(shí);將查詢請(qǐng)求或?qū)С稣?qǐng)求發(fā)送給請(qǐng)求消息隊(duì)列,并將標(biāo)識(shí)返回給用戶瀏覽器;
[0151]后臺(tái)進(jìn)程模塊,可以用于監(jiān)聽(tīng)請(qǐng)求消息隊(duì)列,當(dāng)請(qǐng)求消息隊(duì)列接收到查詢請(qǐng)求或?qū)С稣?qǐng)求后,消息驅(qū)動(dòng)組件從請(qǐng)求消息隊(duì)列中獲取查詢請(qǐng)求或?qū)С稣?qǐng)求發(fā)送給數(shù)據(jù)庫(kù)接口,在數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后將查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)發(fā)送給返回消息隊(duì)列;
[0152]觸發(fā)模塊,還可以用于接收用戶瀏覽器發(fā)送的包括標(biāo)識(shí)的結(jié)果查詢請(qǐng)求并查詢返回消息隊(duì)列是否獲得標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則從返回消息隊(duì)列獲取標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù);將標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給用戶瀏覽器進(jìn)行展示。
[0153]本實(shí)施例與上述圖6對(duì)應(yīng)的實(shí)施例類似,相關(guān)說(shuō)明可以參見(jiàn)上述實(shí)施例,在此不再贅述。
[0154]這樣,本發(fā)明實(shí)施例通過(guò)異步方式實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С?,在生成查詢?qǐng)求或?qū)С稣?qǐng)求后用戶瀏覽器直接返回等待頁(yè)面,而不是一直等待后臺(tái)數(shù)據(jù)庫(kù)返回查詢或?qū)С鼋Y(jié)果,此時(shí)用戶還可以進(jìn)行其他操作;啟動(dòng)線程或進(jìn)程處理查詢或?qū)С稣?qǐng)求,此時(shí)WAS不監(jiān)控自己?jiǎn)?dòng)的線程或其他進(jìn)程,避免出現(xiàn)線程掛起的警告;最后由用戶主動(dòng)觸發(fā)或采用輪詢的方式查詢請(qǐng)求是否處理完成,根據(jù)狀態(tài)決定返回等待頁(yè)面繼續(xù)等待或者展示結(jié)果數(shù)據(jù),避免了由于數(shù)據(jù)庫(kù)查詢語(yǔ)句執(zhí)行較慢或者導(dǎo)出數(shù)據(jù)量過(guò)大導(dǎo)致查詢或?qū)С稣?qǐng)求長(zhǎng)時(shí)間沒(méi)有響應(yīng)。
[0155]需要說(shuō)明的是,本說(shuō)明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見(jiàn)即可。對(duì)于實(shí)施例公開(kāi)的系統(tǒng)或裝置而言,由于其與實(shí)施例公開(kāi)的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法部分說(shuō)明即可。
[0156]還需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0157]結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(R0M)、電可編程R0M、電可擦除可編程R0M、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
[0158]對(duì)所公開(kāi)的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。
【主權(quán)項(xiàng)】
1.一種實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅姆椒?,其特征在于,所述方法包? 接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求,將所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)返回給所述用戶瀏覽器,以使所述用戶瀏覽器在顯示的等待頁(yè)面中插入所述標(biāo)識(shí); 啟動(dòng)線程或進(jìn)程向數(shù)據(jù)庫(kù)接口發(fā)送所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求,接收所述數(shù)據(jù)庫(kù)接口返回的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù); 接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求,查詢是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法應(yīng)用于實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng),所述系統(tǒng)運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS,所述系統(tǒng)包括觸發(fā)模塊、請(qǐng)求管理器以及線程池; 所述接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求,將所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)返回給所述用戶瀏覽器,包括: 所述觸發(fā)模塊接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求并發(fā)送給所述請(qǐng)求管理器; 所述請(qǐng)求管理器生成所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)并發(fā)送給所述觸發(fā)模塊; 所述觸發(fā)模塊將所述標(biāo)識(shí)返回給所述用戶瀏覽器。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述啟動(dòng)線程或進(jìn)程向數(shù)據(jù)庫(kù)接口發(fā)送所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求,接收所述數(shù)據(jù)庫(kù)接口返回的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),包括: 所述請(qǐng)求管理器向所述線程池發(fā)送所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求; 所述線程池啟動(dòng)線程執(zhí)行向數(shù)據(jù)庫(kù)接口發(fā)送所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求,在所述數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后接收所述查詢結(jié)果數(shù)據(jù)或所述導(dǎo)出數(shù)據(jù),并通知所述請(qǐng)求管理器已獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求,查詢是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示,包括: 所述觸發(fā)模塊接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求并發(fā)送給所述請(qǐng)求管理器; 所述請(qǐng)求管理器查詢所述查詢是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則從所述線程池獲取所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)并發(fā)送給所述觸發(fā)模塊; 所述觸發(fā)模塊將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法應(yīng)用于實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng),所述系統(tǒng)包括觸發(fā)模塊、請(qǐng)求數(shù)據(jù)庫(kù)以及后臺(tái)進(jìn)程模塊,所述觸發(fā)模塊運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS; 所述接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求,將所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)返回給所述用戶瀏覽器,包括: 所述觸發(fā)模塊接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求并發(fā)送給所述請(qǐng)求數(shù)據(jù)庫(kù); 所述請(qǐng)求數(shù)據(jù)庫(kù)生成所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)并發(fā)送給所述觸發(fā)模塊; 所述觸發(fā)模塊將所述標(biāo)識(shí)返回給所述用戶瀏覽器。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述啟動(dòng)線程或進(jìn)程向數(shù)據(jù)庫(kù)接口發(fā)送所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求,接收所述數(shù)據(jù)庫(kù)接口返回的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),包括: 所述后臺(tái)進(jìn)程模塊中的生產(chǎn)者進(jìn)程從所述請(qǐng)求數(shù)據(jù)庫(kù)中獲取未處理的所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求并放入請(qǐng)求隊(duì)列,所述后臺(tái)進(jìn)程模塊中的消費(fèi)者進(jìn)程從所述請(qǐng)求隊(duì)列中獲取一條所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求發(fā)送給數(shù)據(jù)庫(kù)接口,在所述數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后將所述查詢結(jié)果數(shù)據(jù)或所述導(dǎo)出數(shù)據(jù)發(fā)送給所述請(qǐng)求數(shù)據(jù)庫(kù)。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求,查詢是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示,包括: 所述觸發(fā)模塊接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求并發(fā)送給所述請(qǐng)求數(shù)據(jù)庫(kù); 所述請(qǐng)求數(shù)據(jù)庫(kù)查詢所述查詢是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)并發(fā)送給所述觸發(fā)模塊; 所述觸發(fā)模塊將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示。8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法應(yīng)用于所述方法應(yīng)用于實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng),所述系統(tǒng)包括觸發(fā)模塊、消息中間件以及后臺(tái)進(jìn)程模塊,所述觸發(fā)模塊運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS ; 所述接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求,將所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)返回給所述用戶瀏覽器,包括: 所述觸發(fā)模塊接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求以及所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí); 所述觸發(fā)模塊將所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求發(fā)送給所述消息中間件中的請(qǐng)求消息隊(duì)列,并將所述標(biāo)識(shí)返回給所述用戶瀏覽器。9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述啟動(dòng)線程或進(jìn)程向數(shù)據(jù)庫(kù)接口發(fā)送所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求,接收所述數(shù)據(jù)庫(kù)接口返回的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),包括: 所述后臺(tái)進(jìn)程模塊監(jiān)聽(tīng)所述請(qǐng)求消息隊(duì)列,當(dāng)所述請(qǐng)求消息隊(duì)列接收到所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求后,所述后臺(tái)進(jìn)程中的消息驅(qū)動(dòng)組件從所述請(qǐng)求消息隊(duì)列中獲取所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求發(fā)送給數(shù)據(jù)庫(kù)接口,在所述數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后將所述查詢結(jié)果數(shù)據(jù)或所述導(dǎo)出數(shù)據(jù)發(fā)送給所述消息中間件中的返回消息隊(duì)列。10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求,查詢是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示,包括: 所述觸發(fā)模塊接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求并查詢所述返回消息隊(duì)列是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則從所述返回消息隊(duì)列獲取所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù); 所述觸發(fā)模塊將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示。11.一種實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng),其特征在于,所述系統(tǒng)運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS,所述系統(tǒng)包括:觸發(fā)模塊、請(qǐng)求管理器以及線程池; 所述觸發(fā)模塊,用于接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求并發(fā)送給所述請(qǐng)求管理器,將所述請(qǐng)求管理器生成的所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)返回給所述用戶瀏覽器; 所述請(qǐng)求管理器,用于生成所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)并發(fā)送給所述觸發(fā)模塊;向所述線程池發(fā)送所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求; 所述線程池,用于啟動(dòng)線程執(zhí)行向數(shù)據(jù)庫(kù)接口發(fā)送所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求,在所述數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后接收所述查詢結(jié)果數(shù)據(jù)或所述導(dǎo)出數(shù)據(jù),并通知所述請(qǐng)求管理器已獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù); 所述觸發(fā)模塊,還用于接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求; 所述請(qǐng)求管理器,還用于查詢是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)并發(fā)送給所述觸發(fā)模塊; 所述觸發(fā)模塊,還用于將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示。12.—種實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng),其特征在于,所述系統(tǒng)包括:觸發(fā)模塊、請(qǐng)求數(shù)據(jù)庫(kù)以及后臺(tái)進(jìn)程模塊,所述觸發(fā)模塊運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS,所述后臺(tái)進(jìn)程模塊包括生產(chǎn)者進(jìn)程以及消費(fèi)者進(jìn)程; 所述觸發(fā)模塊,用于接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求并發(fā)送給所述請(qǐng)求數(shù)據(jù)庫(kù),將所述請(qǐng)求數(shù)據(jù)庫(kù)生成的所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)返回給所述用戶瀏覽器; 所述請(qǐng)求數(shù)據(jù)庫(kù),用于生成所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí)并發(fā)送給所述觸發(fā)模塊; 所述生產(chǎn)者進(jìn)程,用于從所述請(qǐng)求數(shù)據(jù)庫(kù)中獲取未處理的所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求并放入請(qǐng)求隊(duì)列; 所述消費(fèi)者進(jìn)程,用于從所述請(qǐng)求隊(duì)列中獲取一條所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求發(fā)送給數(shù)據(jù)庫(kù)接口,在所述數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后將所述查詢結(jié)果數(shù)據(jù)或所述導(dǎo)出數(shù)據(jù)發(fā)送給所述請(qǐng)求數(shù)據(jù)庫(kù); 所述觸發(fā)模塊,還用于接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求并發(fā)送給所述請(qǐng)求數(shù)據(jù)庫(kù); 所述請(qǐng)求數(shù)據(jù)庫(kù),還用于查詢所述查詢是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)并發(fā)送給所述觸發(fā)模塊;所述觸發(fā)模塊,還用于將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示。13.一種實(shí)現(xiàn)數(shù)據(jù)查詢或?qū)С龅南到y(tǒng),其特征在于,所述系統(tǒng)包括:觸發(fā)模塊、消息中間件以及后臺(tái)進(jìn)程模塊,所述觸發(fā)模塊運(yùn)行于WebSphere應(yīng)用服務(wù)器WAS,所述消息中間件包括請(qǐng)求消息隊(duì)列以及返回消息隊(duì)列; 所述觸發(fā)模塊,用于接收用戶瀏覽器發(fā)送的請(qǐng)求參數(shù),根據(jù)所述請(qǐng)求參數(shù)生成查詢請(qǐng)求或?qū)С稣?qǐng)求以及所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求的標(biāo)識(shí);將所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求發(fā)送給所述請(qǐng)求消息隊(duì)列,并將所述標(biāo)識(shí)返回給所述用戶瀏覽器; 所述后臺(tái)進(jìn)程模塊,用于監(jiān)聽(tīng)所述請(qǐng)求消息隊(duì)列,當(dāng)所述請(qǐng)求消息隊(duì)列接收到所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求后,消息驅(qū)動(dòng)組件從所述請(qǐng)求消息隊(duì)列中獲取所述查詢請(qǐng)求或所述導(dǎo)出請(qǐng)求發(fā)送給數(shù)據(jù)庫(kù)接口,在所述數(shù)據(jù)庫(kù)接口返回查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)后將所述查詢結(jié)果數(shù)據(jù)或所述導(dǎo)出數(shù)據(jù)發(fā)送給所述返回消息隊(duì)列; 所述觸發(fā)模塊,還用于接收所述用戶瀏覽器發(fā)送的包括所述標(biāo)識(shí)的結(jié)果查詢請(qǐng)求并查詢所述返回消息隊(duì)列是否獲得所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù),如果是,則從所述返回消息隊(duì)列獲取所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù);將所述標(biāo)識(shí)對(duì)應(yīng)的查詢結(jié)果數(shù)據(jù)或?qū)С鰯?shù)據(jù)返回給所述用戶瀏覽器進(jìn)行展示。
【文檔編號(hào)】G06F17/30GK106095775SQ201610349481
【公開(kāi)日】2016年11月9日
【申請(qǐng)日】2016年5月24日
【發(fā)明人】熊思明
【申請(qǐng)人】中國(guó)銀行股份有限公司