Dynamic fault handling mechanisms for service-oriented applications