簡體   English   中英

JBoss AS Web 7.0.2管道異常中斷會斷開應用程序和數據庫的連接

[英]JBoss AS Web 7.0.2 Broken pipe exception disconnects application and db connections

我的服務器配置為:

  • JBOSS AS WEB 7.0.2
  • Java(版本“ 1.6.0_34” OpenJDK運行時環境(IcedTea6 1.13.6)(rhel-1.13.6.1.el6_6-x86_64)OpenJDK 64位服務器VM(內部版本23.25-b01,混合模式)

另外,我的應用程序位於HTTPS上

發生的是,我的日志文件中出現以下錯誤,並且我的應用程序正在運行,並且內存或CPU消耗不大,並且硬盤足夠,但是我的應用程序與數據庫的連接不存在(所有連接都消失了)。 因此,每當我打開使用DB的頁面時,都不會打開,並且頁面加載器正在加載和加載。

**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**

我檢查了我的代碼,並認為未關閉的OutputStream導致了此問題,所以我正確地關閉了所有組件。 但是這個問題仍然存在。

誰能幫助我理解並提供此問題的解決方案?

以下是我當前的數據源:

<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>

這是由於另一端已經關閉連接時寫入該連接引起的。 數據庫連接已關閉數據庫連接,但對於您的應用程序,數據庫連接是打開的,因此當嘗試在數據庫連接上寫入時,會出現管道破裂錯誤

編輯添加我的數據源詳細信息,但不會出現此錯誤:

<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"
              />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM