2
我有一個函數用於通過ODBC將寫查詢發送到DB2,並且如果我失去與DB2的連接,它會不時在此函數中掛起。我發送60作爲我的超時功能,但它永遠不會超時。它只是無限期地掛起我的線程,我不確定強制這個函數放棄的好方法。ODBC連接到DB2掛起
public int WriteQuery(string query, string dbConnStr, int timeout)
{
int rowsAffected = -1;
OdbcConnection conn = new OdbcConnection(dbConnStr);
try
{
conn.Open();
OdbcCommand command = new OdbcCommand(query, conn);
command.CommandTimeout = timeout;
OdbcTransaction trans = conn.BeginTransaction();
command.Transaction = trans;
OdbcDataAdapter adapter = new OdbcDataAdapter(command);
adapter.UpdateCommand = command;
rowsAffected = command.ExecuteNonQuery();
trans.Commit();
}
catch(Exception)
{
throw;
}
finally
{
conn.Close();
conn.Dispose();
}
return rowsAffected;
}
}
你知道哪個聲明是掛斷的嗎?我沒有看到任何類型的日誌語句,所以我猜你不確定,除非在調試器中執行代碼時看到這種情況。 – 2010-07-26 17:38:21