【发布时间】:2011-03-01 16:21:06
【问题描述】:
我目前正在使用 Jersey/Tomcat 开发 REST Web 服务(但欢迎使用通用 Servlet/Container 答案)。 如果客户端对从 MySQL 连接返回大量数据的服务执行一些 GET 请求。
为了避免任何 OOM 异常,我对 MySQL 使用了流模式。
但是,如果客户端在加载期间中止请求,则 MySQL 连接不会关闭。 之后,服务器将不再处理任何其他请求,因为一次只能处理一个“流”请求。
所以问题是:当请求在我的服务器上结束时(正常或异常)如何通知我。我可以注册某种听众吗?还是使用 UncaughtExceptionHandler ?
我已经看到了很多关于在 Jersey 中处理异常以将它们转换为“响应”的事情,但没有任何事情可以处理请求的过早结束。我猜 Jersey 或 Tomcat 可能会在没有通知的情况下简单地破坏我的线程。我可以在我的方法的关键部分捕获一些异常以了解何时发生此类线程中断吗?
提前感谢您的帮助,
拉斐尔
【问题讨论】:
标签: java exception servlets jdbc thread-abort