Mysql
 sql >> Datenbank >  >> RDS >> Mysql

JDBC ERROR:08S01 tritt manchmal auf

Sie sind höchstwahrscheinlich entweder

  1. Sockets öffnen und nicht schließen. Mit der Zeit wird die Anzahl der offenen Sockets zu groß und die Anwendung stürzt ab.
  2. Du öffnest viel zu viele Sockets gleichzeitig. Vielleicht, weil Sie eine Menge Threads haben.

Ich vermute, es ist Nummer 1. Überprüfen Sie Ihren Code noch einmal und stellen Sie sicher, dass Sie alle Ihre Connection-Objekte und ResultSet-Objekte schließen.

Wenn Sie auf Nr. 2 stoßen, sollten Sie erwägen, weniger Threads zu verwenden (ab einem bestimmten Punkt schaden zu viele Threads mehr als dass sie nützen) oder einen Verbindungspool wie c3p0 Dadurch wird nur eine festgelegte Anzahl von Verbindungen erstellt und Ihren Threads ermöglicht, diese zu teilen. Die Verwendung von c3p0 ist im Allgemeinen eine gute Idee und sollte Ihnen auch ermöglichen, #1 schneller zu erkennen.

Eine dritte Option ist die Verwendung einer Abstraktion auf höherer Ebene wie JPA oder JDO, die die Verbindungsverwaltung für Sie übernimmt.