2013-04-18 8 views
6

डेटाबेस में रिकॉर्ड डालने के दौरान मुझे त्रुटि से नीचे मिल रहा है।एसक्यूएल लेनदेन विफलता

System.Transactions.TransactionException: The operation is not valid for the state of the transaction. ---> System.TimeoutException: Transaction Timeout 
    --- End of inner exception stack trace --- 
    at System.Transactions.TransactionState.EnlistPromotableSinglePhase(InternalTransaction tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification, Transaction atomicTransaction) 
    at System.Transactions.Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification promotableSinglePhaseNotification) 
    at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx) 
    at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction) 
    at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) 
    at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) 
    at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) 
    at System.Data.SqlClient.SqlConnection.Open() 

दरअसल मैं लेनदेन स्कोप विधि द्वारा डेटाबेस में डेटा डाल रहा हूं, जिसके लिए नीचे वर्णित किया गया है।

TransactionOptions tOptions = new TransactionOptions(); 
tOptions.IsolationLevel = IsolationLevel.ReadCommitted; 
tOptions.Timeout = TransactionManager.MaximumTimeout; 
using (var transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew, tOptions)) 
{ 
} 

क्या उपर्युक्त में कुछ भी गलत है?

यहां उल्लेख करने की एक बात यह है कि मैं कम से कम 10 टेबलों में थोक सम्मिलित डेटा हूं जिसमें बहुत सारे रिकॉर्ड और टेबल भी थोक डालने में डुप्लिकेट रिकॉर्ड डालने की अनुमति देते हैं, इसे प्राप्त करने के लिए उपयोग किए गए सिंटेक्स का उल्लेख नीचे दिया गया है।

CREATE UNIQUE INDEX Index_a ON table1([c1], [c2]) WITH IGNORE_DUP_KEY 

आभारी अगर कोई मुझे इस मुद्दे के साथ मदद कर सकता है हो जाएगा।

+2

आप किस कनेक्शन टाइमआउट का उपयोग कर रहे हैं? –

+0

अपने कोड को एक कोशिश-पकड़ ब्लॉक में डालने का प्रयास करें और डीबगर में अपवाद का निरीक्षण करें। मैंने यह किया है और कभी-कभी समस्या पर अधिक जानकारी प्राप्त की है, जैसे एक गैर-शून्य क्षेत्र में एक नल डाला जा रहा है, उस तरह की चीज। – Melanie

+4

यदि आप लेनदेन के बिना इसे चलाते हैं तो आपका ऑपरेशन सफल होता है? यदि हां, तो लेनदेन के बिना इसे पूरा करने में कितना समय लगता है? – Nathan

उत्तर

1

समस्या यह थी कि एमएसडीटीसी सेवा अक्षम कर दी गई थी और मैं थोक डीबी संचालन का उपयोग कर रहा था। इसे सक्षम करने के बाद समस्या हल हो गई थी।

0

ऐसा लगता है कि आपके पास असामान्य लेनदेन हैं। एसक्यूएल सर्वर, या ओरेकल सेवा को पुनरारंभ करने का प्रयास करें।

संबंधित मुद्दे