O WebLogic Server permite que você configure como sua aplicação prioriza a execução das atividades executadas por ela, usando um gerenciador de trabalho (Work Manager). Baseadas em regras e no monitoramento do desempenho em tempo real. O WebLogic Server pode otimizar o desempenho de sua aplicação e manter o nível de serviço da aplicação (SLA). Regras e restrições podem ser configuradas para a sua aplicação, definindo um gerenciador de trabalho (Work Manager) e aplicá-lo de forma global a um domínio WebLogic Server ou a um componente específico da aplicação.
O Weblogic prioriza o trabalho e aloca threads baseado num modelo de execução que leva em conta a carga e o rendimento do ambiente em tempo real, bem como parâmetros definidos pelo Administrador.
Os administradores podem configurar um conjunto de configurações e associá-las com uma ou mais aplicações ou um componente em particular. Por exemplo: você pode associar um conjunto de configurações para uma aplicação e outro conjunto diferente para outra aplicação, de forma independente. Durante a execução o Weblogic usa estas configurações para colocar em execução trabalhos pendentes e enfileirar as requisições para threads de execução.
Para gerenciar o trabalho de aplicações, é possível definir um ou mais dos componentes do gerenciador de trabalho (Work Manager):
Podemos separar os gerenciadores de trabalaho (Work Manager) em duas categorias:
Uma vez configurados os itens acima, veremos mais adiante, cada item em maiores detalhes. O primeiro passo é configurar um ou mais dos componentes acima, depois eles serão associados à aplicação através dos arquivos de configuração da aplicação (no momento do deploy). Não existe um limite para a quantidade de gerenciadores de trabalho, isto depende da capacidade da máquina ou conjunto de máquinas onde o Weblogic está instalado e as aplicações estão sendo executadas.
Um gerenciador de trabalho pode ser configurado para um domínio, uma aplicação ou módulo de uma aplicação. Pode ser configurado via o console administrativo ou através dos seguintes arquivos de configuração:
Exemplo de um gerenciador de trabalho (Work Manager):
<work-manager>
<name>highpriority_workmanager</name>
<fair-share-request-class>
<name>high_priority</name>
<fair-share>100</fair-share>
</fair-share-request-class>
<min-threads-constraint>
<name>MinThreadsCountFive</name>
<count>5</count>
</min-threads-constraint>
</work-manager>
Este é um exemplo para uma aplicação WEB:
<init-param>
<param-name>wl-dispatch-policy</param-name>
<param-value>highpriority_workmanager</param-value>
</init-param>
Dica:
Existe um gerenciador de trabalho (Work Manager) padrão chamado default, caso você crie um com este exato nome, então todos os servidores do domínio serão sobrescrito, ou seja a configuração dele irá valer em todo o domínio, o que pode impedir o funcionamento geral das aplicações e até do próprio Weblogic.
Veja estes dois links para entenderem como funcionam os seguinte tipos de gerenciador de trabalho: Classes de requisição e Restrições.