BizTalk Server 事務(wù)機(jī)制_第1頁(yè)
BizTalk Server 事務(wù)機(jī)制_第2頁(yè)
BizTalk Server 事務(wù)機(jī)制_第3頁(yè)
BizTalk Server 事務(wù)機(jī)制_第4頁(yè)
BizTalk Server 事務(wù)機(jī)制_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、BizTalk Server 事務(wù)機(jī)制 1. 概述2. 原子事務(wù)3. DTC 事務(wù)4. 非序列化對(duì)象5. 使用原子事務(wù)的方案6. 方案 1具有 COM ServicedComponent 的原子事務(wù)7. 方案 2將事務(wù)性適配器與原子事務(wù)一起使用8. 長(zhǎng)期事務(wù)9. 嵌套10. 補(bǔ)償11. 容錯(cuò)12. 使用長(zhǎng)期事務(wù)的方案13. 方案 1將長(zhǎng)期事務(wù)用于超時(shí)14. 方案 2將長(zhǎng)期事務(wù)用于自定義補(bǔ)償15. 業(yè)務(wù)流程中的持久化概述BizTalk Server 業(yè)務(wù)流程引擎可管理復(fù)雜流程和/或事務(wù)集的狀態(tài),對(duì)其應(yīng)用業(yè)務(wù)邏輯,并調(diào)用其支持應(yīng)用程序。 業(yè)務(wù)流程可由使用原子事務(wù)的若干分立工作組成,這些原子事務(wù)在發(fā)

2、生錯(cuò)誤或長(zhǎng)時(shí)間運(yùn)行時(shí)自動(dòng)回滾所有更改,業(yè)務(wù)流程可包含嵌套事務(wù),并可使用自定義異常處理從錯(cuò)誤中恢復(fù)。這些事務(wù)性語(yǔ)義通常由業(yè)務(wù)流程設(shè)計(jì)器中的“作用域”構(gòu)造管理。 長(zhǎng)期流程可持續(xù)數(shù)天、數(shù)周,甚至更長(zhǎng)的時(shí)間。長(zhǎng)期流程通常利用相關(guān)將收到的消息和要發(fā)送的消息關(guān)聯(lián)起來(lái)。業(yè)務(wù)流程引擎通常會(huì)凍結(jié)這些實(shí)例以節(jié)省系統(tǒng)資源,并在收到相關(guān)消息后解除凍結(jié)。業(yè)務(wù)流程引擎會(huì)在已知檢查點(diǎn)處將業(yè)務(wù)流程狀態(tài)持久化到 MessageBox 數(shù)據(jù)庫(kù),以便為從任何應(yīng)用程序異?;蛳到y(tǒng)異常中恢復(fù)做好準(zhǔn)備。提供給 BizTalk 業(yè)務(wù)流程引擎的事務(wù)性編程模型不僅支持異常處理,還支持從失敗的事務(wù)、在錯(cuò)誤發(fā)生時(shí)自動(dòng)回滾其操作的原子事務(wù)或包含其他事

3、務(wù)的長(zhǎng)期事務(wù)及自定義異常處理中恢復(fù)。原子事務(wù)BizTalk 業(yè)務(wù)流程可設(shè)計(jì)為按照事務(wù)的傳統(tǒng)“ACID”概念,執(zhí)行不同部分的工作。在執(zhí)行時(shí),這些離散的或原子的工作單位會(huì)將業(yè)務(wù)流程從一個(gè)一致的狀態(tài)轉(zhuǎn)移到獨(dú)立于其他工作單位的一致且持久的新?tīng)顟B(tài)。這通常是使用“作用域”構(gòu)造實(shí)現(xiàn)的,作用域構(gòu)造使用事務(wù)性語(yǔ)義封裝這些工作單位。也可以將整個(gè)業(yè)務(wù)流程定義為一個(gè)原子事務(wù),而不使用作用域。但是,這些作用域不能標(biāo)記為事務(wù)性的,除非業(yè)務(wù)流程本身標(biāo)記為長(zhǎng)期或原子事務(wù)類(lèi)型。原子事務(wù)保證在事務(wù)性更新期間發(fā)生故障時(shí)可自動(dòng)回滾任何部分更新,并且消除事務(wù)的影響(事務(wù)中進(jìn)行的任何 .NET 調(diào)用的影響除外)。BizTalk 業(yè)務(wù)流程

