Prova a racchiudere un'istruzione using con OracleConnection attorno alla tua istruzione using in questo modo:
try
{
using (OracleConnection conn = new OracleConnection(connectionString))
{
using (OracleCommand cmd = new OracleCommand(cmdStr, conn))
{
....
}
}
}
catch (OracleException e)
{
....
}
Ciò eliminerebbe l'oggetto OracleConnection il prima possibile, anche quando si verifica un'eccezione OracleException all'interno delle istruzioni using.