使用数据集成器将ETL从DB2提取数据到sql Server,经过一段时间后,将会出现以下odbc错误:
Communication link failure. comm
rc=10055 – CWBCO1003 – Sockets error,
function returned 10055
在此之后无法对ODBC做任何事情,必须重启盒子,目前我们只是每晚午夜重启盒子以尽量避免问题发生.
试过这个,http://support.microsoft.com/kb/196271但它没有用,差点让它变得更糟.
似乎没有解决方案.没有其他使用ODBC的框可以解决我们使用的这个问题.此时无法重新格式化此框,遗留内容.
有没有人见过这个问题,碰到它,修复它,减轻它?
当然是一种低内存条件,可能是因为没有关闭数据库连接的极端常见错误.我的建议是:
>检查进程运行时可用的非页面缓冲池内存量.可能会在机器出现故障之前稳步下降.这表示套接字未关闭或内核I / O缓冲区未被释放. (未封闭的套接字更有可能)
>通过’net sh winsock catalog>检查winsock堆栈中的未知或外部分层服务提供程序(LSP). wsockcat.txt”.将输出与其他Windows服务器进行比较.首先怀疑已插入到堆栈中的任何提供程序,这些提供程序源自mswsock.dll之外.
>如果问题是低非页面缓冲池,请参阅重新启动应用程序或DB服务器是否释放内存.您可能没有使用连接池,因此如果某些数据库访问层保持旧连接打开,那么’sp who’和’list applications’可能会显示有趣的结果.
如果您确实看到数据库服务器在#3中报告了大量空闲连接,则可以通过编写脚本来主动关闭来自套接字服务器端的未使用连接来缓解此问题.