postgres google from engine compute app google-app-engine jmeter google-cloud-sql

google-app-engine - from - google cloud sql jdbc connection



Error de enlace de comunicaciones intermitentes con Cloud SQL (2)

Estoy usando jmeter para probar el estrés de un servicio web de GAE que utiliza CloudSQL y estoy recibiendo excepciones intermitentes de fallas en los enlaces de comunicaciones.

Intenté usar conexiones directas y un grupo de conexiones, y veo excepciones en cualquier escenario. Las excepciones aumentan a medida que aumenta el número de solicitudes por segundo.

Tenga en cuenta que estamos utilizando el nivel más alto de cloud sql, D32 y las pruebas están muy por debajo de las conexiones máximas de 3200.

Aquí hay un rastro de pila para referencia:

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at sun.reflect.GeneratedConstructorAccessor48.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:33) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1117) at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:350) at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2413) at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2450) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2235) at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:818) at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46) at sun.reflect.GeneratedConstructorAccessor46.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:33) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404) at com.mysql.jdbc.GoogleNonRegisteringDriver$JdbcWrapper.getInstance(GoogleNonRegisteringDriver.java:276) at com.mysql.jdbc.GoogleNonRegisteringDriver.connect(GoogleNonRegisteringDriver.java:246) at java.sql.DriverManager.getConnection(DriverManager.java:571) at java.sql.DriverManager.getConnection(DriverManager.java:215)

Actualización: Cambié la configuración del conjunto de conexiones a maxActive = 5 y maxIdle = 5 y las excepciones de enlaces de comunicaciones intermitentes desaparecieron. Tenga en cuenta que he probado commons dbcp y tomcat dbcp. Ahora veo las siguientes excepciones en los registros:

Causado por: java.sql.SQLException: java.lang.SecurityException: no se puede acceder a gatherPerformanceMetrics

Causado por: java.sql.SQLException: java.lang.SecurityException: no se puede acceder a includeThreadDumpInDeadlockExceptions

Causado por: java.sql.SQLException: java.lang.SecurityException: no se puede acceder a nullNamePatternMatchesAll



Para todos los que están buscando por qué podría obtener "com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: error de enlace de comunicaciones" en una conexión.

¡Asegúrese de que su IP esté permitida si está llamando desde un servidor de prueba!

Estaba probando en una casa de amigos, y este error inútil siguió apareciendo.