hi out there
i've got a problem with nhibernate and my database connections. the application runs fine for half a year now without bigger problems but now we got really in trouble because the amount of users and requests exploded. so to start with information we have a .net 3.5 application with an mssql 2008 db and virtual 2008 ms server running on parralles server. frontend uses ajax control toolkit and nhibernate for sure in the backend.
now we got a lot of requests the same time and somehow somewhere in the application the db servers breaks down. it is not clear for me at all so if have to ask some basic stuff.
the problems that occure seems to depend on transaction handling from backend dll instance to the db server. somehow the application can not identify the current transaction and writes error like this following:
ERROR NHibernate.Transaction.AdoTransaction - Begin transaction failed System.Data.SqlClient.SqlException: Der Server konnte die Transaktion nicht fortsetzen. Beschreibung:3900000023. Für die Transaktion, die in dieser Sitzung aktiv war, hat eine andere Sitzung einen Commit oder einen Abbruch ausgeführt. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequest(Byte[] buffer, TransactionManagerRequestType request, String transactionName, TransactionManagerIsolationLevel isoLevel, Int32 timeout, SqlInternalTransaction transaction, TdsParserStateObject stateObj, Boolean isDelegateControlRequest) at System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon(TransactionRequest transactionRequest, String transactionName, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest) at System.Data.SqlClient.SqlInternalConnection.BeginSqlTransaction(IsolationLevel iso, String transactionName) at System.Data.SqlClient.SqlInternalConnection.BeginTransaction(IsolationLevel iso) at System.Data.SqlClient.SqlConnection.BeginDbTransaction(IsolationLevel isolationLevel) at System.Data.Common.DbConnection.System.Data.IDbConnection.BeginTransaction() at NHibernate.Transaction.AdoTransaction.Begin(IsolationLevel isolationLevel) i'm not sure were to start searching for the problem. is it the code? do i miss something to configure with the transaction handling? configuration of the server?
for me it seems to be the problem that on transaction stops other transactions and it seems not be the same dll instance. instance and hibernate session per request. so is this possible?
so trouble starts again here. thank you for any help
|