我在我的 Ubuntu 16.04 LTS 机器上设置了几个 docker 容器。它们都具有相同的容器映像。
它工作得很好,但是一些用户在尝试长期查询时向我报告了一个常见问题,并且在执行大约一分钟后,他们收到一条错误消息:
男士。10054, Nivel 20, Estado 0, Línea 0 Error en el nivel del transporte al recibir los resultados del servidor。(提供者:TCP 提供者,错误:0 - Se ha forzado la interrupción de una conexión existente por el host remoto。)
错误消息被翻译成英文为Error 10054, level 20, State 0, Line 0
.
有什么我可以在他们的配置下修改的吗?
PS:我注意到在服务器的属性连接>远程服务器连接>我已经“检查了Permitir conexiones remotas con este servidor”,等待时间为0秒(无等待时间)。
省略了权限配置,因为我认为它不相关。
我通过使用来自 Microsoft 的官方 MSSQL 映像解决了这个问题,因为我使用的是自定义 Ubuntu 16.04 LTS + MSSQL 包。所有数据都存储在一个卷中,因此从一个容器过渡到新容器很容易。
编辑:以前并没有真正解决问题。真正的问题是我查询了太多数据。查询一个广泛的数据集意味着在允许的情况下消耗大量的 RAM。我根本没有限制它,所以当达到最大可用 RAM 量时,操作系统(调度程序)会终止该进程。该解决方案导致配置内存限制。