我们在WAS 8.5.5.2服务器上运行CXF 2.7.11应用程序。 Application具有classloading parent last属性,我们也按照CXF文档的说明禁用了IBM JaxWS引擎。
应用程序运行良好几天,之后我们得到以下异常并且TCP通道似乎已满。
从具有ws类的堆栈跟踪中我怀疑CXF是否存在此问题,但这可能是另一个问题的结果
该应用程序也是一个暴露REST资源的Spring MVC应用程序。
[10.11.2014 05:00:20:887 EET] 00000049 TCPChannel W TCPC0004W: TCP Channel TCP_2 has exceeded the maximum number of open connections 20000.
[10.11.2014 05:02:16:343 EET] 0000023f SSLHandshakeE E SSLC0008E: Unable to initialize SSL connection. Unauthorized access was denied or security settings have expired. Exception is javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at com.ibm.jsse2.b.a(b.java:56)
at com.ibm.jsse2.nc.a(nc.java:90)
at com.ibm.jsse2.nc.unwrap(nc.java:292)
at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:26)
at com.ibm.ws.ssl.channel.impl.SSLConnectionLink.readyInbound(SSLConnectionLink.java:535)
at com.ibm.ws.ssl.channel.impl.SSLConnectionLink.ready(SSLConnectionLink.java:295)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1864)
答案 0 :(得分:0)
所以这有点棘手。您可以简单地增加可以从控制台完成的连接数:
服务器> WebSphere Application Server> SERVER_NAME> web容器>
我说这个的原因很棘手,因为可能存在更大的潜在问题,例如连接泄漏。为了达到你使用20K连接的程度是非常多的,但是,我不知道你在这台服务器上有多大的负担。如果这只是一个测试环境,那么您需要开始研究可能的连接泄漏。
Unable to initialize SSL connection. Unauthorized access was denied or security settings have expired. Exception is javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
错误消息的这一部分表示正在对SSL端口建立纯文本非SSL连接。您可能还想查看一下,看看是谁进行了这些调用,因为这是一个开销。
答案 1 :(得分:0)
使用20000个连接非常高。您的客户端代码中可能存在漏洞,这些漏洞正在泄漏连接。如果您在客户端使用CXF,可以查看此https://issues.apache.org/jira/browse/CXF-5144。
增加连接数不会解决您的问题,只会延迟它。