Chiusura di un'istanza di processo

Talvolta, chi dispone dei privilegi di amministratore deve terminare un'istanza di processo di livello superiore che si trova in uno stato irreversibile. Poiché un'istanza di processo termina immediatamente, senza attendere processi secondari o attività in sospeso, è necessario terminare un'istanza di processo solo in situazioni eccezionali.

Procedura di questa attività

  1. Richiamare l'istanza di processo da terminare.
    ProcessInstanceData processInstance = 
           process.getProcessInstance("CustomerOrder");
  2. Terminare l'istanza di processo.

    È possibile terminare un'istanza di processo con o senza compensazione.

    Per terminare l'istanza del processo con compensazione:
    PIID piid = processInstance.getID();
    process.forceTerminate(piid, CompensationBehaviour.INVOKE_COMPENSATION);
    Per terminare l'istanza di processo senza compensazione:
    PIID piid = processInstance.getID();
    process.forceTerminate(piid);

    Se un'istanza di processo termina con compensazione, viene richiamato il gestore compensazioni definito per la maschera di processo. Se la maschera di processo non dispone di un gestore compensazioni definito, viene richiamato il gestore compensazioni predefinito. Se l'istanza di processo termina senza compensazione, l'istanza di processo termina immediatamente senza attendere che le attività partecipanti o originate in linea vengano terminate normalmente.

    Le applicazioni avviate dal processo e da attività autonome correlate al processo non vengono terminate tramite la richiesta di arresto forzato. Se queste applicazioni devono essere terminate, è necessario aggiungere istruzioni all'applicazione del processo per fare in modo che le applicazioni avviate dal processo terminino in maniera esplicita.


(c) Copyright IBM Corporation 2005, 2006.
This information center is powered by Eclipse technology (http://www.eclipse.org)