2013-05-09 60 views
9

私は(ないので、頻繁に)、このエラーを取得しています:SQLエラー:0、SQLStateの:08S01通信リンク障害

2013-05-08 16:44:35,786 WARN (JDBCExceptionReporter.java:100) [org.hibernate.util.JDBCExceptionReporter, logExceptions] - SQL Error: 0, SQLState: 08S01 
2013-05-08 16:44:35,786 ERROR (JDBCExceptionReporter.java:101) [org.hibernate.util.JDBCExceptionReporter, logExceptions] - Communications link failure 

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 
2013-05-08 16:44:35,833 ERROR (AdminDaoImpl.java:297) [com.myapp.admin.db.AdminDaoImpl, createFilePackage] - data-upload: Exception while adding new file package 
org.hibernate.exception.JDBCConnectionException: Cannot open connection 
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:97) [hibernate-core-3.3.2.GA.jar:3.3.2.GA] 
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) [hibernate-core-3.3.2.GA.jar:3.3.2.GA] 
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52) [hibernate-core-3.3.2.GA.jar:3.3.2.GA] 
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449) [hibernate-core-3.3.2.GA.jar:3.3.2.GA] 
    at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167) [hibernate-core-3.3.2.GA.jar:3.3.2.GA] 
    at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142) [hibernate-core-3.3.2.GA.jar:3.3.2.GA] 
    at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85) [hibernate-core-3.3.2.GA.jar:3.3.2.GA] 
    at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1354) [hibernate-core-3.3.2.GA.jar:3.3.2.GA] 
    at com.myapp.admin.db.AdminDaoImpl. createFilePackage(AdminDaoImpl.java:182) [AdminDaoImpl.class:na] 
    at com.myapp.admin.ctrl.UploadController.processUploadZip(UploadController.java:217) [UploadController.class:na] 
    at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source) [na:na] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [na:1.6.0_35] 
    at java.lang.reflect.Method.invoke(Method.java:597) [na:1.6.0_35] 
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212) [spring-web-3.1.0.RELEASE.jar:3.1.0.RELEASE] 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) [spring-web-3.1.0.RELEASE.jar:3.1.0.RELEASE] 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) [spring-webmvc-3.1.0.RELEASE.jar:3.1.0.RELEASE] 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) [spring-webmvc-3.1.0.RELEASE.jar:3.1.0.RELEASE] 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) [spring-webmvc-3.1.0.RELEASE.jar:3.1.0.RELEASE] 
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) [spring-webmvc-3.1.0.RELEASE.jar:3.1.0.RELEASE] 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) [spring-webmvc-3.1.0.RELEASE.jar:3.1.0.RELEASE] 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) [spring-webmvc-3.1.0.RELEASE.jar:3.1.0.RELEASE] 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) [spring-webmvc-3.1.0.RELEASE.jar:3.1.0.RELEASE] 
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) [spring-webmvc-3.1.0.RELEASE.jar:3.1.0.RELEASE] 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) [servlet-api.jar:na] 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) [servlet-api.jar:na] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) [catalina.jar:7.0.35] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.35] 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) [catalina.jar:7.0.35] 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) [catalina.jar:7.0.35] 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) [catalina.jar:7.0.35] 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) [catalina.jar:7.0.35] 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) [catalina.jar:7.0.35] 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) [catalina.jar:7.0.35] 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) [catalina.jar:7.0.35] 
    at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200) [tomcat-coyote.jar:7.0.35] 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) [tomcat-coyote.jar:7.0.35] 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) [tomcat-coyote.jar:7.0.35] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_35] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_35] 
    at java.lang.Thread.run(Thread.java:662) [na:1.6.0_35] 
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 

は、私は、共有サーバー上でホストされている2つのWeb(Spring MVCの+ + MySQLの休止状態)のアプリケーションを持っています:管理アプリを介して挿入され、ダウンロード用のファイルを表示する

1)メインアプリ()

2 CRUD操作で)管理アプリ

私はUSIだときに、このエラーは、いつか現れます"メイン"アプリ用のファイルをアップロードする "管理"アプリケーションは、100-120件のファイル/リクエストを正常にアップロード/処理した後、10-20個の挿入/更新クエリでデータベースに当たったリクエストごとに可能です。

