Axis Web 服务保持活动状态
我有一个在 Tomcat 中运行的轴 Web 服务。 客户端在不发送 HTTP 1.1 中的 Connection: close 标头的情况下建立连接,这意味着默认为 Keep-Alive。 不幸的是,客户端似乎遇到了问题,当遇到异常时,客户端没有关闭连接。 由于这些客户端在批处理作业中发送大量流量,这很快就会耗尽我的所有连接。 我想强制我的 Web 服务在特定处理程序(扩展 BasicHandler)完成后立即关闭每个连接。
我该怎么做呢? 即如何在调用 BasicHandler#invoke() 后强制服务器关闭连接?
I have an axis web service running in Tomcat. Clients are making connections without sending a Connection: close header in HTTP 1.1 which means that the default is Keep-Alive. Unfortunately the client seems to be having a problem and when it gets an exception the client is not closing the connection. Since these clients are sending lots of traffic in batch jobs this quickly eats up all my connections. I want to force my web service to close each connection as soon as a particular Handler (extends BasicHandler) completes.
How do I do this? I.e. how do I force the server to close a connection after calling BasicHandler#invoke()?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 tomcat 的 server.xml 文件中,找到 HTTP 连接器定义(它是带有 protocol="HTTP/1.1" 的元素),然后添加 keepAliveTimeout 属性,详细信息如下:
http://tomcat.apache.org/tomcat-6.0-doc/config/http.html
您将拥有尝试不同的值,看看哪一个可以给你带来你想要的行为。 还请检查其他设置,其中一些可能对您有用。
请注意,这是 Tomcat 6 文档,因此并非所有选项都适用于 tomcat 5,因此请检查 tomcat 5 文档的相同部分。
In your tomcat's server.xml file, find the HTTP Connector definition (it's the element with protocol="HTTP/1.1"), and add the keepAliveTimeout attribute, as detailed here:
http://tomcat.apache.org/tomcat-6.0-doc/config/http.html
You'll have to experiment with different values to see which gives you the behaviour you want. Check out the other settings also, some might be useful to you.
Note that that's the Tomcat 6 docs, so not all options might work on tomcat 5, so check the same part of the tomcat 5 docs.