4、中的原子事務(wù)與分布式事務(wù)處理協(xié)調(diào)器 (DTC) 事務(wù)大體相似,只是前者通常存活時(shí)間較短并且具有四個(gè)“ACID”屬性(原子性、一致性、隔離性和持久性): 原子性一個(gè)事務(wù)就表示一個(gè)原子的工作單位。要么在事務(wù)內(nèi)執(zhí)行所有修改,要么不執(zhí)行任何修改。 一致性在提交時(shí),事務(wù)必須在系統(tǒng)內(nèi)保持?jǐn)?shù)據(jù)的整體性。如果某一事務(wù)在該事務(wù)開(kāi)始前對(duì)已在內(nèi)部保持了一致的數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)修改,則在提交該事務(wù)時(shí),數(shù)據(jù)庫(kù)仍必須在內(nèi)部保持一致。確保此屬性的工作主要由應(yīng)用程序開(kāi)發(fā)人員負(fù)責(zé)。 隔離性并行事務(wù)進(jìn)行的修改必須與其他并行事務(wù)進(jìn)行的修改隔離。并行運(yùn)行的隔離事務(wù)所執(zhí)行的修改將保持內(nèi)部數(shù)據(jù)庫(kù)一致性,與順序運(yùn)行事務(wù)完全一樣。 持久性在提交

5、某一事務(wù)后,默認(rèn)情況下所有修改都永久存在于系統(tǒng)中。即使系統(tǒng)發(fā)生故障,這些修改也存在。在 BizTalk 業(yè)務(wù)流程中使用的原子事務(wù)支持以下隔離級(jí)別: 提交讀在正在讀取數(shù)據(jù)時(shí)保持共享鎖,以避免臟讀,但是在事務(wù)結(jié)束之前可以更改數(shù)據(jù),從而導(dǎo)致不可重復(fù)的讀取或幻像數(shù)據(jù)。 可重復(fù)讀在查詢(xún)中使用的所有數(shù)據(jù)上放置鎖,以防止其他用戶(hù)更新這些數(shù)據(jù)。這防止了不可重復(fù)的讀取,但仍有可能產(chǎn)生幻像行。 可序列化放置一個(gè)范圍鎖,防止在事務(wù)完成前其他用戶(hù)更新行或?qū)⑿胁迦霐?shù)據(jù)庫(kù)中。BizTalk Server 確保原子事務(wù)內(nèi)的狀態(tài)變化(例如對(duì)變量、消息和對(duì)象的修改)只在事務(wù)提交后在原子事務(wù)的作用域外可見(jiàn)。中間狀態(tài)的變化將與業(yè)務(wù)

6、流程的其他部分隔離開(kāi)來(lái)。如果要求對(duì)數(shù)據(jù)具有完全的 ACID 屬性(例如,數(shù)據(jù)必須獨(dú)立于其他事務(wù)),則必須只使用原子事務(wù)。在原子事務(wù)失敗時(shí),所有狀態(tài)都將重置,就像業(yè)務(wù)流程實(shí)例從來(lái)沒(méi)有進(jìn)入該作用域。BizTalk 針對(duì)原子事務(wù)的規(guī)則是:所有變量(而不只是作用域的本地變量)都參與該事務(wù)。在原子事務(wù)中使用的所有非序列化變量和消息都應(yīng)聲明為對(duì)作用域而言是本地的;否則,編譯器將顯示“變量未標(biāo)記為可序列化”錯(cuò)誤。所有原子作用域都將認(rèn)為是“同步的”,并且如果實(shí)際上將同步的關(guān)鍵字用于原子作用域,則業(yè)務(wù)流程編譯器將對(duì)冗余的使用發(fā)出警告。共享數(shù)據(jù)的同步將從作用域開(kāi)始一直擴(kuò)展到作用域成功完成(包括在作用域結(jié)束時(shí)的狀態(tài)

7、持久化),或者擴(kuò)展到異常處理程序完成時(shí)(如果出現(xiàn)錯(cuò)誤)。同步域并不擴(kuò)展到補(bǔ)償處理程序。原子事務(wù)可與超時(shí)值(此時(shí),業(yè)務(wù)流程將停止事務(wù)并且實(shí)例將掛起)相關(guān)聯(lián)。如果某一原子事務(wù)包含接收形狀、發(fā)送形狀或啟動(dòng)業(yè)務(wù)流程形狀,則相應(yīng)操作將不會(huì)在提交該事務(wù)前發(fā)生。 如果用戶(hù)故意引發(fā) RetryTransactionException,或者在原子事務(wù)嘗試提交時(shí)引發(fā) PersistenceException,原子事務(wù)將重試。例如,如果原子事務(wù)是分布式 DTC 事務(wù)的一部分,而該事務(wù)中的其他參與者停止了該事務(wù),則可能會(huì)引發(fā) PersistenceException。同樣,如果在事務(wù)正嘗試提交時(shí)存在數(shù)據(jù)庫(kù)連接問(wèn)題,則

