sql >> Databáze >  >> RDS >> Oracle

Oracle.DataAccess.Client.OracleException ORA-03135:kontakt ztraceného připojení

Stává se to proto, že váš kód požaduje připojení z fondu připojení Oracle a fond připojení vrací odpojené / zastaralé připojení k databázi Oracle. ODP.NET sám netestuje stav připojení odeslaného klientovi.

Takže pro jistotu buď zkontrolujte connection status == Open pro připojení přijaté z fondu, když provedete Connection.Open()

NEBO

nechte ODP.NET provést kontrolu za vás nastavením Validate Connection = true ve vašem připojovacím řetězci v web.config.

Obě tyto metody mají vliv na výkon, protože testují stav připojení pokaždé, když se potřebujete připojit k databázi.

Třetí možností, kterou používám, je použití výjimek. Nejprve buďte optimističtí a použijte jakékoli připojení vrácené z fondu připojení. Pokud získáte ORA - 3135, požádejte o nové připojení a spusťte dotaz znovu jako smyčku while. V nejlepším případě můžete získat své 1. připojení jako platné a váš dotaz se provede. V nejhorším případě jsou všechna připojení ve vašem fondu zastaralá a v takovém případě bude kód spuštěn Nkrát (kde N je velikost fondu připojení).



  1. Nejčastější chyby, kterým je třeba se vyhnout při replikaci MySQL

  2. Vysvětlení funkce MySQL IF().

  3. Zdroje zálohování databáze MySQL a MariaDB

  4. ZACHOVÁNÍ LOB