一、问题的表现
首先说明一下环境,服务器是WINDOWS SERVER 2003,我对这个操作系统的特性不是很熟悉,只是当做普通的个人版操作系统来使用。我平时一般JAVA服务器都是安装LINUX。
数据库使用的SQL SERVER 2005,SP2。他的数据库本来是SQL SERVER 2000的,是我上周帮他做的迁移。
中间件使用RESIN 2.1.17,这是我非常喜欢和熟悉的SERVLET容器,加不加装APACHE都具有很好的WEB服务性能。
杀毒软件使用的瑞星,双网卡,硬件防火墙,什么牌子我没管。
那到底是什么问题?
这个!
com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 java.net.SocketException: No buffer space available (maximum connections reached?): JVM_Bind
RESIN启动后,在短时间内正常,但是在没有访问的情况下,会在几个小时后,自己死掉。静态页面没有问题,也就是基于HTTPWEB服务器没有死,涉及数据库连接的,都不行。
二、分析
我是第一次碰到这个错误,赶紧GOOGLE。
我首先自己排除了是程序的问题,网上有人说,是数据库连接没有关闭,这样的同志都是新手,而且我自己也可以肯定,程序是肯定没有问题的,这个错误,出现的位置绝对比数据库连接要底层的多。
网上的文章非常少,都看了一遍,总结一共有以下几个原因。
1. Windows服务器运行自动更新。具体为什么自动更新运行后,就会消耗系统这么多的SOCKET 连接,我还搞不清楚。但是有一点,自动更新肯定会占用网络带宽和CPU,在服务器上,我觉得应该是关闭自动更新的,采用人工更新的方法。
2.机器中了木马。木马会打开很多后门,创建大量的连接,包括局域网肉鸡上的,还有外网的。这也会导致机器出现无法上网,或者程序无法连接。在搜索到的结果中,大量的结果都是采用的SQLSERVER数据库服务器,这是很容易招来木马和病毒的服务器,大部分是SQLSERVER出问题,不是偶然的。
3.虚拟内存配置过低。第一次发现这个问题后,我到现场打开机器,确实报了一个虚拟内存的错误,说虚拟内容不足。
4.有不当程序创建了大量的短连接,由于程序的不健壮,导致SOCKET处于忙碌或者TIME_WAIT状态,或者服务器和客户端有一方出现异常,而另一方没有得到通知,还在连接,持续不断的做写操作。
三、动手解决
经过分析,将准备采取的措施一一写下来,我的脑袋不太好用,容易忘记东西。
措施如下,先做什么,后做什么,看到这篇文章的朋友,可以自己调整。
1. 优化RESIN的配置,适当的扩大连接池的数量,虽然不是这个问题,还是稍微扩大一点。配置了远程监控,关闭了默认没有做的目录浏览,屏蔽了404等错误;使用HTTPD -INSTALL将RESIN安装入服务,原来我的朋友是直接启动的控制台,这容易导致程序在控制台缓存到顶后停止。关闭了HIBERNATE的SHOW_SQL开关。
2.关闭自动更新,并且关闭Background Intelligent Transfer Service服务。打开服务的时候,发现服务窗口5秒后会自动关闭,而且奇怪的服务非常多。同时看到NORTON已经被自动禁用了,打也打不开,得,这机器的病毒还不少。
3.杀毒。不看不知道,一看吓一跳。我这哥们真是个大猛男,妈的,各种病毒都中了,还服务呢,这SERVER真是可怜啊!病了主人也不给看病,为国家服务的机器,不可能没有医保嘛。亲爸不管叔叔来给你治病。经过分析,中的病毒有U盘病毒,还有RUNAUTO..病毒,灰鸽子,传奇木马,各种不知名的后门和木马,还被安装了一个远程控制的小东西。下载了一个360,想偷懒,结果根本无法安装。删除了RUNAUTO..,(我以前的博客有专门描述怎么对付这玩意的)结果C盘都打不开了,只能在资源管理器中打开。还挺麻烦。于是找到病毒几个藏身之所,分析了未知服务,用DOS删除不掉,还是360的文件粉碎有用。什么c:\windows\lsass.exe等等,cmd.exe.exe这都太普通了。具体过程也不是很清楚了,总之最后360可以安装并更新了。360这东西确实好,木马都清除了。现在服务窗口也不自动关闭了,NORTON也正常监控,机器没有异常打开的端口,没有莫名其妙的服务,恩,差不多了。
4.优化服务器设置。其实我也不知道这么优化。看了看,虚拟内存都在C盘,C盘空间已经非常少了,找了点看的明白的东西,往别的盘搬了搬,看不懂的,不敢随便给人家动。重新打开服务窗口,没什么用的服务都开着,把我确定的都关闭,什么SERVER服务,还开着ADMIN$呢,赶紧都关了,他这机器根本用不着。还有什么IIS,APACHE,开的还真全,我看还安装了TOMCAT了,干脆加上RESIN全打开算了,那真是够热闹的,万马齐喑。我当然不允许这事出现,全干掉。
5.检查是否某个程序有漏洞。由于我自己在RESIN下还配置了一个只有我自己连GOOGLE的机器人都无法发现(并且也拒绝了机器人扫描)的小工具,之前就看到有外网IP不时的创建大量的连接,但都处于TIME_WAIT状态。这也很要命。看了一下,除了这个WEB应用,还有一个每天自动接收数据的小程序。这个程序是使用的SOCKET长连接还是短连接就不知道了,有朋友关心这方面的内容可以详细GOOGLE一下。但是这个程序确实是没有被配置为开机自动运行(我给加上了),可能是外网那个IP上的客户端在不断的寻求连接吧!SOCKET.close()是不马上释放连接的,而是设置为TIME_WAIT状态,这个时间默认是240S,也就是4分钟。这太长了,有30秒(最小值)就可以了。在修改这个默认值的时候,还发现这台机器并没有开启大端口服务,也就是高于5000的端口。这也是会出现“系统缺乏足够缓冲区空间或者因为队列已满无法执行套接字上操作”错误的!而那WEB服务就是配置到1万以上端口的!赶紧,操作方法如下:
1. 启动注册表编辑器。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
2. 新建
值名称:MaxUserPort
值类型: DWORD
值数据: 65534(用十进制的方法写进去就可以,如果是十六进制,是FFFE,因为4个F是65535嘛)
有效范围: 5000 - 65534 (十进制)
默认: 0x1388 5000 (十进制)
新建
值名称:TCPTimedWaitDelay
值类型: DWORD
值数据: 0000001e(也就是30,不行可以用WINDOWS计算器,很方便,这个表示TIME_WAIT的秒数)
OK!
经过一番折腾,我在震耳欲聋的轰鸣声中,终于安抚了这台哭泣的服务器,也驯服了几匹小木马,好好调教了我的RESIN服务器。顺便说一句,我身后有台什么爱默生服务器,隔一会就象打嗝似的叫一声,时常把我吓到……
希望花费我1个多小时写的这个总结,对我自己肯定有用,也希望能帮到更多的朋友,如果转载,请注明出处。
分享到:
相关推荐
3. 错误信息:当Socket连接池出现问题时,可能会出现错误信息,如"java.net.SocketException: No buffer space available (maximum connections reached?): listen failed"。 解决方法 要解决线程太多导致Socket...
1.解决服务器报错:java.net.SocketException: No buffer space available (maximum connections reached?): JVM_Bind 2.解决Windows Server 2003/2008 R2系统BUG导致windows缓冲区已满(no buffer space),Windows...
基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业),个人经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做大作业的学生和需要项目实战练习的学习者,可作为毕业设计、课程设计、期末大作业,代码资料完整,下载可用。 基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业)基于Python的天气预测和天气可视化项目源码+文档说明(高分毕设/大作业
2025工业5G终端设备发展报告.pdf
内容概要:本文介绍了一段基于分布式ADMM算法的MATLAB代码,用于电力系统优化调度,尤其关注碳排放交易的影响。代码首先对电力系统进行分区,接着构建DC-DOPF最优潮流问题,考虑碳排放交易的成本,并利用ADMM算法求解。文中详细解释了各个关键步骤,如系统分区、目标函数设计、碳排放交易成本计算以及ADMM算法的具体实现。此外,代码还包括了多种优化技术和实用技巧,如自适应惩罚因子调整、边界条件处理等,确保算法的有效性和实用性。 适用人群:适用于对电力系统优化调度感兴趣的科研人员、工程师和技术爱好者,尤其是希望深入了解分布式算法和碳排放交易机制的人群。 使用场景及目标:①研究电力系统优化调度的新方法和技术;②探讨碳排放交易对电力系统调度策略的影响;③提高电力系统运行效率和环保性能。 其他说明:代码不仅提供了详细的注释和模块化设计,还展示了丰富的可视化结果,便于理解和进一步研究。同时,文中提到了一些实际应用案例,证明了该方法的有效性和优越性。
适配于jdk8版本
自动化生成全套教程
内容概要:本文档《GRP_U8软件近期常见问题85例.docx》详细列出了GRP_U8软件在实际使用过程中遇到的85个常见问题及其解决方案。这些问题涵盖了账务处理、电子报表、工资模块、资产管理、物资管理、成本模块、网上报销、预算编制、学生收费、安装配置以及基础数据管理等多个方面。每个问题不仅描述了现象,还提供了具体的解决步骤或SQL语句。文档强调在执行任何脚本前务必进行整库备份,并提供了维护问题的联系方式。 适合人群:适用于GRP_U8软件的管理员、技术支持人员及有一定数据库操作基础的用户。 使用场景及目标:①帮助用户快速定位并解决GRP_U8软件在账务处理、报表生成、工资管理、资产管理等模块中遇到的具体问题;②提供详细的SQL语句和操作指南,确保用户能够独立解决问题,减少对技术支持的依赖;③指导用户在遇到软件安装、配置及升级相关问题时采取正确的措施。 其他说明:文档内容正在不断完善中,用户可以通过私信反馈意见和建议。此外,文档中多次强调了数据安全的重要性,提醒用户在执行任何操作前做好备份工作。针对某些特定问题,文档还提供了多种解决方案供用户选择,以适应不同的环境和需求。
少儿编程scratch项目源代码文件案例素材-scratch RPG 战斗.zip
内容概要:本文详细介绍了利用模型预测控制(MPC)实现无人艇分布式编队协同控制的方法和技术。首先,通过简化的动力学模型和MATLAB代码展示了无人艇的基本行为预测。接着,深入探讨了编队协同控制的关键要素,包括代价函数的设计、信息交换机制以及分布式MPC的具体实现步骤。文中还提供了具体的Python代码示例,涵盖了从单个无人艇的动力学建模到多智能体之间的协作控制。此外,作者分享了一些实用技巧,如如何处理通信延迟、传感器噪声等问题,并展示了仿真效果,证明了所提出方法的有效性和鲁棒性。 适合人群:对无人艇编队控制、模型预测控制(MPC)、分布式系统感兴趣的科研人员、工程师及高校学生。 使用场景及目标:适用于研究和开发无人艇编队控制系统,特别是希望通过分布式控制实现高效、灵活的编队任务。目标是在复杂的海洋环境中,使无人艇能够自主完成编队、跟踪指定路径并应对各种干扰因素。 其他说明:文中提供的代码片段和理论解释有助于理解和实现无人艇编队控制的实际应用。建议读者在实验过程中结合实际情况进行参数调整和优化。
(3)编写程序验证FIFO和Stack LRU页面置换算法 (4)分别用FIFO和Stack LRU页置换算法,自己设定一个页面引用序列,绘制页错误次数和可用页帧总数的曲线并对比(可用Excel绘制或手绘);能否重现FIFO导致的Belady异常; (5)[选做]编程实现最优页置换算法,用课件上的序列验证。
一个用于骨折分类的医学图像数据集,旨在通过计算机视觉技术帮助研究人员和医疗专业人员准确识别和分类骨折类型。以下是关于该数据集的详细介绍。该数据集包含了多种类型的骨折X光图像,涵盖了常见的骨折类别,如撕脱性骨折(Avulsion Fractures)、粉碎性骨折(Comminuted Fractures)、骨折脱位(Fracture-Dislocations)、青枝骨折(Greenstick Fractures)、发际线骨折(Hairline Fractures)、嵌插性骨折(Impacted Fractures)、纵向骨折(Longitudinal Fractures)、斜行骨折(Oblique Fractures)、病理性骨折(Pathological Fractures)和螺旋形骨折(Spiral Fractures)等。多样性:数据集中的图像来自不同的骨折类型,能够为模型训练提供丰富的样本。高质量标注:数据由专业放射科医生手动标记,确保了数据的准确性和可靠性。适用性:该数据集适用于机器学习和深度学习项目,可用于开发自动化骨折分类系统。该数据集主要用于训练和验证计算机视觉模型,以实现从X光图像中自动识别和分类骨折类型。通过自动化骨折分类,可以提高医疗诊断的效率和准确性,减少人为误判,并帮助医疗专业人员更快地做出决策。是一个极具价值的医学图像数据集,能够为医疗领域的研究人员和从业者提供有力支持,推动医学影像分析技术的发展。
本书《互联网的历史与数字未来》由约翰尼·瑞安撰写,探讨了互联网从诞生到成为全球性现象的历程。书中分为三个阶段:分布式网络与离心思想的兴起、互联网的扩展以及新兴环境下的互联网。第一阶段追溯了互联网概念的起源,包括冷战背景下的军事实验和计算机技术的普及。第二阶段描述了互联网如何从军事网络演变为全球互联网,并催生了万维网。第三阶段则探讨了Web 2.0的出现、网络社会的形成以及互联网对政治、文化和商业的深远影响。瑞安强调了互联网作为离心力、用户驱动和开放性的三个核心特征,并指出这些特征正在重塑我们的世界。
进程封包截取神器,支持TCP和UDP协议封包拦截
最新版kibana-9.0.0-linux-x86_64.tar.gz
子查询练习题,多练习总没有坏处,不知道凑没凑够十一个字
内容概要:本文详细介绍了如何利用Matlab计算二氧化钒(VO2)在可见光到近红外波段的介电常数,并将其应用于COMSOL多物理场仿真软件进行光学性能仿真。主要内容包括:VO2在不同温度下的相变特性及其对折射率的影响;基于Lorentz和Drude模型的介电常数计算方法;Matlab代码实现步骤;COMSOL中材料参数的导入与设置;以及常见错误提示和解决方案。文中还附带了一个详细的30分钟教学视频,帮助读者更好地理解和掌握整个流程。 适合人群:对光学材料、相变材料感兴趣的科研工作者和技术人员,尤其是从事智能窗户、光学开关等领域研究的人士。 使用场景及目标:① 学习并掌握VO2在不同温度下的光学特性和相变机制;② 利用Matlab和COMSOL进行材料参数计算和仿真,为实际应用提供理论支持;③ 解决仿真过程中可能出现的问题,提高仿真精度。 阅读建议:建议读者跟随文中的代码示例逐步操作,结合提供的教学视频加深理解。对于初学者来说,可以先熟悉Matlab的基本语法和COMSOL的操作界面,再尝试完成完整的仿真流程。
内容概要:本文详细介绍了利用COMSOL Multiphysics进行激光打孔过程中热应力耦合仿真的具体步骤和技术要点。首先,通过建立波动光学和固体力学两个物理场,精确模拟了1064nm激光与材料相互作用产生的温度场变化及其引起的热膨胀效应。接着,针对热源加载、网格划分、求解器配置等方面进行了深入探讨,提出了多项创新性的解决方案,如采用移动高斯热源实现精准加热、引入时间条件判断调整热膨胀系数以及优化网格布局等措施。此外,还讨论了材料参数设置中的注意事项,尤其是对于高温合金材料,在不同温度区间内的导热系数和弹性模量的变化规律,并强调了相变潜热的影响。最后,通过对温度场和应力场的综合分析,揭示了激光移动速度对孔洞边缘应力分布的影响机制。 适用人群:从事激光加工、材料科学、热力学研究的专业人士,以及对多物理场耦合仿真感兴趣的科研工作者。 使用场景及目标:适用于希望深入了解激光打孔过程中热应力形成机理的研究人员;旨在提高加工精度、减少缺陷发生的工程技术人员;希望通过理论模型指导实际生产的制造业从业者。 其他说明:文中提供了大量MATLAB代码片段用于辅助理解和实施相关操作,同时分享了许多实用的经验技巧,帮助读者更好地掌握COMSOL软件的应用。
内容概要:本文详细探讨了永磁同步电机(PMSM)在全速度范围内实现无位置传感器控制的技术方法和切换策略。针对高速和低速段分别介绍了超螺旋滑模控制和脉振高频方波注入的具体实现方式,并提供了相应的代码示例。对于切换策略,则讨论了加权切换和双坐标切换的方法,强调了在实际应用中需要注意的问题,如角度补偿和平滑过渡。此外,还分享了一些实用的经验技巧,如高频注入信号的滤波处理、滑模控制参数的优化设置等。 适合人群:从事电机控制系统设计的研究人员和技术工程师。 使用场景及目标:适用于需要深入了解PMSM无位置传感器控制技术的研发项目,旨在帮助工程师掌握不同速度范围内的最优控制策略,确保系统在全速域内的稳定性和可靠性。 其他说明:文中提供的代码片段和实践经验有助于读者更好地理解和实施相关技术,同时也提醒读者在实际应用中应注意参数调整和系统调试。
内容概要:本文介绍了一个基于C#和雷赛DMC系列的运动控制项目,该项目提供了详细的源码解析和技术要点讲解。尽管界面较为简陋,但功能齐全,涵盖了设备连接、运动参数设置、运动控制、状态监测等多个方面。文章详细解释了各个关键模块的实现,如初始化、运动控制、指令解析、多线程同步和紧急停止等功能。此外,还介绍了常见的陷阱和优化建议,帮助新手更好地理解和掌握运动控制编程。 适合人群:初学者和有一定编程基础的开发者,特别是对运动控制编程感兴趣的程序员。 使用场景及目标:① 学习C#与雷赛DMC系列设备的集成;② 掌握运动控制项目的开发流程;③ 实践运动控制的实际应用场景,如工业自动化。 其他说明:项目不仅提供完整的代码示例,还包括了许多实用的技术提示和最佳实践,非常适合新手进行深度学习和改造。