国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
創(chuàng)建事務(wù)性腳本 (用mts管理事務(wù)、組件)
商業(yè)應(yīng)用程序常常需要具有在事務(wù)內(nèi)部運(yùn)行腳本和組件的能力。事務(wù)是一種服務(wù)器操作,即使該操作包括很多步驟(例如,定貨、查看存貨、付帳等),也只能整體返回操作是成功還是失敗。用戶可以創(chuàng)建在事務(wù)內(nèi)部運(yùn)行的ASP腳本,如果腳本的任何一部分失敗,整個(gè)事務(wù)都將會(huì)終止。

ASP事務(wù)處理是以MicrosoftTransactionServer(MTS)為基礎(chǔ)的。MicrosoftTransactionServer(MTS)是一個(gè)事務(wù)處理系統(tǒng),用于開(kāi)發(fā)、配置和管理高性能、可分級(jí)的、有魯棒性的企業(yè)Internet和Intranet服務(wù)器應(yīng)用程序。TransactionServer為開(kāi)發(fā)分布式的,基于組件的應(yīng)用程序提供了一個(gè)應(yīng)用程序設(shè)計(jì)模型。它也為配置和管理這些應(yīng)用程序提供了一個(gè)運(yùn)行環(huán)境。

創(chuàng)建事務(wù)性腳本的功能內(nèi)置在InternetInformationServer和PersonalWebServer中。如果您安裝了MicrosoftTransactionServer,就可以將組件打包,以使組件在事務(wù)內(nèi)部運(yùn)行。

關(guān)于事務(wù)
事務(wù)是整體成功或失敗的操作。事務(wù)處理用于對(duì)數(shù)據(jù)庫(kù)進(jìn)行可靠地更新。在對(duì)數(shù)據(jù)庫(kù)進(jìn)行許多相關(guān)更改或同時(shí)更新多個(gè)數(shù)據(jù)庫(kù)時(shí),要保證所有更改都被正確執(zhí)行。如果這些更改中的任何一個(gè)失敗,都需要恢復(fù)數(shù)據(jù)庫(kù)表的原始狀態(tài)。

如果沒(méi)有MTS,您就需要編寫(xiě)腳本和組件,手工跟蹤請(qǐng)求的更改情況,以便在某些更改失敗時(shí)恢復(fù)數(shù)據(jù)。使用MTS,您只需簡(jiǎn)單的將您的腳本和組件聲明為“需要事務(wù)”并讓MTS處理事務(wù)的一致性。事務(wù)處理只適用于數(shù)據(jù)庫(kù)訪問(wèn);MTS不能對(duì)文件系統(tǒng)或其他的非事務(wù)性資源的更改進(jìn)行恢復(fù)操作。應(yīng)用程序所訪問(wèn)的數(shù)據(jù)庫(kù)必須為MTS所支持。目前,MTS支持SQLServer及任何支持XA協(xié)議(由X/Open協(xié)會(huì)制定)的服務(wù)器。MTS將繼續(xù)擴(kuò)展對(duì)其他數(shù)據(jù)庫(kù)的支持。

事務(wù)不能跨越多個(gè)ASP頁(yè)。如果一個(gè)事務(wù)需要來(lái)自多個(gè)組件的對(duì)象,則須將使用這些對(duì)象的操作組合在一個(gè)ASP頁(yè)中。例如,假定有一個(gè)組件用于更新工資單數(shù)據(jù)庫(kù),還有一個(gè)組件用于更新人力資源數(shù)據(jù)庫(kù)中的員工記錄。為了記錄一個(gè)員工的新的工資信息,您需要編寫(xiě)這樣一個(gè)腳本,該腳本在一個(gè)事務(wù)環(huán)境中調(diào)用這兩個(gè)組件,一個(gè)用于更新工資單數(shù)據(jù)庫(kù),另一個(gè)用于更新人力資源數(shù)據(jù)庫(kù)中的員工等級(jí)。

聲明事務(wù)性腳本
在將一個(gè)頁(yè)聲明為事務(wù)性時(shí),此頁(yè)中的任何腳本命令和對(duì)象都運(yùn)行在同一個(gè)事務(wù)環(huán)境中。TransactionServer處理生成事務(wù)的細(xì)節(jié)并決定事務(wù)成功(提交)或失?。ńK止)。要將某個(gè)頁(yè)聲明為事務(wù)性,可在頁(yè)首添加@TRANSACTION指令:


