工作随记系列教材 (九)- 建立太多jdbc connection


有时候在测试的时候,会大量的建立和关闭jdbc connection,这样会导致程序不能使用。

原因是因为关闭connection的,时候,其所对应的socket不会马上关闭。 而一个socket会使用一个端口,端口资源是有限的,最后导致端口资源用光而不能继续建立新的connection 连接。

以下给出了linux和windows的解决办法
步骤 1 : linux
vi /etc/sysctl.conf

编辑文件,加入以下内容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30

然后执行 /sbin/sysctl -p 让参数生效。

net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

net.ipv4.tcp_fin_timeout 修改系統默认的 TIMEOUT 时间
步骤 2 : windows
步骤 3 : 比较可运行项目,快速定位问题
跟着做了,但是还是有问题,跑不起来。
原有主要有二:
1. 自己做了改动,因为对项目还不熟悉,这些改动导致项目跑不起来。
2. 以为自己没做改动,其实还是做了改动,这个时常发生。
为了解决这个问题,站长特意把当前的可运行项目放在了右上角下载, 这样通过比较,就可以快速定位问题所在,大大地提高学习效率。

推荐使用diffmerge软件,进行文件夹比较。把你自己做的项目文件夹,和我的可运行项目文件夹进行比较。
这个软件很牛逼的,可以知道文件夹里哪两个文件不对,并且很明显地标记出来
这里提供了绿色安装和使用教程:diffmerge 下载和使用教程
需要的附件在下载页的右上角,点击进入

© 2015-2020 how2j.cn — All Rights Reserved. 蜀ICP备15000533号