I am not using async job execution, I have wait states, waiting for a reply from a service. "some obvious stuff like rollback of the ongoing transaction" - how will the transaction rollback if the application shutsdown gracefully or crashes.
When your execution reaches the wait state the transaction is committed, there is no need to rollback just because of a shutdown, after bootup jBPM4 picks up your wait state and still waits for a signal, maybe I miss the point here but I don't see a reason to rollback because of a graceful shutdown? In case of a crash the normal transaction handling in your database or on the jdbc or hibernate level rolls back the changes, just like in any other database application.
Retry-Interceptor : - could you please provide more insight on this. any pointers on how to make best use of them and when should we use them.
the retry-interceptor is what you configure in your command service, see the dev guide (6.7 Services):
http://docs.jboss.com/jbpm/v4/devguide/html_single/
it's ment for catching hibernate StaleObjectExceptions but I still get those Exceptions so it seems like it doesn't work in all cases...