value參數(shù)可以是下列之一:

值意義
Requires_New啟動(dòng)一個(gè)新的事務(wù)。
Required啟動(dòng)一個(gè)新的事務(wù)。
Supported不啟動(dòng)事務(wù)。
Not_Supported不啟動(dòng)事務(wù)。

@TRANSACTION指令必須在一頁(yè)中的第一行,否則將產(chǎn)生錯(cuò)誤。必須將該指令添加到需要在事務(wù)下運(yùn)行的每一頁(yè)中。當(dāng)腳本處理結(jié)束時(shí),當(dāng)前事務(wù)即告結(jié)束。

大多數(shù)應(yīng)用程序只有一些特定的操作需要事務(wù)環(huán)境。例如,一個(gè)航空公司的站點(diǎn)可能只需要事務(wù)性腳本處理購(gòu)票和安排座位,而其他所有腳本則無(wú)須事務(wù)環(huán)境即可安全運(yùn)行。因?yàn)槭聞?wù)只須用于需要事務(wù)處理的頁(yè)即可,不要將應(yīng)用程序的Global.asa文件聲明為事務(wù)性。



如果事務(wù)被終止,TransactionServer將恢復(fù)對(duì)支持事務(wù)的資源的任何更改。目前,僅數(shù)據(jù)庫(kù)服務(wù)器完全支持事務(wù),因?yàn)閿?shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)于企業(yè)應(yīng)用是最為關(guān)鍵的。TransactionServer不對(duì)硬盤(pán)上的文件、會(huì)話和應(yīng)用程序的變量、集合等的改變進(jìn)行恢復(fù)。然而您可以如下文主題所述,通過(guò)編寫(xiě)事務(wù)事件來(lái)編寫(xiě)恢復(fù)變量和集合的腳本。在某些時(shí)候,您的腳本也可以顯式的提交或終止一個(gè)事務(wù),如向文件寫(xiě)數(shù)據(jù)失敗時(shí)。

提交或終止腳本
因?yàn)門(mén)ransactionServer跟蹤事務(wù)處理,所以它決定事務(wù)是完全成功還是失敗。腳本可以通過(guò)調(diào)用ObjectContext.SetAbort顯式地聲明終止一個(gè)事務(wù)。例如,當(dāng)一個(gè)事務(wù)在從一個(gè)組件收到錯(cuò)誤消息、違反商業(yè)規(guī)范時(shí)(例如,帳戶余額小于0)或讀寫(xiě)文件等非事務(wù)性操作失敗時(shí),腳本就需要終止該事務(wù)。如果頁(yè)在事務(wù)完成之前超時(shí),也必須終止事務(wù)。

編寫(xiě)事務(wù)事件
腳本本身不能決定事務(wù)是成功還是失敗。但是,可以編寫(xiě)提交或終止事務(wù)時(shí)被調(diào)用的事件。例如,假設(shè)有一個(gè)確認(rèn)銀行帳戶的腳本,并且您需要針對(duì)事務(wù)的不同狀態(tài)將不同的頁(yè)返回給用戶,那么就可以使用OnTransactionCommit和OnTransactionAbort事件來(lái)編寫(xiě)對(duì)用戶的不同響應(yīng)。





Welcometotheonlinebankingservice




Thankyou.Yourtransactionisbeingprocessed.





在MTS資源管理器中登記一個(gè)組件
為了參與一個(gè)事務(wù),組件必須在MTS包中登記,而且必須被配置為需要事務(wù)。例如,如果您的腳本是通過(guò)調(diào)用兩個(gè)組件來(lái)處理訂單的,一個(gè)更新庫(kù)存數(shù)據(jù)庫(kù),另一個(gè)更新付款數(shù)據(jù)庫(kù)。那么,這兩個(gè)組件就要在同一個(gè)事務(wù)環(huán)境中運(yùn)行。TransactionServer保證如果任意一個(gè)組件失敗,那么將不會(huì)有數(shù)據(jù)庫(kù)被更新。某些組件不需要事務(wù);例如,AdRotator組件。