8、也可能引發(fā) PersistenceException。如果 Retry=True 的原子作用域發(fā)生此情況,則它將重試最多 21 次。默認(rèn)情況下,每次重試之間的延遲為 2 秒(但可以修改該默認(rèn)值)。在執(zhí)行完全部 21 次重試后,如果該事務(wù)仍無(wú)法提交,則掛起整個(gè)業(yè)務(wù)流程實(shí)例。該實(shí)例可以手動(dòng)恢復(fù),并且將從沖突的原子作用域的開(kāi)始處使用新計(jì)數(shù)器重新開(kāi)始。DTC 事務(wù)盡管原子事務(wù)在行為上類(lèi)似 DTC 事務(wù),但默認(rèn)情況下,它們并不是顯式的 DTC 事務(wù)。可以顯式地使這些事務(wù)成為 DTC 事務(wù),只要要在該事務(wù)中使用的任何對(duì)象都是從 System.EnterpriseServices.ServicedCompo

9、nents 派生的 COM+ 對(duì)象,并且隔離級(jí)別在事務(wù)組件之間達(dá)成一致。非序列化對(duì)象如果想要在某一業(yè)務(wù)流程內(nèi)使用非序列化對(duì)象,則必須只在原子事務(wù)內(nèi)使用它。只要業(yè)務(wù)流程由引擎保存,在原子事務(wù)外使用此類(lèi)對(duì)象都可能會(huì)導(dǎo)致數(shù)據(jù)丟失。使用原子事務(wù)的方案方案 1:具有 COM+ ServicedComponent 的原子事務(wù)下面的業(yè)務(wù)流程顯示如何將 RetryTransactionException 與原子事務(wù)一起使用。盡管無(wú)法為原子作用域直接包括異常處理程序,但該作用域可以包括可具有異常處理程序的非事務(wù)性作用域。ServicedComponent 在同一 DTC 事務(wù)中登記,捕獲由該組件引發(fā)的任何異常并

10、重新引發(fā)為 RetryTransactionException。(假定針對(duì)原子作用域?qū)?Retry 屬性設(shè)置為 True)。請(qǐng)注意,即使未引發(fā) RetryTransactionException,仍將掛起此業(yè)務(wù)流程,并將回滾 MessageAssignment 形狀中的操作。但是,這種模式能夠在自動(dòng)進(jìn)行重試的應(yīng)用程序中提供一定的彈性。具有COM+ ServicedComponent 的原子事務(wù)方案 2:將事務(wù)性適配器與原子事務(wù)一起使用下面的業(yè)務(wù)流程顯示如何將原子事務(wù)與 SQL 適配器一起使用。整個(gè)業(yè)務(wù)流程被標(biāo)記為長(zhǎng)期業(yè)務(wù)流程,并且?guī)в蟹謩e用于工作的兩個(gè)邏輯部分的單獨(dú)原子事務(wù):插入新客戶(hù)和插入客

