2017-02-15 46 views
0

Ma configuration du serveur est comme:JBoss AS 7.0.2 Web exception Broken pipe débranche application et connexions db

  • JBOSS AS WEB 7.0.2
  • Java (version "1.6.0_34" OpenJDK Runtime Environment (IcedTea6 1.13.6) (RHEL-1.13.6.1.el6_6-x86_64) OpenJDK 64 bits serveur VM (build-B01 23,25, mode mixte)

en outre, mon application est sur HTTPS.Qu'est-ce qui se passe est, je reçois l'erreur ci-dessous dans mon fichier journal et Mon application est en cours d'exécution et il n'y a pas de mémoire élevée ou de consommation CPU et mon disque dur est suffisant mais la connectivité de mon application avec base de données n'est pas là (Toutes les connexions ont disparu). Donc, chaque fois que j'ouvre une page qui utilise DB ne s'ouvre pas et le chargeur de page est en cours de chargement et de chargement.

**ClientAbortException: java.net.SocketException: Broken pipe 
    at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:403) 
    at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:449) 
    at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349) 
    at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:426) 
    at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:415) 
    at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89) 
    at org.codehaus.jackson.impl.Utf8Generator._flushBuffer(Utf8Generator.java:1754) 
    at org.codehaus.jackson.impl.Utf8Generator._writeBytes(Utf8Generator.java:1164) 
    at org.codehaus.jackson.impl.Utf8Generator._writeFieldName(Utf8Generator.java:457) 
    at org.codehaus.jackson.impl.Utf8Generator.writeFieldName(Utf8Generator.java:304) 
    at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:444) 
    at org.codehaus.jackson.map.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:150) 
    at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:112) 
    at org.codehaus.jackson.map.ser.std.StdContainerSerializers$IndexedListSerializer.serializeContents(StdContainerSerializers.java:122) 
    at org.codehaus.jackson.map.ser.std.StdContainerSerializers$IndexedListSerializer.serializeContents(StdContainerSerializers.java:71) 
    at org.codehaus.jackson.map.ser.std.AsArraySerializerBase.serialize(AsArraySerializerBase.java:86) 
    at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:610) 
    at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:256) 
    at org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:1613) 
    at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.writeInternal(MappingJacksonHttpMessageConverter.java:153) 
    at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:181) 
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.writeWithMessageConverters(AnnotationMethodHandlerAdapter.java:975) 
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.handleResponseBody(AnnotationMethodHandlerAdapter.java:933) 
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.getModelAndView(AnnotationMethodHandlerAdapter.java:882) 
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:428) 
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
    at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) 
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173) 
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) 
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) 
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:139) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:480) 
at org.jboss.as.web.NamingValve.invoke(NamingValve.java:57) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:154) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:952) 
at java.lang.Thread.run(Thread.java:701) 
Caused by: java.net.SocketException: Broken pipe 
at java.net.SocketOutputStream.socketWrite0(Native Method) 
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) 
at java.net.SocketOutputStream.write(SocketOutputStream.java:153) 
at sun.security.ssl.OutputRecord.writeBuffer(OutputRecord.java:375) 
at sun.security.ssl.OutputRecord.write(OutputRecord.java:363) 
at sun.security.ssl.SSLSocketImpl.writeRecordInternal(SSLSocketImpl.java:813) 
at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:785) 
at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:119) 
at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:726) 
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:449) 
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349) 
at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:750) 
at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:126) 
at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:559) 
at org.apache.coyote.Response.doWrite(Response.java:594) 
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:398) 
... 76 more** 

J'ai vérifié mon code et pensé était à l'origine un OutputStream fermé cette question, donc je bien fermé tous. Mais toujours ce problème persiste.

Quelqu'un peut-il m'aider à comprendre et à résoudre ce problème?

Ci-dessous est mon DataSource actuelle:

<bean id="myDataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close"> <property name="driverClass" value="com.mysql.jdbc.Driver" /> <property name="jdbcUrl" value="jdbc:mysql://${host}:${port} /${db_name}?autoReconnect=true" /> <property name="username" value="${user}" /> <property name="password" value="${password}" /> <property name="idleConnectionTestPeriodInSeconds" value="10" /> <property name="idleMaxAge" value="240" /> <property name="maxConnectionsPerPartition" value="30" /> <property name="minConnectionsPerPartition" value="10" /> <property name="partitionCount" value="3" /> <property name="acquireIncrement" value="5" /> <property name="acquireRetryAttempts" value="30" /> <property name="statementsCacheSize" value="100" /> <property name="releaseHelperThreads" value="3" /> <property name="connectionTestStatement" value="/* ping *\/ SELECT 1" /> <property name="acquireRetryDelayInMs" value="10000" /> </bean>

Répondre

1

Ceci est causé par écrit à une connexion lorsque l'autre extrémité a fermé la boîte. connexion DB est fermé par la base de données, mais pour votre application, il est ouvert donc quand il essaie d'écrire sur elle, il donne l'erreur de tuyau cassé

Modifier Ajout mes informations de source de données qui ne donne pas cette erreur:

<Resource name="jdbc/MySQLDS" 
       url="jdbc:mysql://${MYSQL_DB_HOST}:${MYSQL_DB_PORT}/${APP_NAME}" 
       driverClassName="com.mysql.jdbc.Driver" 
       username="${MYSQL_DB_USERNAME}" 
       password="${MYSQL_DB_PASSWORD}" 
       auth="Container" 
       type="javax.sql.DataSource" 
       initialSize="11" 
       maxActive="20" 
       maxIdle="15" 
       minIdle="11" 
       maxWait="10000" 
       removeAbandoned="true" 
       removeAbandonedTimeout="60" 
       testOnBorrow="true" 
       validationQuery="SELECT 1" 
       validationInterval="3600000" 
       /> 
+0

Merci pour la réponse. Mais pourquoi toutes les connexions à la base de données sont supprimées même si j'ai défini autoReconnect = true et que l'application fonctionne toujours, seules les connexions db ont disparu. –

+0

Mis à jour le réponse – gladiator

+0

J'ai mis à jour ma source de données, jetez-y un coup d'oeil et suggérez-moi. –