O status de um processo no Gerenciador de trabalho da interface do usuário de administração não é atualizado quando a tarefa é concluída

Solução

Defina o tamanho do lote do Gerenciador de trabalho como 1. Ele força a sincronização entre os dois threads. Execute as seguintes etapas para alterar o tamanho do lote:

Adicione opções Java ao JBoss

  1. Interrompa o servidor de aplicativos JBoss.

  2. Abra o [appserver root]/bin/standalone.bat (Windows) ou standalone.sh (Linux ou UNIX) em um editor e adicione as opções Java -Dadobe.workmanager.allocate.max-batch-size=1

  3. Reinicie o servidor.

Adicionar opções Java para WebLogic

  1. Inicie o Console de administração do WebLogic digitando http://[nome do host]:[porta]/console em um navegador da web.

  2. Digite o nome de usuário e a senha que você criou para o domínio WebLogic Server e clique em Log Under Change Center. Clique em Lock & Edit.

  3. Em Domain Structure, clique em Environment > Servers e, no painel direito, clique no nome do servidor gerenciado.

  4. Na próxima tela, clique nas guias Configuração > Inicialização do servidor.

  5. Na caixa Argumentos, anexe o argumento -Dadobe.workmanager.allocate.max-batch-size=1

  6. Clique em Save e em Activate Changes.

  7. Reinicie o servidor gerenciado do WebLogic.

Adicione opções Java para WebSphere

  1. Na árvore de navegação do Console Administrativo do WebSphere, clique em Servers > Server Types > WebSphere application servers.

  2. No painel direito, clique no nome do servidor.

  3. Em Server Infrastructure, clique em Java and forms workflow > Process Definition.

  4. Em Additional Properties, clique em Java Virtual Machine.

  5. Na caixa Generic JVM arguments, digite os argumentos -Dadobe.workmanager.allocate.max-batch-size=1.

  6. Clique em OK ou Aplicar e em Salvar diretamente para a configuração mestre.

Informações adicionais

O tamanho de lote padrão do Gerenciador de trabalho é 10. Ele pode causar uma condição de corrida entre encadeamentos do Gerenciador de trabalho. Na corrida, um thread atualiza alguns itens de trabalho em um estado em andamento enquanto o outro thread não consegue pegar todos os itens marcados como em andamento e executa os itens.