我创建了一个端口池(webservice客户端),因为在每次请求时动态创建客户端导致bottleneck
现在我注意到webservice客户端持有对请求和响应的引用......
这是正常的......?
不幸的是,对于这个web服务来说,有效负载是非常大的,就像这样,即使暂时没有使用,池也会引用一些不再使用的响应......增加堆...
有没有办法在收到回复后清理这些引用?
更新:使用Apache CXF客户端我没有这个问题但是pb。仍然对weblogic客户开放..
答案 0 :(得分:2)
@Cris:虽然我没有在weblogic网络服务上进行过扩展,但上面的问题很奇怪。你可以试试这个: 你在链表中汇集了端口...将webservice调用的调用提交给一个单独的线程,一旦线程完成(webservice调用完成),所有线程本地对象必须被垃圾收集。您需要java profiler的帮助才能找到谁在webservice调用后持有引用。如果您正在使用Dispatch接口,您可以通过BindingProvider接口打印出请求上下文和响应上下文Map对象以了解更多信息..