1

首先,我是一个 .NET 人,所以我在这里有点不习惯。

我的客户的供应商有一个托管在 Tomcat 中的产品 API。该服务似乎“坚持”了几天前的请求。

我的信念是,他们的 API 代码中没有适当的错误处理,只是陷入了无休止的循环,一遍又一遍地重试请求。他们不会说问题出在哪里,而只是告诉我的客户重新启动 Tomcat。

这已经成为一个问题,供应商现在建议安排一个任务来每天重新启动 Tomcat。但是,有些服务会在整个晚上按需调用 API(来自零售消费者)。

那里的专家可以支持我吗?我不相信需要重新启动的 Tomcat 本身存在任何问题。有太多建立在它之上的“严肃”应用程序永远不会容忍这个错误。他们(供应商)必须是糟糕的编码。或者是否存在可能导致这些“死线程”的已知配置/平台问题?

任何见解将不胜感激。

4

1 回答 1

1

要分析卡住的线程,您需要获取线程转储并将它们传递给供应商(或编写代码的人)进行分析。如果您不知道如何进行线程转储,您可以谷歌查找适合您环境的过程。
卡住的线程可能是由于线程持有网络资源而不放手造成的。糟糕的编码也可能是一个问题。
定期重新启动不是最佳选择,但在您找到永久解决方案之前,它可能是一种临时解决方法。

于 2012-04-12T16:28:41.987 回答