The "Best" answer depends on the application; however, it looks like you have only one real possibility. If you need load balancing to work, then you have to go the db route. The details will differ...
If you want the multi-page web operation to be cancellable, then you use either throw-away tables or a separate database to store the session. Personally, I'd have a preference for a separate database. Then the question become what semantics does the application need? Do you want the incomplete operation to be persistent? For how long? Can the user pick and choose between multiple pending operations? (e.g. a blogging application, perhaps.)