I get strange exception using OraDirect.NET 3.2.
using (OracleConnection conn = new OracleConnection(connection)) 
{
  using (OracleTransaction trans = conn.BeginTransaction()) 
  {
    // making some DB-changes
     trans.Commit(); <<<< after commit here
  }
}
Looks like Dispose method is buggy for both OracleConnection & OracleTransaction classes.