11、戶(hù)訂單詳細(xì)信息。 如果由于某種原因?qū)е虏迦胗唵蔚牟僮魇?,則應(yīng)回滾插入客戶(hù)的操作。該示例使用 SQL 適配器執(zhí)行數(shù)據(jù)庫(kù)工作。如前所述,消息發(fā)送到 MessageBox 數(shù)據(jù)庫(kù)時(shí)將完成與原子事務(wù)相關(guān)聯(lián)的作用域。這表示引擎在 Scope_InsertCustomer 和 Scope_InsertOrder 作用域中成功發(fā)送消息后,將提交每一作用域。SQL 適配器將為客戶(hù)或訂單的實(shí)際插入創(chuàng)建一個(gè)新事務(wù)。 這些端口具有“送達(dá)通知”屬性,用來(lái)驗(yàn)證是否通過(guò)發(fā)送端口成功發(fā)送了消息。將“送達(dá)通知”屬性設(shè)置為“已傳輸”時(shí),會(huì)在發(fā)送操作的事務(wù)性提交點(diǎn)之前放置一個(gè)接收訂閱。但是在原子作用域的情況下,會(huì)將接收訂閱放在

12、封閉的父作用域中。 在 InsertOrder SQL 事務(wù)失敗的情況下,將發(fā)送回“Nack”并提交“Scope_InsertOrder”。發(fā)送端口用盡所配置的重試次數(shù)后,將引發(fā)DeliveryFailureException。將運(yùn)行默認(rèn)補(bǔ)償過(guò)程的默認(rèn)異常處理程序會(huì)捕獲此異常。這將調(diào)用與Scope_InsertCustomer 和 Scope_InsertOrder 相關(guān)聯(lián)的補(bǔ)償處理程序,從而導(dǎo)致撤銷(xiāo)插入客戶(hù)信息的操作。具有原子事務(wù)的事務(wù)性適配器長(zhǎng)期事務(wù)長(zhǎng)期事務(wù)是 BizTalk 業(yè)務(wù)流程中常用的重要構(gòu)造。它們提供的功能可幫助實(shí)現(xiàn)自定義的基于作用域的補(bǔ)償、自定義的基于作用域的異常處理以及嵌套事

13、務(wù),因此,可以很靈活地設(shè)計(jì)可靠的事務(wù)結(jié)構(gòu)。如果事務(wù)可能需要長(zhǎng)時(shí)間運(yùn)行并且不需要完整的 ACID 屬性(即,不需要確保數(shù)據(jù)與其他事務(wù)隔離),則可以使用長(zhǎng)期事務(wù)。長(zhǎng)期事務(wù)可能具有較長(zhǎng)的不活動(dòng)時(shí)間,通常是由于等待外部消息到達(dá)造成的。長(zhǎng)期事務(wù)擁有一致性和持久性,但不具備原子性和隔離。長(zhǎng)期事務(wù)內(nèi)的數(shù)據(jù)不鎖定;其他進(jìn)程或應(yīng)用程序可以對(duì)數(shù)據(jù)進(jìn)行修改。不保持狀態(tài)更新的隔離屬性,因?yàn)楸3珠L(zhǎng)期鎖定不現(xiàn)實(shí)。 長(zhǎng)期事務(wù)的提交不同于原子事務(wù)的提交。沒(méi)有針對(duì)結(jié)果的分布式協(xié)調(diào)的隱式假定(長(zhǎng)期事務(wù)僅存在于單個(gè)業(yè)務(wù)流程實(shí)例中)。而是在長(zhǎng)期事務(wù)中的最后一個(gè)語(yǔ)句完成時(shí),代表該事務(wù)已提交。事務(wù)中止的情況下,不會(huì)“自動(dòng)”回滾狀態(tài)。這種

14、回滾可以通過(guò)編寫(xiě)異常處理程序和補(bǔ)償處理程序來(lái)實(shí)現(xiàn)。作用域可通過(guò)聲明變量、消息和 .NET 組件,定義自己的狀態(tài)。長(zhǎng)期事務(wù)能夠訪問(wèn)自己的作用域的狀態(tài)信息、封閉它的任何作用域以及在業(yè)務(wù)流程內(nèi)全局定義的任何狀態(tài)信息。長(zhǎng)期事務(wù)不能夠訪問(wèn)不封閉它的任何作用域的狀態(tài)信息。嵌套長(zhǎng)期事務(wù)可以包含原子事務(wù)或其他長(zhǎng)期事務(wù)。它們可以嵌套到任意深度。例如,的事務(wù)可以包含兩個(gè)其他的長(zhǎng)期事務(wù),這兩個(gè)事務(wù)又可以包含原子事務(wù)。如果整體事務(wù)的一個(gè)或多個(gè)組件需要是原子的,而該整體事務(wù)又需要是長(zhǎng)期的,則嵌套將很有用。讓我們看一下一個(gè)接收和履行采購(gòu)訂單的例子。該采購(gòu)訂單可能會(huì)在任何時(shí)候到達(dá),并且履行訂單的不同步驟可能需要一定時(shí)間才能

