5

我创建了一个端口池(Web服务客户端),因为在客户端的每个请求上动态创建都会导致瓶颈

现在我注意到网络服务客户端持有对请求和响应的引用......

这正常吗……?

不幸的是,该网络服务的有效负载非常大,即使有一段时间不使用,池也会像这样保存对一些不再使用的响应的引用...增加堆..

有没有办法在收到回复后清理这些引用?

更新:使用 Apache CXF 客户端我没有这个问题,但是 pb。仍然对 weblogic 客户端开放..

4

1 回答 1

2

@Cris:虽然我没有在 weblogic web 服务上广泛工作,但上面的问题很奇怪。您可以试试这个:您在链表中有池化端口...提交对单独线程的 Web 服务调用调用,一旦线程完成(Web 服务调用完成),必须对所有线程本地对象进行垃圾收集。您需要 java profiler 的帮助来找出谁在 webservice 调用后持有引用。如果您使用的是 Dispatch 接口,您可以通过 BindingProvider 接口打印出请求上下文和响应上下文 Map 对象以了解更多信息。

于 2011-08-06T18:01:44.410 回答