我使用jmeter
來壓力測試使用CloudSQL的GAE Web服務,並且出現間歇性通信鏈接失敗異常。使用Cloud SQL間歇性通信鏈接失敗
我試過使用直接連接和連接池,並且在任一情況下都會看到異常。隨着每秒請求數量的增加,異常會增加。
請注意,我們正在使用最高層的雲端SQL,D32,並且測試完全在最大3200個連接下。
下面是引用堆棧跟蹤:
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)
更新:我改變了連接池設置maxActive = 5和了maxidle = 5和間歇通信鏈路異常就走了。請注意,我已經嘗試了commons dbcp和tomcat dbcp。現在我看到以下例外情況在日誌中:
造成的:值java.sql.SQLException:java.lang.SecurityException異常:無法訪問所致gatherPerformanceMetrics
:java.sql.SQLException中:JAVA。 lang.SecurityException:無法訪問includeThreadDumpInDeadlockExceptions
造成的:值java.sql.SQLException:java.lang.SecurityException異常:無法訪問nullNamePatternMatchesAll
謝謝! 我無法在當前的App Engine文檔中找到12個併發限制,但它似乎是正確的。我有35個最大的應用程序引擎連接,顯然35個用戶連接有能力超過12個數據庫連接。我將我的應用引擎連接數降至12,而當我的應用引擎實例增加時,我不再看到這個錯誤。 –