मैं एक जुड़े सर्वर के खिलाफ एसक्यूएल चलाने की कोशिश कर रहा हूं, लेकिन मुझे नीचे त्रुटियां मिलती हैं:
BEGIN DISTRIBUTED TRANSACTION
SELECT TOP 1 * FROM Sessions
OLE DB provider "SQLNCLI" for linked server "ASILIVE" returned message "No transaction is active.".
Msg 7391, Level 16, State 2, Line 3
The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "ASILIVE" was unable to begin a distributed transaction.
प्रदाता द्वारा दो त्रुटियां दी गई हैं:
त्रुटि # 1:
Number: $80040E14
Source: Microsoft OLE DB Provider for SQL Server
Description: OLE DB provider "SQLNCLI" for linked server "ASILIVE" returned message "No transaction is active.".
HelpFile:
HelpContext: $00000000
SQLState: 01000
NativeError: 7412
त्रुटि # 2
Number: $80040E14
Source: Microsoft OLE DB Provider for SQL Server
Description: The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "ASILIVE" was unable to begin a distributed transaction.
HelpFile:
HelpContext: $00000000
SQLState: 42000
NativeError: 7391
मैं Microsoft को सुरक्षा पर कार्यक्षमता के पक्ष में कैसे प्राप्त करूं?
या, कम से कम, मैं एक दूसरे से बात करने के लिए दो एसक्यूएल सेवर कैसे प्राप्त कर सकता हूं?
संबंधित सवाल
- ऑपरेशन नहीं किया जा सका क्योंकि OLE DB प्रदाता "SQLNCLI10" ... (* जुड़ा सर्वर नाम है
(null)
) - वितरण त्रुटि हुई? ( Oracle प्रदाता का उपयोग करके )
- NHibernate ( हाइबरनेट का उपयोग करके ) के साथ एक वितरित लेनदेन में सूचीबद्ध करने में असमर्थ
- SQL Server 2008 R2 ( SQL Server 2008 R2, कोई जवाब नहीं ) में वितरित लेनदेन का उपयोग करने में त्रुटि
- केवल कोड के माध्यम से वितरण त्रुटि ( कनेक्शन पूलिंग के कारण )
- लिंक किए गए सर्वर में वितरित लेनदेन समन्वयक को करने में त्रुटि ( SQL सर्वर 2008, कोई जवाब नहीं )
- वितरण त्रुटि हुई? ( कोई स्वीकृत उत्तर नहीं; केवल उत्तर मदद नहीं करता है )
- लिंक किए गए सर्वर withint लेनदेन का उपयोग करके दूरस्थ तालिका में कैसे सम्मिलित करें? ( स्वीकृत उत्तर हल नहीं करता है )
मैंने जो किया है वह अप्रासंगिक है, लेकिन मैं इसे वैसे भी पोस्ट करूंगा।
सुनिश्चित करें कि
Distributed Transaction Coordinator
सेवा दोनों मशीनरी पर चल रही है:दोनों मशीनों पर सभी MSDTC सुरक्षा अक्षम करें:
लिंक किए गए सर्वर पर यादृच्छिक विकल्प चालू करें:
शापित और शपथ।
टूटी हुई चीजें।
जाँच की कि लिंक किए गए सर्वर का
SELECT
उपयोग कर सकते हैं :SELECT * FROM ASILive.CustomerManagementSystem.dbo.Users .... (763 row(s) affected)
जाँच की कि क्लाइंट सर्वर
ping
दूरस्थ सर्वर कर सकते हैं :C:\Documents and Settings\avatar>ping asicmstest.contoso.com Pinging asicmstest.contoso.com [10.0.0.40] with 32 bytes of data: Reply from 10.0.0.40: bytes=32 time<1ms TTL=128 Reply from 10.0.0.40: bytes=32 time<1ms TTL=128 Reply from 10.0.0.40: bytes=32 time<1ms TTL=128 Reply from 10.0.0.40: bytes=32 time<1ms TTL=128 Ping statistics for 10.0.0.40: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
जाँच की जाती है कि दूरस्थ सर्वर आरंभ करने वाले सर्वर को नाम से वापस भेज सकता है:
C:\Documents and Settings\avatar>ping asitestserver.contoso.com Pinging asitestserver.contoso.com [10.0.0.22] with 32 bytes of data: Reply from 10.0.0.22: bytes=32 time<1ms TTL=128 Reply from 10.0.0.22: bytes=32 time<1ms TTL=128 Reply from 10.0.0.22: bytes=32 time<1ms TTL=128 Reply from 10.0.0.22: bytes=32 time<1ms TTL=128 Ping statistics for 10.0.0.22: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
जाँच की कि
@@SERVERNAME
दोनों सर्वर पर सर्वर नाम से मेल खाता है :SELECT @@SERVERNAME, SERVERPROPERTY('MachineName') ------------- ------------- ASITESTSERVER ASITESTSERVER
तथा
SELECT @@SERVERNAME, SERVERPROPERTY('MachineName') ---------- ---------- ASIGROBTEST ASIGROBTEST
चिल्लाया
जारी किए गए
SET XACT_ABORT ON
मेरी क्वेरी जारी करने से पहले :SET XACT_ABORT ON GO BEGIN DISTRIBUTED TRANSACTION SELECT TOP 1 * FROM Sessions
इसके लिए दी
Everyone
Full Control
गई :HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer
दोनों सर्वरों पर।