Implementing transactions using Ada exceptions: which features are missing?

  • Authors:
  • M. Patiño-Martínez;R. Jiménez-Peris;S. Arévalo

  • Affiliations:
  • Universidad Politécnica de Madrid, Facultad de Informática, Boadilla del Monte, 28660, Madrid, Spain;Universidad Politécnica de Madrid, Facultad de Informática, Boadilla del Monte, 28660, Madrid, Spain;Universidad Rey Juan Carlos, Escuela de Ciencias Experimentales, Móstoles, 28933, Madrid, Spain

  • Venue:
  • ACM SIGAda Ada Letters - Exception handling for a 21st century programming language proceedings
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

Transactional Drago programming language is an Ada extension that provides transaction processing capabilities. Exceptions have been integrated with transactions in Transactional Drago; exceptions are used to notify transaction aborts and any unhandled exception aborts a transaction. Transactions can be multithreaded in Transactional Drago, and therefore, concurrent exceptions can be raised. In that case a single exception must be chosen to notify the transaction abort. Transactional Drago provides exception resolution within transactions to tackle such a situation. In this paper we describe the transaction model of Transactional Drago focusing on how the Ada exception model can be used to implement Transactional Drago semantics. In the paper we identify which features of Ada were useful, as well as some weaknesses we have found in the language. We point out some missing basic mechanisms for the Ada standard that can be of great help for developing applications with strong exception handling requirements like transactional frameworks and many other applications.