调用Web Server插入海量记录
2009-12-29 13:13
113 查看
公司的项目基本上能跑起来了,今天做了一个服务端的测试,通过Web Service向数据库里插入100万条记录........
这个程序是在我自己的机器上调试的,也就是客户端和服务器端都在我的机器上..
程序运行起来,没想到刚插入了3960左右就跳出一个错误:
"Could not connect to http://localhost:1000/Service1.asmx. TCP error code 10048: 通常每个套接字地址(协议/网络地址/端口)
只允许使用一次。 127.0.0.1:1000."
弄的我好伤心,也不知道是哪里出了错误,调试了几次以后,结果差不多,而且还都是运行到3960左右的时候
通过上网查询以后,造成这个错误的原因在于:当客户端每一次请求的时候都会打开一个端口,这个可以通过控制台命令 netstat -n来
查看,如果当有几万条请求访问服务器端得时候,在本机器上就会开启N多个端口,而且这些端口都是动态分配的,等到连接完毕后在一
定时间以后会自动断开,这个可以通过 netstat -n 来查看,这个时间取决于TcpTimedWaitDelay这个是在注册表中的Parameters目录
下的,如果没有可以自己手动的创建,具体的值可是去网上查,当本地的端口都别占用的时候,而客户端继续不断的请求就会出现这个问
题.
这个是我的理解,仅供大家参考用,更多详细,可靠的资料可以去网上查
解决的办法:
设置MaxUserPort 和 TcpTimedWaitDelay,这两个是Tcp/Ip的元素,在注册表中,怎么设置网上很多在这不做 介绍 了.
这个程序是在我自己的机器上调试的,也就是客户端和服务器端都在我的机器上..
程序运行起来,没想到刚插入了3960左右就跳出一个错误:
"Could not connect to http://localhost:1000/Service1.asmx. TCP error code 10048: 通常每个套接字地址(协议/网络地址/端口)
只允许使用一次。 127.0.0.1:1000."
弄的我好伤心,也不知道是哪里出了错误,调试了几次以后,结果差不多,而且还都是运行到3960左右的时候
通过上网查询以后,造成这个错误的原因在于:当客户端每一次请求的时候都会打开一个端口,这个可以通过控制台命令 netstat -n来
查看,如果当有几万条请求访问服务器端得时候,在本机器上就会开启N多个端口,而且这些端口都是动态分配的,等到连接完毕后在一
定时间以后会自动断开,这个可以通过 netstat -n 来查看,这个时间取决于TcpTimedWaitDelay这个是在注册表中的Parameters目录
下的,如果没有可以自己手动的创建,具体的值可是去网上查,当本地的端口都别占用的时候,而客户端继续不断的请求就会出现这个问
题.
这个是我的理解,仅供大家参考用,更多详细,可靠的资料可以去网上查
解决的办法:
设置MaxUserPort 和 TcpTimedWaitDelay,这两个是Tcp/Ip的元素,在注册表中,怎么设置网上很多在这不做 介绍 了.
相关文章推荐
- Java防止重复数据多次调用接口导致数据库插入重复记录
- 关于jquery 的ajax调用的一些总结(记录插入数据库成功,但ajax返回false)
- 调用EXECSQL方法在数据集中插入一个新记录
- 在论坛中出现的比较难的sql问题:44(触发器专题 明细表插入数据时调用主表对应的数据)
- 错误记录--flex调用Remoting失败
- mysql避免重复插入记录
- 如何在十分钟内插入1亿条记录到Oracle数据库?
- Android调用webservice出错记录
- flash链接需要后台调用时的插入flash方法
- 使用DataSet数据集插入记录
- QT使用记录关于调用DLL库文件出现的问题
- MySQL插入多条记录和REPLACE语句
- Java如何把String[]类型的记录插入到Mysql中
- mysql中 如果有记录则修改 无记录则插入 的 几种方法
- 动态调用DLL记录
- 利用mysql的dual表达到不插入重复记录
- sql创建数据库、设置主键外键、插入记录
- 向表中插入一条记录并返回这条记录的id
- PHP取得当前插入数据库中记录的id值
- .NET MVC通过反射获取数据修改历史记录,并插入数据表中