HTTP3287: connection limit (4096) exceeded, closing socket

在Sun Java™ System Application Server 的server.log中抛出错误:HTTP3287: connection limit (4096) exceeded, closing socket 导致整个应用无法访问,
用netstat -an |grep 49152 |wc –l 查看发现有4千多个连接.经咨询sun公司的技术人员,他们那边的建议是:
t appear that the customer is doing hot deployment during production.
Assume the customer has numerous jsps ( raw ) to be compiled on demand, this is an expected behaviour.
AppServer will become slow, then more and more connections were hold in queue and finally result in connection limit exceeded.

Technically speaking, it is not a recommended practice to do hot deployment in high load.
For simplicity, two main events will happen ..

#1. the classloader will unload the old classes and re-load the new classes
#2. the compiler is working hard to compile those jsps on demand.

I suspect #2 is what the customer is encountering.

Given the above two scenario, the application server is going to be
#1. SLOW ( OR VERY SLOW )
#2. NO guarantee in the data integrity ( eg change in the sql operation in the application code )

You might want to advise the customer to avoid hot deployment.

Either
#1. Schedule a downtime for application re-deployment, upgrade etc

#2. invest in a cluster architecture where you can bring down instance for re-deployment while the other available instance is still servicing incoming requests.

Moving ahead
#1. Based on the latest information that the customer has provided, I would think that this is no longer a product issue anymore.

#2. The customer might want to re-think their deployment operation procedure.

My recommendation is for the customer to adopt other deployment strategy and monitor the situation from there.

大家如果有遇到这个问题的,看看你们是什么原因引起的。现在我也不知道到底是什么原因导致.

你可能感兴趣的:(sql,SQL Server,socket,咨询,sun)