Implementing Retry ' featuring AOP



Everyday experience tells us that some errors are transient, but also that some can be handled simply by 'retrying� the failed operation. For instance, a glitch on the network might turn a resource unreachable for a short period of time; or a sudden peak of work on a server can cause a momentary denial of service. In many occasions, without other kind of specialized recovery code, it is possible to keep a program running only by retrying a failed operation. Unfortunately, retry is not explicitly available on many platforms or programming languages and, even if it were, it could not be blindly used for dealing with every abnormal situation. On languages like C# or Java, or even on languages that offer the retry construct such as Smalltalk and Eiffel, where errors are represented and communicated through exceptions, there is no simple way to clear the effects of a failed operation and, thus, re-attempt its execution. Programmers have to explicitly write sometimes complex and error-prone code to repair the state of a program and the execution context. In this paper, we propose an AOP technique for implementing 'retry� on systems lacking such a feature without using any language extensions for AOP or imposing modifications to the development language. Our approach eliminates the need for programmers to write \"state-cleaning\" code for normal objects by means of a transparent transactional mechanism and provides the means to identify non-idempotent operations on the code. In our evaluation we show that a relevant number of application failures can be masked using this approach.


Exception handling mechanisms


4th Latin-American Symposium on Dependable Computing (LADC'09), September 2009

Cited by

Year 2015 : 1 citations

 Felber, Pascal and Fetzer, Christof and Gramoli, Vincent and Harmanci, Derin and Nowack, Martin. Safe Exception Handling with Transactional Memory. Transactional Memory. Foundations, Algorithms, Tools, and Applications. Lecture Notes in Computer Science Volume 8913, 2015, pp 245-267

Year 2012 : 2 citations

 Xiao Xing Sun et al., A CPN Based Method for Aspect-Oriented Modeling and Analysis of Fault Tolerance, in Advanced Materials Research (Volumes 457 - 458), Advanced Materials and Engineering Materials, Sally Gao (Editor), Pages 891-898, 2011 Doi 10.4028/

 Mehmet Derin Harmanci, Semantics, Performance and Language Support for Transactional Memory, Ph.D. Thesis, Faculte des Sciences Universite de Neuchatel, June 2012.

Year 2011 : 1 citations

 D. Harmanci, V. Gramoli, P. Felber, Atomic Boxes: Coordinated Exception Handling with Transactional Memory, in Proceedings of the 25th European Conference on Object-Oriented Programming (ECOOP'11), Springer Verlag, Lancaster, UK, July 2011.