Açıklama
Transaction kullanılan yerlerde işlem standart süreyi aşıyorsa sistem aşağıdaki gibi bir hata verebilir:
2015-06-10 19:46:18.3897|ERROR|Worker.WorkItem|16|Exception occured while processing workitem 3aea5e62-8bbb-4ea7-8b50-13f7320afd44.|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.SqlClient.SqlInternalConnection.Enlist(Transaction tx) at System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction) at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction) at System.Data.ProviderBase.DbConnectionPool.PrepareConnection(DbConnection owningObject, DbConnectionInternal obj, Transaction transaction) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at AltiKare.Data.Access.AbstractAdapter.ExecuteNonQuery(String commandText, ParameterValueCollection values) at AltiKare.Data.Access.AbstractAdapter.Execute(Update updateCommand, ParameterValueCollection values) at AltiKare.Data.Access.Update.Execute(Database database, ParameterValueCollection values) at AltiKare.Workflow.Business.Server.Logic.Core.WorkItemDatabase.Update(Guid& id, Nullable`1 selectedActionId, Nullable`1 endDate, Boolean isDeadlined, String caption, String instructions, WorkItemState state, WorkItemAgentState agentState, Int32 sentReminders, Nullable`1 nextReminder, Nullable`1 deadlineDate) at AltiKare.Workflow.Business.Server.Logic.WorkItemManager.Update(Guid& id, Nullable`1 selectedActionId, Nullable`1 endDate, Boolean isDeadlined, String caption, String instructions, WorkItemState state, WorkItemAgentState agentState, Int32 sentReminders, Nullable`1 nextReminder, Nullable`1 deadlineDate) at AltiKare.Workflow.Business.Server.Logic.WorkItem.Update() at AltiKare.Workflow.Business.Server.Logic.WorkItem.Process() at AltiKare.Workflow.Business.Server.Logic.WorkerTaskCommittedWorkItem.Complete()
Çözüm
Transaction'ın tamamlanma süresi göz önüne alınıp Agent konfigurasyon dosyasında ve machine config xml'inde istenen süre belirlenerek bu hata giderilebilir. Yazım örneği için ekteki dosyaları gözden geçirin, iki dosyadaki yazım şekli birbirinden farklı.
Agent konfigurasyon dosyası: C:\6Kare\AltiKare\AltiKare.Workflow.Agent.exe.config
32-bit machine config dosyası: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
64-bit machine config dosyası: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config