Private tomcat hosting 
java 1.6.0_35-b10 
tomcat 7.0.35 
heap size 288MB 
MySQL Server 5 
commons-dbcp 1.2.2 
mysql-connector-java 5.1.9 

データベース+休止+ DBCPのプロパティ:

<bean id="dbDataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="username" value="test" /> 
    <property name="password" value="test" /> 
    <property name="url" value="jdbc:mysql://localhost/my_database?useUnicode=yes&characterEncoding=UTF-8" /> 

    <!-- DBCP Connection Pool Settings --> 
    <property name="defaultAutoCommit" value="true" /> 
    <property name="initialSize" value="10" /> 
    <property name="maxActive" value="500" /> 
    <property name="maxIdle" value="8" /> 
    <property name="minIdle" value="0" /> 
    <property name="maxWait" value="30000" /> 
    <property name="validationQuery" value="SELECT 1" /> 
    <property name="testOnBorrow" value="true" /> 
    <property name="testOnReturn" value="false" /> 
    <property name="testWhileIdle" value="false" /> 
    <property name="timeBetweenEvictionRunsMillis" value="-1" /> 
    <property name="numTestsPerEvictionRun" value="3" /> 
    <property name="minEvictableIdleTimeMillis" value="180000" /> 
    <property name="poolPreparedStatements" value="true" /> 
    <property name="maxOpenPreparedStatements" value="25" /> 
    <property name="accessToUnderlyingConnectionAllowed" value="false" /> 
    <property name="removeAbandoned" value="false" /> 
    <property name="removeAbandonedTimeout" value="300" /> 
    <property name="logAbandoned" value="false" /> 
</bean> 

hibernate.dialect=org.hibernate.dialect.MySQLDialect 
hibernate.hbm2ddl.auto=none 
hibernate.jdbc.batch_size=100 
hibernate.show_sql=false 
hibernate.format_sql=false 
hibernate.cache.use_second_level_cache=true 
hibernate.cache.use_query_cache=false 
hibernate.cache.provider_class=org.hibernate.cache.NoCacheProvider 
hibernate.current_session_context_class=thread 

憂慮コード:

public String createFilePackage(FilePackage package) { 
    String message = ""; 

    Session session = getSessionFactory().openSession(); 
    Transaction tx = null; 
    try { 
     tx = session.beginTransaction(); 

     // handling package, around 10-14 DB insert, 10 SELECT and 5 update queries on same session 

     tx.commit(); 

    } catch(Exception e) { 
     logger.error("file-upload: Exception while adding new font package", e); 
     if(tx != null) { tx.rollback(); } 
    } finally { 
     session.close(); 
    } 
    return message; 
} 

この問題を解決するためにどのように任意のアドバイス詳細をホスティング

+0

ルック:有効/確認方法

。接続が予期せず削除されている理由を説明するために何かがあるかどうかを確認してください。 –

+0

トランザクションタイムアウトになる可能性がありますか? – Tobia

答えて

10

ドライバーは、関数が処理を完了する前に失敗した接続しようとした先のドライバとデータ・ソース間の通信リンクを発生します。 これは通常、ネットワークエラーです。これは、パケットの欠落や、不正に設定されたファイアウォール/スイッチによって引き起こされる可能性があります。

+2

質問に記載されているのと同様の問題がありました。私はマルシエの答えに同意する。企業ネットワークでは、ローカルのdevマシンがdbサーバーへの接続を切断していましたが、異なるファイアウォールの背後にある展開環境サーバーは同じdbに接続でき、問題なく接続を維持できました。私のローカルのdevマシンは、セットアップから2分以内に接続を切断します。私はまた、私たちのワイヤレスネットワークを実行すると、有線が接続していない(そして、両方が異なる経路/ファイアウォールを通っている)接続を維持していることも分かりました。 –

-2

このエラーは、タイムアウトして接続

+3

詳細を追加できますか? – Undo

+0

タイムアウトは私の場合を説明するでしょう。 – MrSmith42

3

/etc/mysql/my.cnf - bind_address127.0.0.1に設定されていないことを確認してください。 TCPプロトコルはオフにすることでした

​​
関連する問題