J'ai une fonction que j'utilise pour envoyer des requêtes d'écriture à DB2 via ODBC, et il se bloque de temps en temps dans cette fonction si je perds ma connexion à DB2. J'envoie 60 comme mon temps d'attente à la fonction, mais il ne expire jamais. Il raccroche indéfiniment mon fil, et je ne suis pas sûr d'un bon moyen de forcer cette fonction à abandonner.Connexion ODBC à DB2 se bloque
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;
}
}
Avez-vous une idée de quelle déclaration est celle qui se bloque? Je ne vois aucun type d'instruction de journal, donc je devine que vous n'êtes pas sûr à moins que vous ayez vu cela se produire en marchant le code dans le débogueur. –