I processi a lunga durata si bloccano | Le attività non avanzano in Work Manager

Lo stato di un processo in Work Manager di Admin UI non viene aggiornato quando l'attività è completa

Soluzione

Imposta la dimensione del batch di Work Manager su 1. Forza la sincronizzazione tra i due thread. Per modificare le dimensioni del batch, procedi come di seguito:

Aggiungi opzioni Java a JBoss

  1. Arresta l'applicazione server di JBoss.

  2. Apri [appserver root]/bin/standalone.bat (Windows) o standalone.sh (Linux o UNIX) in un editor e aggiungi le opzioni Java -Dadobe.workmanager.allocate.max-batch-size=1

  3. Riavvia il server.

Aggiungi le opzioni Java a WebLogic

  1. Avvia la console di amministrazione WebLogic digitando http://[host name]:[port]/console in un browser web.

  2. Digita il nome utente e la password creati per il dominio del server WebLogic e fai clic su Log Under Change Center, poi su Lock & Edit.

  3. In Struttura del dominio, fai clic su Ambiente > Server e, nel riquadro di destra, fai clic sul nome del server gestito.

  4. Nella schermata successiva, fai clic sulla scheda Configurazione > Avvio server.

  5. Nella casella Argomenti, aggiungi l'argomento -Dadobe.workmanager.allocate.max-batch-size=1

  6. Fai clic su Salva e poi su Attiva le modifiche.

  7. Riavvia il server gestito WebLogic.

Aggiungere opzioni Java a WebSphere

  1. Nell'albero di navigazione della console amministrativa WebSphere, fai clic su Server > Tipi di server > WebSphere application servers.

  2. Nel riquadro di destra, fai clic sul nome del server.

  3. In Infrastruttura server, fai clic su Java e forms workflow > Definizione processi.

  4. In Proprietà aggiuntive, fai clic su Java Virtual Machine.

  5. Nella casella Generic JVM arguments, digita gli argomenti -Dadobe.workmanager.allocate.max-batch-size=1.

  6. Fai clic su OK o Applica, quindi fai clic su Salva direttamente nella configurazione principale.

Informazioni aggiuntive

La dimensione predefinita del batch di Work Manager è 10. Può causare una condizione di gara tra i thread di Work Manager. In una gara, un thread aggiorna alcuni elementi in corso di lavorazione a uno stato in corso, mentre l'altro thread non riesce a raccogliere tutti gli elementi contrassegnati come in corso di lavorazione ed esegue gli elementi.