2011-03-18 3 views
0

분산 트랜잭션 및 NHibernate 내부 트랜잭션에 트랜잭션 범위를 사용합니다. 모든 작업 후에 Transaction.Current이 중단되지 않았는지 확인하고 NHibernate 트랜잭션을 커밋하려고 시도합니다. 다음 스택 트레이스와NHibernate 커밋 트랜잭션 수신 후 'COMMIT TRANSACTION 요청에 해당 BEGIN TRANSACTION이 없습니다. '

The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION. The transaction active in this session has been committed or aborted by another session.

:이 오류가 가끔이라고

System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) в System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) в System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) в System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequest(Byte[] buffer, TransactionManagerRequestType request, String transactionName, TransactionManagerIsolationLevel isoLevel, Int32 timeout, SqlInternalTransaction transaction, TdsParserStateObject stateObj, Boolean isDelegateControlRequest) в System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon(TransactionRequest transactionRequest, String transactionName, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest) в System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransaction(TransactionRequest transactionRequest, String name, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest) в System.Data.SqlClient.SqlInternalTransaction.Commit() в System.Data.SqlClient.SqlTransaction.Commit() в NHibernate.Transaction.AdoTransaction.Commit().

가장 큰 문제

때때로 나는이 오류가 발생합니다. 이것에 대한 이유는 무엇일까요? 당신은 중앙 집중화 된 코드를 통해 sesions를 열고 있지만 세션 트랜잭션마다 시간을 폐쇄하지 않는 것처럼

답변

0

이되고있는 동일한 코드 경로가 있는지 확인하십시오 .. 내가 이런 일에 대한 이유를 해달라고, 다른 보인다 이 오류가 발생하는 위치에서 사용됩니다. 아마도 스택 추적을보고 있습니다.

관련 문제