Na připojení vám neběží více příkazů, máte dva příkazy spuštěné postupně, jeden po druhém. Když vyprší časový limit prvního příkazu, není na připojení čekající žádný další příkaz. Váš kód neodešle druhý příkaz k provedení, dokud nebude první příkaz úspěšný nebo vyvolá výjimku.
Poslední odstavec z dokumentace, kterou jste citovali, by měl znít:V situaci, kdy více objektů OracleCommand používá stejné připojení současně , ...
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
}
}