TransactionScope报错:“不确定事务”。。。。
代码如下TransactionScope报错:“不确定事务”。。。。 而且只有连我的机器上的oracle库时才会报错,试了连其他的是正常执行的TransactionScope .Net 事务 Oracle --------------------编程问答-------------------- 在 System.Transactions.TransactionStatePromotedIndoubt.PromotedTransactionOutcome(InternalTransaction tx)
string _connectionString = "Provider=OraOLEDB.Oracle.1;data source =(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.21.231)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)));User Id=test;Password=test;";
List<string> inTasks = new List<string>() { "heheh"};
if (inTasks.Count == 0) return;
TransactionOptions transactionOption = new TransactionOptions();
//设置事务隔离级别
transactionOption.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
// 设置事务超时时间为120秒
transactionOption.Timeout = new TimeSpan(0, 0, 120);
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required, transactionOption))
{
using (OleDbConnection conn = new OleDbConnection(_connectionString))
{
conn.Open();
using (OleDbCommand cmd = conn.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = "insert into FMSQueue (TaskGUID, RunTime) values (?, ?)";
cmd.Parameters.Add(new OleDbParameter("@TaskGUID", "96fbfa68-8441-4441-8122-7aa43515fa2e"));
cmd.Parameters.Add(new OleDbParameter("@RunTime", "2222222"));
cmd.ExecuteNonQuery();
}
}
ts.Complete();
}
在 System.Transactions.TransactionStatePromotedEnded.EndCommit(InternalTransaction tx)
在 System.Transactions.CommittableTransaction.Commit()
在 System.Transactions.TransactionScope.InternalDispose()
在 System.Transactions.TransactionScope.Dispose()
在 Service.Program.SaveToQueue() 位置 e:\Visual Studio 2012\WCFS706\Service\Program.cs:行号 82
在 Service.Program.Main(String[] args) 位置 e:\Visual Studio 2012\WCFS706\Service\Program.cs:行号 19
在 System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart() --------------------编程问答-------------------- en 是"事务不确定" 不是 ”不确定事务“ --------------------编程问答-------------------- 这是哪国的写法
cmd.CommandText = "insert into FMSQueue (TaskGUID, RunTime) values (?, ?)";
cmd.Parameters.Add(new OleDbParameter("@TaskGUID", "96fbfa68-8441-4441-8122-7aa43515fa2e"));
cmd.Parameters.Add(new OleDbParameter("@RunTime", "2222222")); --------------------编程问答--------------------
= =不要在意这些。。。 急着解决事务这个问题啊 --------------------编程问答-------------------- for(){
transaction = conn.BeginTransaction();
cmd.Transaction = transaction;
cmd.Connection = conn;
string sql=“”;
cmd.CommandType = CommandType.Text;
cmd.CommandText = dcwsSql.ToString();
returnValue = cmd.ExecuteNonQuery();
transaction.Commit();
}
补充:.NET技术 , C#