title: Strange SQL2005 problem. "SqlConnection does not support parallel transactions"
body: <p>I have a problem that seems like its a result of a deadlock-situation. 
  Whe are now searching for the root of the problem but meantime we wanted to restart the server and get the customer going.</p>
  
  <p>And now everytime we start the program it just says "SqlConnection does not support parallel transactions". We have not changed anything in the program, its compiled and on the customers server, but after the "possible deadlock"-situation it want go online again.</p>
  
  <p>We have 7 clients (computers) running the program, each client is talking to a webservice on a local server, and the webservice is talking to the sql-server (same machine as webserver). </p>
  
  <p>We have restarted both the sql-server and the iis-server, but not rebooted the server because of other important services running on the server so its the last thing we do.
  We can se no locks or anything in the management tab. </p>
  
  <p>So my question is, why does the "SqlConnection does not support parallel transactions" error comming from one time to another without changing anything in the program and it still lives between sql-restart.</p>
  
  <p>It seems like it happens at the first db-request the program does when it start.</p>
  
  <p>If you need more information just ask. Im puzzled...</p>
  
  <p><strong>More information:</strong>
  I dont think I have "long" running transactions. The scenario is often that I have a dataset with 20-100 rows (ContractRows) in that Ill do a .Update on the tableAdapter. I also loop throug those 20-100 rows and for some of them Ill create ad-hook-sql-querys (for example if a rented product is marked as returned I create a sql-query to mark the product as returned in the database)</p>
  
  <p>So I do this very simplified:</p>
  
  <pre><code>Create objTransactionObject
  Create objtableadapter (objTransactionObject)
  for each row in contractDS.contractrows
    if row.isreturned then
      strSQL &amp;= "update product set instock=1 where prodid=" &amp; row.productid &amp; vbcrlf
   End if
  next
  objtableadapter.update(contractDS)
  objData.ExecuteQuery(strSQL, objTransactionObject)    
  if succsesfull 
    objtransactionobject.commit
  else
    objtransactionobject.rollback
  end if
  objTran.Dispose()
  </code></pre>
  
  <p>And then Im doing commit or rollback depending on if It went well or not.</p>
  
  <p>Edit: None of the answers have solved the problem, but I'll thank you for the good trouble shooting pointers.</p>
  
  <p>The "SqlConnection does not support parallel transactions" dissapeared suddenly and now the sql-server just "goes down" 4-5 times a day, I guess its a deadlock that does that but I have not the right knowledge to find out and are short on sql-experts who can monitor this for me at the moment. I just restart the sql-server and everything works again. 1 of 10 times I also have to restart the computer. Its really bugging me (and my customers of course).</p>
  
  <p>Anyone knowing a person with <strong>good</strong> knowledge in analyzing troubles with deadlocks or other sql problems in sweden (or everywhere in the world,english speaking)  are free to contact me. I know this is'nt a contact site but I take my chanse to ask the question because I have run out of options, I have spent 3 days and nights optimizing the clients to be sure we close connections and dont do too much stupid things there. Without luck.</p>