cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
wpeterson
Level 3

Rollback Handling?

First, I would like to praise ISMP for actually implementing a functional Rollback model. I was shocked and dismayed to find this missing from InstallAnywhere, especially given Macrovisions plans to EOL ISMP and force everyone to switch to InstallAnywhere.

I am trying to extend the Rollback capability of our ISMP installation to properly appraise the end-user of the rollback status. That is, instead of immediately rolling back on error, the user should be appraised that an error occurred (and what it is), and wait for the users confirmation before triggering rollback. I've been able to implement this with flag variables and a Product Uninstallation Event (flags to ensure this event only handles uninstallation events DURING an installation, ie: Rollback).

How can error state of the installation be captured? That is, assuming a product action has thrown a ProductException, is there anyway to find that Exception from the generalized install (event handler) context?

All information appreciated,
-Winfield
Labels (1)
0 Kudos
(2) Replies
wpeterson
Level 3

I initially tried catching the Rollback event by adding an onUninstalling event to our product bean, but this event only fires at the very end of the rollback sequence (I suppose since the product bean is only installed last). This was unacceptable.

I had to get in at a lower level and create a LogListener which contained the logic to catch ProductExceptions and check the Rollback handling of the parent component, I can catch the Rollback right before it happens. This is working appropriately.

However, the Progress rendering is still incorrect. The Progress bar remains at the point where rollback occurred through the entire rollback period! The status and progress are only updated once rollback is complete. How can I manually update this or at least change the current status message to indicate that rollback is occurring? (since rollback will take usually almost as long as the original install)
0 Kudos
Koen_De_Vroede
Level 2

Hi Winfield,

I'm trying to get my installer to do exactly the same thing you described in this thread but I inherited an Installshield project without yet being an expert on the matter.
Would it be possible to describe your solution on how to prevent the automatic rollback and get user approval first?
The reason is that now, when an error occurs during the installation, the rollback kicks in automatically so the only thing left to debug what caused the installation to fail are the log files. It would be great to be able to ask the user to leave the installation as is till a support engineer has had an opportunity to investigate the problem.

Tx

Koen De Vroede
0 Kudos