15、完成,但仍想要將整個(gè)過(guò)程作為一個(gè)事務(wù)處理。顯然,此例子中的整體事務(wù)需要是長(zhǎng)期事務(wù),但對(duì)于個(gè)別步驟,例如確認(rèn)付款,可能需要是原子的。補(bǔ)償長(zhǎng)期事務(wù)可以指定某一補(bǔ)償模塊,此補(bǔ)償模塊將在事務(wù)提交后被調(diào)用以補(bǔ)償該事務(wù)的活動(dòng)。它可能只是撤消事務(wù)(如果可能),或者執(zhí)行以某種方式幫助減輕事務(wù)影響的某些其他功能(例如通知)。如果沒(méi)有添加自己的補(bǔ)償代碼,則默認(rèn)情況下運(yùn)行時(shí)引擎將調(diào)用內(nèi)部事務(wù)的補(bǔ)償模塊,長(zhǎng)期事務(wù)和原子事務(wù)都采用相反順序,即以最后提交的事務(wù)開(kāi)始、以最先提交的事務(wù)結(jié)束。容錯(cuò)事務(wù)支持容錯(cuò),以便從內(nèi)部錯(cuò)誤(例如機(jī)器故障和軟件錯(cuò)誤)和外部錯(cuò)誤(例如取消消息)恢復(fù)。在發(fā)生事務(wù)錯(cuò)誤時(shí),并不自動(dòng)回滾長(zhǎng)期事務(wù)內(nèi)的部分

16、更新,因?yàn)樗鼈兾挥?ACID 事務(wù)中。在發(fā)生錯(cuò)誤時(shí)將調(diào)用長(zhǎng)期事務(wù)的異常代碼塊。異常代碼塊包含一組編寫(xiě)的錯(cuò)誤處理程序,用于處理在事務(wù)執(zhí)行期間可能導(dǎo)致的任何錯(cuò)誤??梢越柚ⅰ⒆兞亢蛯?duì)象的最后已知狀態(tài)來(lái)處理錯(cuò)誤。通常,將希望異常處理程序評(píng)估在發(fā)生異常時(shí)業(yè)務(wù)流程的狀態(tài),基于該狀態(tài)采取任何必要措施,并且調(diào)用任何嵌套事務(wù)的補(bǔ)償。在發(fā)生錯(cuò)誤時(shí),將中斷長(zhǎng)期事務(wù)的執(zhí)行。長(zhǎng)期事務(wù)不能在發(fā)生錯(cuò)誤后恢復(fù)。使用長(zhǎng)期事務(wù)的方案方案 1:將長(zhǎng)期事務(wù)用于超時(shí)長(zhǎng)期作用域可與某一超時(shí)關(guān)聯(lián),超時(shí)是長(zhǎng)期工作必須在此時(shí)間范圍內(nèi)完成的邏輯時(shí)間。如果該作用域沒(méi)有在指定時(shí)間內(nèi)完成,將引發(fā)預(yù)定義的系統(tǒng)異常 TimeoutException。

