sql >> Database >  >> RDS >> Oracle

Time-out OracleCommand

U hebt niet meerdere opdrachten die op de verbinding worden uitgevoerd, u hebt twee opdrachten die achter elkaar worden uitgevoerd, de een na de ander. Wanneer de eerste opdracht een time-out heeft, is er geen andere opdracht in afwachting van de verbinding. Uw code verzendt de tweede opdracht pas voor uitvoering nadat de eerste opdracht is geslaagd of een uitzondering heeft gegenereerd.

De laatste alinea van de documentatie die u citeerde, zou moeten zijn:In een situatie waarin meerdere OracleCommand-objecten dezelfde verbinding gelijktijdig gebruiken , ...

static void Main(string[] args)
{
    using (var conn = new OracleConnection("Pooling=False;...")) // why?
    using (var cmd1 = conn.CreateCommand())
    using (var cmd2 = conn.CreateCommand())
    {
        cmd1.CommandText = "UPDATE employee SET empname = 'temp1' WHERE id = 1";
        cmd2.CommandText = "UPDATE employee SET empname = 'temp2' WHERE id = 2";
        cmd1.CommandTimeout = 30;
        cmd2.CommandTimeout = 30;

        conn.Open();

        // there are no commands on conn yet

        try { cmd1.ExecuteNonQuery(); } // cmd1 is the only command on conn
        catch (OracleException) { } // if timeout, no other command affected

        // cmd1 is no longer on conn

        try { cmd2.ExecuteNonQuery(); } // cmd2 is the only command on conn
        catch (OracleException) { } // if timeout, no other command affected

        // cmd2 is no longer on conn
    }
}



  1. Pad die grote Oracle-nummers afkapt/afrondt?

  2. Afbeeldingen opslaan in een database

  3. query met count subquery, inner join en group

  4. Waarom krijg ik een formaatfout:Eigenschap is 'v$session.program' dat verbinding maakt met Oracle?