Pergunta

Temos um servlet que ocupa mais memória virtual no servidor durante o download de arquivos. Por esta razão, nós gostaríamos de limitar as solicitações simultâneas para esta digamos servidor, por exemplo, nós só gostaria 10 solicitações processadas em paralelo. Queremos que outras solicitações esperar na fila.

Pode um pool de threads costume ser criado e configurado para definir o número máximo de threads e atribuir para este servlet para lidar com este cenário? Estamos usando servidor WebLogic 9.2. Ou há qualquer outra abordagem melhor de fazer isso? Apreciar quaisquer pensamentos.

Podemos configurar um servlet separado e configurar o pool de threads para permitir que apenas um número X de solicitações simultâneas, todos os outros pedidos seriam colocados em fila para usar a próxima servlet disponível. Será que esta abordagem lançar um erro de tempo limite? você pode agradar a compartilhar mais detalhes em torno deste? Graças

http: // Download .oracle.com / docs / cd / E13222% 5F01 / WLS / docs92 / executar / APPB% 5Fqueues.html

Foi útil?

Solução

Pode um pool de threads costume ser criado e atribuir para este servlet para lidar com este cenário? Estamos usando servidor WebLogic 9.2. Ou há qualquer outra abordagem melhor de fazer isso? Apreciar quaisquer pensamentos.

Sim, isso é possível. Em vez de usar o padrão de auto-ajuste gerenciador de trabalho (começando com Weblogic 9.x, executar filas são substituídos por gestores de trabalho para pools de threads 1 ), você pode criar um gerenciador de trabalho com específica restrições como o max-threads-constraint e possivelmente o capacity. Você pode então atribuir um servlet para um gerente trabalho específico usando o -dispatch-política wl do arquivo weblogic.xml descritor de implementação.


1 Note que ainda é possível permitir WebLogic 8.1 segmento pool de modelo e usar Executar filas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top