gpt4 book ai didi

mysql - Perl Web 应用程序问题 : DBI connect failed: Can't create TCP/IP socket (10106)

转载 作者:可可西里 更新时间:2023-11-01 02:34:41 25 4
gpt4 key购买 nike

我的 Perl Web 应用程序有问题,该应用程序在 Windows 2008r2 上的 Apache 2.2 上运行,在 CentOS 服务器上使用单独的 MySQL 数据库。

这是问题:我定期收到错误超时:

DBI connect('host=10.148.xxx.xxx:database=XXX','root',...) failed: Can't create TCP/IP socket (10106) 

当我说周期性时,这意味着大部分时间一切都按预期工作,但有时我会收到此消息并导致我的应用程序抛出错误页面。

我在互联网上搜索了很多,发现了一些对我不起作用的推荐解决方案。

首先,我认为我的数据库服务器无法访问,但使用 MySQL 企业监视器后我发现情况并非如此。

然后我认为我可能已经用完了 TCP 端口,所以我增加了临时端口的数量并减少了超时时间,如本文所述: http://www.outsystems.com/forums/discussion/6956/how-to-tune-the-tcp-ip-stack-for-high-volume-of-web-requests/

简而言之,我是这样做的:

Reduce the TIME_WAIT by setting the TcpTimedWaitDelay TCP/IP parameter to 30 seconds on the windows registry key HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters, as a DWORD value.

Increase the range of ephemeral ports by setting the dynamicportrange to an higher value through the command netsh int ipv4 set dynamicportrange tcp start=32767 num=32768, this will set the port range from 32768 to 65535."

但是没有运气,仍然超时

接下来,我用这些参数更新了我的 Apache 配置文件以进一步减少 KeepAliveTimeout:

Timeout 100
MaxKeepAliveRequests 100
KeepAliveTimeout 5

仍然没有运气。

我的主要问题是大部分时间一切正常,我什至无法重现这个问题,但它每天都会出现,我的客户很生气。

我什至不确定该往哪个方向走,是 MySQL,还是 Perl DBI 模块问题,是 Apache,还是 TCP/IP 配置,所以任何帮助将不胜感激。

最佳答案

您似乎遇到了一个单独的问题,表现为“无法创建 TCP/IP 套接字 (10106)”。

除非您要处理大量非常快速的连接,否则您不需要编辑临时端口或超时。通过这样做,您只是将原因推迟到以后发生。

我会检查您的应用程序(完整)在完成连接后是否正在关闭连接?这包括数据库连接、客户端 http 套接字、文件/目录句柄等...使用“netstat”来监视应用程序运行时当前打开的端口/连接。找出不断增加的内容,然后在您的应用程序(或也在同一台机器上运行的其他一些应用程序)中追踪导致此类连接的原因。然后您可以采取措施正确关闭连接,从而解决您的问题。

希望这对您有所帮助。祝你好运。

关于mysql - Perl Web 应用程序问题 : DBI connect failed: Can't create TCP/IP socket (10106),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37275378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com