注冊(cè)和配置事務(wù)性組件可使用MTS資源管理器。必須將事務(wù)的屬性設(shè)置為需要事務(wù)或需要新事務(wù)。事務(wù)組件必須在MTS包中注冊(cè)。不要將組件放在IIS內(nèi)部進(jìn)程包中,而應(yīng)該創(chuàng)建自己的包。通常,應(yīng)將所有的組件放在一個(gè)組件庫(kù)中。組件庫(kù)的組件可被多個(gè)ASP應(yīng)用程序使用并以ASP應(yīng)用程序進(jìn)程運(yùn)行。使用MTS資源管理器可創(chuàng)建新的包并將包的Activation屬性設(shè)置為L(zhǎng)ibrary。

也可以在Server包中注冊(cè)事務(wù)性組件。Server包通常以服務(wù)器上的一個(gè)獨(dú)立的進(jìn)程運(yùn)行。如果希望使用基于職能組的安全性檢查或希望您的組件可被遠(yuǎn)程計(jì)算機(jī)上的應(yīng)用程序訪問(wèn),可對(duì)事務(wù)性組件使用Server包。

要使用MTS資源管理器,必須安裝MicrosoftTransactionServer。

對(duì)象作用域
一般情況下,不要將從MTS組件中創(chuàng)建的對(duì)象存儲(chǔ)在ASPApplication或Session對(duì)象中。MTS對(duì)象在事務(wù)完成后消失。因?yàn)镾ession對(duì)象和Application對(duì)象是為在不同ASP頁(yè)之間使用的對(duì)象實(shí)例設(shè)計(jì)的,所以不要用它們保存在事務(wù)結(jié)束時(shí)即被釋放的對(duì)象。

ASP腳本是已聲名的事務(wù)的根,即起始點(diǎn)。任何事務(wù)性ASP頁(yè)所使用的MTS對(duì)象都被認(rèn)為是事務(wù)的一部分。當(dāng)事務(wù)完成后,在頁(yè)中使用的MTS對(duì)象將消失,其中包括存儲(chǔ)在Session或Application對(duì)象中的對(duì)象。在此之后,從另一個(gè)事務(wù)性頁(yè)中調(diào)用會(huì)話作用域或應(yīng)用程序作用域?qū)ο蟮膰L試都將失敗。

事務(wù)排隊(duì)
從一個(gè)遠(yuǎn)程服務(wù)器對(duì)數(shù)據(jù)庫(kù)的更新可能因?yàn)榫W(wǎng)絡(luò)延遲或故障而導(dǎo)致事務(wù)延遲或終止。因?yàn)槭聞?wù)的所有部分都必須提交,所以應(yīng)用程序?qū)⒖赡軖炱?,等待遠(yuǎn)程服務(wù)器的提交或終止消息,也可能由于無(wú)法發(fā)送數(shù)據(jù)庫(kù)更新而導(dǎo)致事務(wù)被放棄。

對(duì)于必須同時(shí)完成的更新,正確的做法是在事務(wù)的所有參與者都能夠提交之前,終止事務(wù)或推遲完成事務(wù)。例如,航空公司的定票程序應(yīng)該同時(shí)完成對(duì)客戶的銀行賬號(hào)計(jì)入借方和對(duì)航空公司的銀行帳戶計(jì)入貸方。如果一個(gè)更新屬于事務(wù)整體的一部分,但可能晚于其他更新,您可能不希望讓客戶等待整個(gè)更新過(guò)程的完成。例如,機(jī)票預(yù)定事務(wù)可能也要向食品供應(yīng)商發(fā)送食品訂單或更新客戶的旅程津貼。這些操作雖然也必須完成,但可以晚一些。

MicrosoftMessageQueueServer使您能夠?qū)⒁粋€(gè)或一組更新捆綁到一個(gè)事務(wù)性消息中送給遠(yuǎn)程服務(wù)器。MessageQueueServer保證更新將被發(fā)送給遠(yuǎn)程服務(wù)器,即使目前網(wǎng)絡(luò)不可用。您的應(yīng)用將收到一個(gè)提交消息,從而可以繼續(xù)處理事務(wù)。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
ASP事務(wù)處理的實(shí)現(xiàn)方法
ASP.NET應(yīng)用程序結(jié)構(gòu)及安全規(guī)劃
WIN2003服務(wù)器安全配置終極技巧圖(下) - qqread.com
用Visual Basic 6創(chuàng)建基于MTS的商務(wù)組件
匯編語(yǔ)言
.net下開(kāi)發(fā)COM 組件(1)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服