sql >> Databasteknik >  >> RDS >> Oracle

java.sql.SQLException:Io undantag:Trasigt rör hur återställer man sig utan omstart?

Följande kan vara de möjligheter som kan orsaka undantaget:

  1. Nätverksproblem:Det är nätverket mellan databasen och applikationsservern som gör att den fysiska anslutningen avbryts efter en viss tid. Det beror förmodligen på en brandvägg som körs bakom nätverket som är konfigurerad att döda db-anslutningar efter en viss tidsperiod. Du kan överväga en lösning för att hålla anslutningen vid liv hela tiden genom att helt enkelt konfigurera om din applikationsserver. För Tomcat kan du försöka lägga till validationQuery="select 'validationQuery' from dua l i Tomcat-datakällans conf-fil (context.xml)

  2. Anslutningarna till databasservern återställs och klienten meddelas inte av databasdrivrutinen. Problemet i det här fallet är att Oracle-drivrutinen upptäcker att dess socket till DBMS på något sätt (brandväggen igen, kanske?) har stängts i andra änden. Du kan överväga att ställa in din anslutningstimeout (i poolen) kortare än nätverks-/DB-serverns timeout som en lösning.




  1. Använda MySQL GeoSpatial datatyper i .NET

  2. Klustermarkörer med Google Maps API, platser från databasen

  3. Rails + PostgreSQL -Använda Like

  4. Hur man använder returvärden för en uppgift i en annan uppgift för en annan värd i ansible