1/7用友股份-LE支持服务业务本部技术方案--《Nobufferspaceavailable:connect错误解决案例》建立日期:2013-10-20修改日期:xxxx-xx-xx文档属性:客户文控编号:LE-DY-JS-2013-01112/7文档控制创建记录适用范围审阅人日期审阅签字所属部门发布范围发布人姓名所属部门发布时间内部员工伙伴客户日期作者所属部门邮件地址版本2013-10-20赵健技术支持部V1.0版本领域模块备注3/7目录Nobufferspaceavailable:connect错误解决案例..................................................4一.系统环境...............................................................................................................4二.问题描述.............................................................................................................4三.原因分析及解决方法.........................................................................................74/7Nobufferspaceavailable:connect错误解决案例一.系统环境数据库环境:ORACLE中间件:WAS垂直集群应用服务器操作系统:windowsserver2008二.问题描述nc系统不能登录,重启应用服务器操作系统后,系统恢复正常,排查WAS日志,有如下报错信息:Nobufferspaceavailable(maximumconnectionsreached?):connect详细错误信息如下:[13-10-1022:49:41:421GMT+08:00]00000280BusinessExcepECNTR0020E:EJBthrewanunexpected(non-declared)exceptionduringinvocationofmethod"asynchBalance"onbean"BeanId(nc61#nc.gejb.arap.cmt.Arap_EJB.jar#nc.gejb.arap.cmt.Arap_EJB,null)".Exceptiondata:nc.bs.framework.exception.ConnectorIOException:remoterequesterror:pklock/interfacenc.itf.uap.IPKLockBS.acquireLock_RequiresNewatnc.bs.framework.rmi.RemoteInvocationHandler.sendRequest(RemoteInvocationHandler.java:259)atnc.bs.framework.rmi.RemoteInvocationHandler.sendRequest(RemoteInvocationHandler.java:114)atnc.bs.framework.rmi.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:84)at$Proxy103.acquireLock_RequiresNew(UnknownSource)atnc.bs.uap.lock.PKLock.acquireLock_RequiresNew(PKLock.java:633)atnc.bs.uap.lock.PKLock.addDynamicLock(PKLock.java:420)5/7atnc.impl.arap.tally.BalanceRebuildImpl.asynchBalance(BalanceRebuildImpl.java:32)atsun.reflect.GeneratedMethodAccessor7950.invoke(UnknownSource)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)atjava.lang.reflect.Method.invoke(Method.java:611)atnc.bs.framework.aop.rt.MethodProceedingJoinpoint$2.invoke(MethodProceedingJoinpoint.java:47)atnc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:142)atnc.bs.framework.server.SecurityAspect.aroundMethod1(SecurityAspect.java:45)atsun.reflect.GeneratedMethodAccessor52.invoke(UnknownSource)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)atjava.lang.reflect.Method.invoke(Method.java:611)atnc.bs.framework.aop.rt.AdviceHolder.invoke(AdviceHolder.java:170)atnc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:93)atnc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:99)atnc.bs.framework.aop.rt.AspectedProxy.invoke(AspectedProxy.java:59)at$Proxy917.asynchBalance(UnknownSource)atnc.gejb.arap.cmt.Arap_EJBEjbBean.asynchBalance(Arap_EJBEjbBean.java:5394)atnc.gejb.arap.cmt.EJSLocal0SLnc_gejb_arap_cmt_Arap_EJB_306e274c.asynchBalance(EJSLocal0SLnc_gejb_arap_cmt_Arap_EJB_306e274c.java)atsun.reflect.GeneratedMethodAccessor7949.invoke(UnknownSource)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)atjava.lang.reflect.Method.invoke(Method.java:611)atnc.bs.framework.ejb.AbstractEJBServiceHandler.invoke(AbstractEJBServiceHandler.java:57)6/7atnc.bs.framework.ejb.AbstractEJBServiceHandler.invoke(AbstractEJBServiceHandler.java:36)at$Proxy877.asynchBalance(UnknownSource)atnc.asynch.arap.tally.ASynchBalanceTally.doDask(ASynchBalanceTally.java:121)atnc.asynch.arap.tally.ASynchBalanceTally.run(ASynchBalanceTally.java:32)atjava.util.Timer$TimerImpl.run(Timer.java:293)Causedby:java.net.SocketException:Nobufferspaceavailable(maximumconnectionsreached?):connectatjava.net.PlainSocketImpl.socketConnect(NativeMethod)atjava.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:383)atjava.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:245)atjava.net.PlainSocketImpl.connect(PlainSocketImpl.java:225)atjava.net.SocksSocketImpl.connect(SocksSocketImpl.java:377)atjava.net.Socket.connect(Socket.java:539)atjava.net.Socket.connect(Socket.java:488)atsun.net.NetworkClient.doConnect(NetworkClient.java:175)atsun.net.www.http.HttpClient.openServer(HttpClient.java:407)atsun.net.www.http.HttpClient.openServer(HttpClient.java:542)atsun.net.www.http.HttpClient.(HttpClient.java:246)atsun.net.www.http.HttpClient.New(HttpClient.java:319)atsun.net.www.http.HttpClient.New(HttpClient.java:336)atsun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:980)atsun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:865)atsun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:846)atsun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1182)atjava.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:390)atnc.bs.framework.rmi.HttpRemoteChannel.processIOException(HttpRemoteChannel.java:102)atnc.bs.framework.rmi.RemoteInvocationHandler.sendRequest(RemoteInvocationHandler.java:249)...31more7/7三.原因分析及解决方法出现此报错信息,可推断操作系统socket资源被大量占用且没有释放,导致socket资源耗尽,WAS中间件出现异常。可使用netstat-an等网络命令排查网络连接情况,对可疑网络连接跟踪定位。参考网上案例,可能的问题原因:1.win操作系统自动更新异常。2.操作系统中了木马病毒。3.虚拟内存配置过低。此案例在对操作系统查杀病毒后,系统恢复正常。