- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【.NET 分散式交易程式開發FAQ 】 頁 1 / 11
.NET 分散式交易程式開發FAQ
作者: 李明儒
.NET 2.0讓分散式交易的程式開發步入一個簡便與彈性兼備的新紀元,然而在實作過程中,還是免不了
會有些顛簸崎嶇。本文以 FAQ 方式彙整分散式交易程式開發在實務上常遇到的問題,希望能提供一些指引。
1. 系統開發中常見的分散式交易(Distributed Transaction)情境為何?
最常見的情境是多部資料庫伺服器間的資料異動必頇包成一個交易。例如: 當兩台SQL Server 或SQL
Server 與Oracle Server 間的資料更動作業具有高度相關性時,兩台機器上的更新動作必頇要一起成功或
一起失敗,不允許Oracle 資料表新增了匯出記錄,SQL Server 上卻未寫入匯入記錄這類狀況發生。
2. 分散式交易是如何做到的?
Windows 平台上有所謂的MSDTC(Distributed Transaction Coordinator) ,有能力協調多部資料庫伺服
器完成兩階段式交易認可(Two-Phase Commit) ,其中的實作原理及細節頗為深奧,但一般.NET開發者只需
知道分散式交易由DTC 負責執行管理即可。
3. 如何啟用分散式交易?
ASP 時代,我們可以在開頭宣告%@ Transaction=Required% ,則ASP 中全部的資料庫動作都會被包成
分散式交易。但這樣不分青紅皂白地狂包一通往往不利於效能,如要有效控制啟用交易的範圍,一般標準的
做法是建立一顆Transaction Root COM+元件,Transaction Support Level 設為”Required” ,由它去
呼叫要參與Transaction 的COM+元件(Transaction Support Level設為”Support”) ,如此,我們可以
將Transaction 發生的範圍,侷限在特定的COM+元件間。
.NET 1.1裡要實作分散式交易,需要寫一顆繼承自 System.EnterpriseService.ServicedComponent
的元件,內含更新資料庫的程式邏輯,再設定 TransactionAttribute ,然後Strong-Named/Signed ,包
上COM+的皮,註冊放入COM+ Application 中,原則上還是借用了前述COM+的運作原理,但手續更加繁瑣。
.NET 2.0 推出System.Transactions.TransactionScope ,讓開發者可以重溫當年ASP 時代只需宣告,
資料庫存取程式碼完全不需修改就能參與交易的方便性,更由於TransactionScope 可以自由宣告要包成交
易的Code 區段範圍,應用的彈性又更上一層樓。
4. 原本好好的程式碼,啟用分散式交易後就出現連不上資料庫的錯誤?
啟用分散式交易後,程式存取資料庫的方式由原先直接連線資料庫特定TCP Port(例如: SQL Server預設
為1433 Port) ,變成要由MSDTC 透過 RPC連線與SQL Server 資料庫溝通或需依賴其他特定服務(例如: 必
頇要安裝Oracle Services for MTS 才能讓Oracle 參與分散式交易) ,由於連線方式改變,切換到分散
式交易後就無法連線資料庫的狀況還挺常見的。
以RPC連線為例,很容易受到Client 與Database Server 間防火牆的限制而無法連通,出現New
transaction cannot enlist in specified transaction coordinator (新增的交易無法編列在指定
的交易協調器中) 或Error 8004d00a.Distributed Transaction error (錯誤 8004d00a 。分散式交
易錯誤)兩種錯誤訊息。
【.NET 分散式交易程式開發FAQ 】 頁 2 / 11
關於MSDTC 穿防火牆的問題,微軟有一篇專門的文章提示如何排除。
(/kb/306843/zh-tw) KB 中提到的DTCPing 是處理DTC 問題很基本而
您可能关注的文档
- CALIS三期服务办法与.PDF
- i.MX51L开发套件系统介绍.PDF
- IC反弹,或为出逃!.PDF
- MAPSKL43开发套件发布说明.PDF
- MBA能力评价指标体系设置研究.doc
- SAPAD软件开发采购项目询价文件.doc
- 《土地增值税纳税申报表(二)(从事房地产开发的纳税人清.DOC
- 《小餐饮经营许可证》发证公告(2018年第4期).DOC
- 《提高供应链竞争力》.PDF
- 《高铁对城市地价的影响及其机制研究来自微观土地交易.PDF
- 2025中国科学院科技战略咨询研究院教育助理招聘1人笔试题库附答案解析.docx
- 2025中国电信股份有限公司亳州分公司外包人员招聘1人参考题库附答案解析.docx
- 2019-2020年华师大版小学品德与社会三年级下册共同维护食品安全说课和教学设计.doc
- 2019年人教版六年级语文毕业总复习资料.doc
- 2025四川南充市公共资源交易中心考调人员5人备考题库附答案解析.docx
- 2025北京市公共资源交易中心招聘8人笔试题库附答案解析.docx
- 2025国务院国资委研究中心招聘2人笔试题库附答案解析.docx
- 2025中国水利水电科学研究院招聘11人参考题库附答案解析.docx
- 2025宁波市江北区司法局招聘2人备考题库附答案解析.docx
- 2025北京市文化和旅游局宣传中心招聘应届毕业生1人笔试题库附答案解析.docx
最近下载
- 微型企业应急救援预案模板(定稿).pdf VIP
- 2025年群团工作部上半年工作总结.docx VIP
- 2025年拍卖师拍卖系统电子竞价数据隐私保护专题试卷及解析.pdf VIP
- 药品检验检测机构凝胶检测技术鲎试剂质量标准.pdf VIP
- 品管圈PDCA获奖案例呼吸科提高患者吸入剂规范使用达标率.pptx
- 实施指南《GB19521.12 - 2004有机过氧化物危险货物危险特性检验安全规范》实施指南.pptx VIP
- 2025年房地产经纪人行纪合同中的合同变更规则专题试卷及解析.pdf VIP
- 雕塑设计制作合同协议书范本2025年.docx VIP
- 婴幼儿反复喘息诊治、管理、预防临床实践循证指南(2025)解读PPT课件.pptx VIP
- 奶茶制作流程.pptx VIP
原创力文档


文档评论(0)