เมื่อคุณเรียกใช้ทรานแซคชันแบบกระจายกับอินสแตนซ์ของ SQL Server คุณอาจได้รับข้อความแสดงข้อผิดพลาดที่คล้ายกับข้อความต่อไปนี้:
เซิร์ฟเวอร์: ข่าวสารเกี่ยวกับ 7391 ระดับ 16 สถานะ 1 บรรทัด 1
ไม่สามารถทำการดำเนินการเนื่องจากผู้ให้บริการ OLE DB 'SQLOLEDB' ไม่สามารถเริ่มทรานแซคชันที่วางจำหน่ายได้ [ตัวให้บริการ OLE/DB การส่งคืนข้อความ: ธุรกรรมใหม่ไม่ enlist ใน coordinator ธุรกรรมที่ระบุได้] การสืบค้นกลับข้อผิดพลาด OLE DB [ผู้ให้บริการ OLE/DB 'SQLOLEDB' ITransactionJoin::JoinTransaction คืน 0x8004d00a]
ปัญหานี้อาจเกิดขึ้นเมื่อเงื่อนไขต่อไปนี้:
- Microsoft Windows Server 2003 หรือ Microsoft Windows XP Service Pack 2 (SP2) ถูกติดตั้งบนคอมพิวเตอร์ที่เริ่มธุรกรรมการกระจาย
- Microsoft Windows Server 2003 หรือ Microsoft Windows XP SP2 ถูกติดตั้งบนคอมพิวเตอร์ระยะไกลที่รัน Microsoft SQL Server 2000 และคอมพิวเตอร์ที่ถูกลิงค์ไปยังคอมพิวเตอร์ที่เริ่มธุรกรรมการกระจาย
ปัญหานี้เกิดขึ้นเนื่องจากความอย่างน้อยหนึ่งเนื่องจากสาเหตุต่อไปนี้:
- Microsoft Distributed ทรานแซคชัน Coordinator (MSDTC) ถูกปิดใช้งานสำหรับธุรกรรมของเครือข่าย
- ไฟร์วอลล์ windows เปิดใช้งานบนคอมพิวเตอร์
โดยค่าเริ่มต้น ไฟร์วอลล์ Windows บล็อกธุรกรรมการแจกจ่าย Microsoft Coordinator (MSDTC) โปรแกรม
หมายเหตุ:ปัญหานี้อาจเกิดขึ้นได้แม้กระทั่งเมื่อ Windows Firewall ถูกปิดใช้งานได้
สิ่งสำคัญนี้ส่วน วิธี หรืองานประกอบด้วยขั้นตอนที่บอกวิธีการแก้ไขรีจิสทรี อย่างไรก็ตาม ปัญหาร้ายแรงอาจเกิดขึ้นหากคุณปรับเปลี่ยนรีจิสทรีไม่ถูกต้อง ดังนั้น โปรดตรวจสอบให้แน่ใจว่าคุณได้ทำตามขั้นตอนเหล่านี้อย่างระมัดระวัง สำหรับการป้องกันเพิ่มเติม ให้สำรองรีจิสทรีก่อนทำการปรับเปลี่ยน เพื่อที่คุณจะสามารถคืนค่ารีจิสทรีได้หากมีปัญหาเกิดขึ้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสำรองข้อมูลและคืนค่ารีจิสทรี โปรดคลิกที่หมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
322756
(http://support.microsoft.com/kb/322756/
)
วิธีการสำรองข้อมูลและคืนค่ารีจิสทรีใน Windows
เมื่อต้องการแก้ไขปัญหานี้ ทำตามขั้นตอนเหล่านี้บนคอมพิวเตอร์ที่ใช้ Windows Server 2003 หรือ Windows XP SP2 ถูกติดตั้งบน:
- ตรวจสอบให้แน่ใจว่าการล็อกอินเป็นบัญชีผู้ใช้สำหรับบริการ MSDTC ไม่บริการเครือข่ายบัญชี โดยให้ทำตามขั้นตอนต่อไปนี้::
- คลิกเริ่มการทำงานแล้ว คลิกเรียกใช้.
- ในการเรียกใช้กล่องโต้ตอบ ชนิดServices.mscแล้ว คลิกตกลง.
- ในการบริการหน้าต่าง ค้นหานี้กระจายทรานแซคชัน Coordinatorบริการภายใต้ชื่อ:ในบานหน้าต่างด้านขวา
- ภายใต้การล็อกอินเป็นคอลัมน์ ดูว่าการล็อกอินเป็นบัญชีผู้ใช้อยู่บริการเครือข่ายหรือระบบภายใน.
ถ้าการล็อกอินเป็นบัญชีผู้ใช้อยู่บริการเครือข่ายไปที่ขั้นที่ 2 ถ้าการล็อกอินเป็นบัญชีผู้ใช้อยู่ระบบภายในบัญชี ดำเนินการขั้นตอนเหล่านี้ - คลิกเริ่มการทำงานแล้ว คลิกเรียกใช้.
- ในการเรียกใช้กล่องโต้ตอบ ชนิดcmdแล้ว คลิกตกลง.
- ที่พรอมต์คำสั่ง พิมพ์:สุทธิ msdtc หยุดเมื่อต้องการหยุดบริการ MSDTC
- ที่พรอมต์คำสั่ง พิมพ์:Msdtc uninstallเมื่อต้องการลบ MSDTC
- ที่พรอมต์คำสั่ง พิมพ์:regeditเมื่อต้องการเปิดตัวแก้ไขรีจิสทรี
- ใน Registry Editor ค้นหาคีย์ต่อไปนี้:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
รีจิสตรีคีย์
ลบคีย์นี้ - ออกจากโปรแกรม Registry Editor
- ที่พรอมต์คำสั่ง พิมพ์:Msdtc installการติดตั้ง MSDTC
- ที่พรอมต์คำสั่ง พิมพ์:msdtc เริ่มการทำงานสุทธิเมื่อต้องการเริ่มบริการ MSDTC
หมายเหตุที่นั้นล็อกอินเป็นมีการตั้งค่าบัญชีสำหรับการบริการ MSDTC ไปบริการเครือข่ายบัญชี
- MSDTC เพื่ออนุญาตให้มีเครือข่ายธุรกรรมที่เปิดใช้งาน โดยให้ทำตามขั้นตอนต่อไปนี้::
- คลิกเริ่มการทำงานแล้ว คลิกเรียกใช้.
- ในการเรียกใช้กล่องโต้ตอบ ชนิดdcomcnfg.exeแล้ว คลิกตกลง.
- ในการบริการคอมโพเนนต์หน้าต่าง ขยายบริการคอมโพเนนต์ขยายคอมพิวเตอร์แล้ว ขยายMy Computer.
- คลิกขวาMy Computerแล้ว คลิกคุณสมบัติ.
- ในการคุณสมบัติของคอมพิวเตอร์ของฉันกล่องโต้ตอบกล่อง คลิกการกำหนดค่าการรักษาความปลอดภัยในการmsdtcแท็บ
- ในการการกำหนดค่าการรักษาความปลอดภัยกล่องโต้ตอบกล่อง คลิกเพื่อเลือกนั้นการเข้าถึง DTC เครือข่ายกล่องกาเครื่องหมาย
- เมื่อต้องการให้ธุรกรรมการแจกจ่ายที่เรียกใช้บนคอมพิวเตอร์เครื่องนี้จากคอมพิวเตอร์ระยะไกล คลิกเพื่อเลือกนั้นอนุญาตให้ขาเข้ากล่องกาเครื่องหมาย
- เมื่อต้องการให้ธุรกรรมการแจกจ่ายที่เรียกใช้บนคอมพิวเตอร์ระยะไกลจากคอมพิวเตอร์เครื่องนี้ คลิกเพื่อเลือกนั้นอนุญาตให้ขาออกกล่องกาเครื่องหมาย
- ภายใต้การตัวจัดการธุรกรรมการสื่อสารกลุ่ม คลิกเพื่อเลือกนั้นรับรองความถูกต้องไม่จำเป็นตัวเลือก ตั้งค่ารับรองความถูกต้องไม่จำเป็นทั้งไคลเอนต์และระบบการระยะไกล
- ในการการกำหนดค่าการรักษาความปลอดภัยกล่องโต้ตอบกล่อง คลิกตกลง.
- ในการคุณสมบัติของคอมพิวเตอร์ของฉันกล่องโต้ตอบกล่อง คลิกตกลง.
- การตั้งค่าคอนฟิก Windows Firewall เพื่อที่รวมโปรแกรม MSDTC และรวมพอร์ต 135 เป็นข้อยกเว้น โดยให้ทำตามขั้นตอนต่อไปนี้::
- คลิกเริ่มการทำงานแล้ว คลิกเรียกใช้.
- ในการเรียกใช้กล่องโต้ตอบ ชนิดfirewall.cplแล้ว คลิกตกลง
- ในแผงควบคุมคลิกสองครั้งWindows Firewall:.
- ในการWindows Firewall:กล่องโต้ตอบ คลิกเพิ่มโปรแกรมในการข้อยกเว้นแท็บ
- ในการเพิ่มโปรแกรมกล่องโต้ตอบ คลิกการเรียกดูปุ่ม และจากนั้น ระบุตำแหน่งแฟ้ม Msdtc.exe โดยค่าเริ่มต้น แฟ้มถูกเก็บอยู่ในนั้น<installation drive="">: \Windows\System32</installation>โฟลเดอร์
- ในการเพิ่มโปรแกรมกล่องโต้ตอบ คลิกตกลง.
- ในการWindows Firewall:กล่องโต้ตอบ คลิกเพื่อเลือกนั้นmsdtcตัวเลือกในการโปรแกรมและบริการรายการ
- คลิกเพิ่มพอร์ตในการข้อยกเว้นแท็บ
- ในการเพิ่มพอร์ตกล่องโต้ตอบ ชนิด135ในการหมายเลขพอร์ตกล่องข้อความ และจากนั้นคลิกเพื่อเลือกนั้นTCPตัวเลือก
- ในการเพิ่มพอร์ตกล่องโต้ตอบ ชนิดของชื่อข้อยกเว้นในนั้นชื่อ:กล่องข้อความ แล้วคลิกตกลง.
- ในการWindows Firewall:กล่องโต้ตอบกล่อง เลือกชื่อที่คุณใช้สำหรับการยกเว้นใน j ขั้นตอนใน การโปรแกรมและบริการรายการ และจากนั้น คลิกตกลง.
- ทดสอบ pinging จากเซิร์ฟเวอร์ที่โฮสต์ไปยังเซิร์ฟเวอร์ระยะไกล และ จากเซิร์ฟเวอร์ระยะไกลไปยังเซิร์ฟเวอร์ที่โฮสต์ โดยใช้ชื่อ netbios (ชื่อเซิร์ฟเวอร์ โดยไม่มีโดเมน)
Coordinator ทรานแซคชันการแจกจ่าย Microsoft ใช้ชื่อ netbios ไม่ครบถ้วนชื่อโดเมน การค้นหาตำแหน่งของเซิร์ฟเวอร์ ถ้าการแก้ปัญหาชื่อล้มเหลว ธุรกรรมที่มีการแจกจ่ายจะล้มเหลว
ถ้ามีการล้มเหลว pings โดยใช้ชื่อ netbios โปรดดูบทความฐานความรู้ต่อไปนี้:
172218
(http://support.microsoft.com/kb/172218/
)
ใบสั่งในการแก้ปัญหาชื่อโฮสต์ TCP/IP ของ Microsoft
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "การใช้งาน"
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่า Windows XP Service Pack 2 สำหรับใช้กับ SQL Server 2000 คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
841249
(http://support.microsoft.com/kb/841249/
)
วิธีการกำหนดค่า Windows XP Service Pack 2 สำหรับใช้กับ SQL Server
หมายเลขบทความ (Article ID): 839279 - รีวิวครั้งสุดท้าย: 14 มกราคม 2554 - Revision: 4.0
ใช้กับ
- Microsoft SQL Server 2000 Standard Edition
- Microsoft Windows XP Embedded
- Microsoft Windows Server 2003 Standard Edition
- Microsoft Windows Server 2003 Datacenter Edition
- Microsoft Windows Server 2003 Enterprise Edition
| kbregistry kberrmsg kbdtc kbdomain kbauthentication kbtransaction kbrpc kbprb kbmt KB839279 KbMtth |
แปลโดยคอมพิวเตอร์ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:
839279
(http://support.microsoft.com/kb/839279/en-us/
)