Pregunta

Tenemos un servlet que ocupa más memoria virtual en el servidor a medida que descarga archivos. Por este motivo, nos gustaría limitar las solicitudes simultáneas a este servidor, por ejemplo, solo queremos que se procesen 10 solicitudes en paralelo. Queremos que otras solicitudes esperen en la cola.

¿Se puede crear un grupo de subprocesos personalizado y configurarlo para definir el número máximo de subprocesos y asignar a este servlet para manejar este escenario? Estamos utilizando el servidor WebLogic 9.2. ¿O hay algún otro enfoque mejor para hacer esto? Agradezco cualquier pensamiento.

¿Podríamos configurar un servlet separado y configurar el grupo de subprocesos para permitir solo X número de solicitudes simultáneas, todas las demás solicitudes se colocarían en la cola para usar el siguiente servlet disponible. ¿Este enfoque arroja un error de tiempo de espera? ¿Puedes por favor compartir más detalles sobre esto? Gracias

http: // download .oracle.com / docs / cd / E13222% 5F01 / wls / docs92 / perform / appb% 5Fqueues.html

¿Fue útil?

Solución

  

¿Se puede crear un grupo de subprocesos personalizado y asignarlo a este servlet para manejar este escenario? Estamos utilizando el servidor WebLogic 9.2. ¿O hay algún otro enfoque mejor para hacer esto? Agradezco cualquier pensamiento.

Sí, esto es posible. En lugar de utilizar el administrador de trabajo de autoajuste predeterminado (comenzando con Weblogic 9.x, las colas de ejecución son reemplazadas por administradores de trabajo para grupos de subprocesos 1 ), puede crear un administrador de trabajo con restricciones como max-threads-restriction y posiblemente la capacidad . Luego puede asignar un Servlet a un administrador de trabajo específico utilizando wl-dispatch-policy del archivo descriptor de implementación weblogic.xml .


1 Tenga en cuenta que todavía es posible habilitar WebLogic 8.1 Thread Pool Model y usar Execute Queues.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top