De forma predeterminada, WebLogic elimina los hilos atascados después de 15 minutos (600 s), esto se controla mediante el parámetro StuckThreadMaxTime
. Sin embargo, no puedo encontrar más detalles sobre cómo se define exactamente "estancamiento". Específicamente:Protección de hilo atascado WebLogic
- ¿Cuál es el punto en el que comienza la cuenta atrás de 15 minutos? ¿Comienza el proceso de solicitud? Última
wait()
-como método? ¿Algo más? - ¿Esto se aplica solo a los subprocesos de procesamiento de solicitudes o a todos los subprocesos? Es decir. ¿puede un subproceso de procesamiento de solicitudes "escapar" de esta protección al generar un hilo de trabajo para una tarea larga? Especialmente, ¿puede delegar la escritura de respuesta a dicho trabajador sin una cuenta regresiva de 15 minutos?
Mi caso de uso es la descarga de archivos de gran tamaño a través de un sistema de permisos. Dado que un usuario necesita ser autenticado y tener permisos para ver un archivo, no puedo (o al menos no sé cómo) dejar esto en un simple servidor HTTP, p. Apache. Y debido a que los archivos pueden ser enormes, la descarga podría (al menos en teoría) tomar más de 15 minutos.
OK, pero como sé, puede volver a implementar toda la aplicación si hay demasiados hilos atascados, ¿no? Podría haber mezclado cosas con el tiempo de espera de la sesión, tuvimos algunos problemas con eso en el pasado. Acerca de los archivos: la aplicación es tan grande y tiene errores que no hay tiempo para optimizarla, ya que siempre hay problemas más urgentes. – doublep
El servidor dejará de responder a nuevas solicitudes si hay demasiados hilos atascados, pero en su caso no están realmente "atascados", pero están procesando solicitudes largas. Un mejor enfoque es darle al FileDownloadServlet su propio conjunto de hilos de ejecución: en WL10, este será un WorkManager dedicado. Esto garantiza que cualquier subproceso bloqueado/afectado en la descarga no afectará al resto del servidor que procesa las solicitudes normales. mira aquí para más información - http://download.oracle.com/docs/cd/E11035_01/wls100/config_wls/self_tuned.html#wp1059038. Puede definir una política de despacho para ese servlet. – JoseK
Gracias por la respuesta y las aclaraciones. – doublep