Ich weiß, das wird die sich wiederholende Frage sein, aber ich fühle mich meine Frage ist etwas anders.Zu viele Verbindungen Spring Boot jdbc
Ich habe JdbcDAO Klassen wie
@Component
public class JdbcUserDAO implements UserDAO {
@Autowired
MyJdbc myJdbc;
}
ich die MyJdbc Klasse definiert sich wie folgt:
@Component
public class MyJdbc {
@Autowired
protected JdbcTemplate jdbc;
}
In der I MyJdbc Klasse bin definieren, um den Einsatz und batchupdate und sie durch jdbc Variable aufrufen. Wird es zu viele Verbindungsausnahmen erstellen.
Ich habe die jdbc Parameter in application.properties-Datei definiert:
spring.datasource.url=#databaseurl
spring.datasource.username=#username
spring.datasource.password=#password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.test-on-borrow=true
spring.datasource.max-active=100
spring.datasource.max-wait=10000
spring.datasource.min-idle=10
spring.datasource.validation-query=SELECT 1
spring.datasource.time-between-eviction-runs-millis= 5000
spring.datasource.min-evictable-idle-time-millis=30000
spring.datasource.test-while-idle=true
spring.datasource.test-on-borrow=true
spring.datasource.test-on-return=false
Ich erhalte die Ausnahme:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Too many connections
I für konstante verschiedene viele Änderungen an der Datei application.properties getan haben aber es hat nicht funktioniert. Meine Datenbank wird auf AWS RDS gehostet.
Aber für die Aktualisierung der Blob-Bildwerte I tun:
blob= myJdbc.jdbc.getDataSource().getConnection().createBlob();
blob.setBytes(1, str.getBytes());
pstmt = myJdbc.jdbc.getDataSource().getConnection().prepareStatement("update user_profile set profileImage=? where user_profile.id in (select id from user_login where email=?)");
Der Fehler stammt von MySQL, nicht von Ihrer App, wissen Sie, wie viele Verbindungen Ihre RDS-Instanz bewältigen kann? Meine Vermutung ist, dass es weniger als 100 ist. –
Haben Sie einen Grund für die Verwendung von Jdbc API statt Spring Data oder JPA? –
@DaveBower: Ich habe globale Variablen wie 'max_connections' angezeigt; Es zeigt 66 – Chetan