2011-07-30 14 views
5

he creado un grupo de puertos (clientes de servicio web), porque crear sobre la marcha en cada Solicitar al plomo cliente a un bottleneckWeblogic clientes de servicio web. (Referencias limpios)

Ahora me di cuenta de que los clientes de servicio web tienen referencias al solicitud y respuesta ...

¿Es eso normal ...?

Desafortunadamente la carga útil es bastante grande para este websevice y como este, incluso si no se utiliza durante un tiempo de la piscina tiene referencias a algunas de las respuestas ya no se usa ... aumentando montón ..

¿Hay una manera de limpiar esas referencias después de recibir la respuesta?

Actualización: utilizando clientes Apache CXF no tengo este problema, sin embargo, pb. todavía está abierto para clientes weblogic ..

+0

ejecutar el análisis de volcado dinámico para asegurarse de que su suposición acerca de las referencias retenidas sea correcta. Además, ¿puede contarnos un poco más sobre su patrón de caso de uso/llamada y cómo está generando/configurando su cliente de servicio web? –

+0

Sí, he analizado el montón usando JProfiler y así es como lo descubrí. El grupo es simplemente una lista enlazada donde los puertos se almacenan limitados a 240. Estos puertos se usan para llamar a un servicio web. Desafortunadamente, la carga útil es bastante grande y después del Llego la respuesta, supongo que no debería haber referencias fuertes a la respuesta ... o si existe tal cosa como el contexto del talón nunca se libera – Cris

Respuesta

2

@Cris: aunque no he trabajado extensamente en el servicio web weblogic pero el problema anterior es bastante extraño. Puede probar esto: tiene puertos agrupados en la lista vinculada ... envía la invocación de una llamada al servicio web a un hilo separado y una vez que el hilo finaliza (llamada al servicio web completa), todos los objetos locales del hilo deben ser recolectados. Necesita ayuda del generador de perfiles java para saber quién tiene referencias publicar llamada de servicio web ... si está utilizando la interfaz de despacho, puede imprimir contexto de solicitud y contexto de respuesta. Asignar objetos mediante la interfaz BindingProvider para obtener más información.

Cuestiones relacionadas