17、您可以通過(guò)將整個(gè)業(yè)務(wù)流程標(biāo)記為長(zhǎng)期的,或者通過(guò)讓外部長(zhǎng)期作用域嵌套任何其他作用域,創(chuàng)建長(zhǎng)期進(jìn)程。在前一個(gè)方案中,系統(tǒng)提供的異常處理程序?qū)⑦\(yùn)行,而后一個(gè)方案則允許特定的異常處理程序與外部作用域相關(guān)聯(lián)。默認(rèn)的系統(tǒng)提供的異常處理程序?qū)槊總€(gè)成功完成的嵌套事務(wù)性作用域(如果有)運(yùn)行補(bǔ)償處理程序,運(yùn)行順序與其完成順序相反。您可以通過(guò)在異常處理程序中將補(bǔ)償形狀用于長(zhǎng)期事務(wù),通過(guò)自補(bǔ)償實(shí)現(xiàn)同一任務(wù)。下面的業(yè)務(wù)流程介紹如何將超時(shí)與長(zhǎng)期事務(wù)相關(guān)聯(lián)。 具有超時(shí)值的長(zhǎng)期事務(wù)有時(shí)候,您可能需要連接以批處理形式操作的舊式系統(tǒng)。此方案顯示了一個(gè)要接收并發(fā)送到舊式系統(tǒng)的采購(gòu)訂單。此舊式系統(tǒng)處理該采購(gòu)訂單,并且發(fā)送回采購(gòu)訂單

18、確認(rèn)。該發(fā)送操作采用采購(gòu)訂單號(hào)初始化某一相關(guān)集,并且接收操作將遵循該相關(guān)集。該接收操作還處于具有超時(shí)值的長(zhǎng)期作用域中。 業(yè)務(wù)流程引擎將凍結(jié)正等待接收的業(yè)務(wù)流程實(shí)例。相關(guān)將確保在接收消息后調(diào)用同一業(yè)務(wù)流程實(shí)例。如果該采購(gòu)訂單確認(rèn)在超時(shí)值指定的時(shí)間間隔內(nèi)未到達(dá),將引發(fā) TimeoutException。方案 2:將長(zhǎng)期事務(wù)用于自定義補(bǔ)償以下業(yè)務(wù)流程闡釋如何關(guān)聯(lián)自定義補(bǔ)償以及調(diào)用與整個(gè)業(yè)務(wù)流程相關(guān)聯(lián)的自定義補(bǔ)償。此方案將插入一個(gè)新客戶(hù)以及插入該客戶(hù)的訂單明細(xì)。業(yè)務(wù)流程的邏輯規(guī)定如果訂單插入失敗,您應(yīng)該回滾該客戶(hù)插入。該客戶(hù)插入可由舊式系統(tǒng)執(zhí)行,因此,在單獨(dú)的可調(diào)用業(yè)務(wù)流程中闡釋。被調(diào)用的業(yè)務(wù)流程具有

19、為補(bǔ)償設(shè)置的 Custom 屬性,這將提供單獨(dú)的表格來(lái)執(zhí)行補(bǔ)償過(guò)程。該補(bǔ)償是要?jiǎng)h除新插入的客戶(hù)。調(diào)用業(yè)務(wù)流程具有要執(zhí)行訂單插入的長(zhǎng)期作用域。此作用域嵌套在某一外部長(zhǎng)期作用域中。該外部作用域具有關(guān)聯(lián)的異常處理程序,以便捕獲任何異常。該處理程序使用補(bǔ)償形狀來(lái)定義與調(diào)用的業(yè)務(wù)流程相關(guān)聯(lián)的自定義異常,以便回滾在對(duì)業(yè)務(wù)流程的調(diào)用中可能發(fā)生的任何更改。具有自定義補(bǔ)償?shù)拈L(zhǎng)期事務(wù)調(diào)用的業(yè)務(wù)流程(主要)調(diào)用的業(yè)務(wù)流程(補(bǔ)償)業(yè)務(wù)流程中的持久化業(yè)務(wù)流程引擎將保存業(yè)務(wù)流程實(shí)例在不同持久化點(diǎn)時(shí)的整個(gè)狀態(tài),以便可以解除凍結(jié)業(yè)務(wù)流程實(shí)例。該狀態(tài)包括可在業(yè)務(wù)流程中使用的所有基于 .NET 的組件以及消息和變量。該引擎存儲(chǔ)處于以下持久化點(diǎn)時(shí)的狀態(tài): 事務(wù)作用域(原子事務(wù)或長(zhǎng)期事務(wù))結(jié)束時(shí) 在調(diào)試斷點(diǎn)時(shí) 在通過(guò)啟動(dòng)業(yè)務(wù)流程形狀執(zhí)行其他業(yè)務(wù)流程時(shí) 在發(fā)送形狀上(原子事

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論