When different developer teams collaborate in the design and implementation of a large –and distributed– application, some care should be taken regarding the access to persistent data, since different components might use their own transactions and they might collide quite often, generating undesired blocking intervals. Additionally, when third-party libraries are used, they can provide unclear descriptions of their functionality and programmers might mistakingly use some of their operations. An access logger can be useful in both cases, registering the sentences actually sent to the database and the results of said sentences. Aspy is a tool of this kind, developed as a JDBC-driver wrapper for Java applications. It is able to save in a file the list of calls received by the JDBC driver, registering their parameters, starting time, completion time and either their obtained results or their raised exceptions. With such information, it is easy to identify common errors in database accesses and the set of transactions involved in blocking situations due to poor application design. We discuss three different techniques that were used for implementing Aspy, comparing their pros and cons.
[1]
Yi Hu,et al.
Identification of malicious transactions in database systems
,
2003,
Seventh International Database Engineering and Applications Symposium, 2003. Proceedings..
[2]
Premkumar T. Devanbu,et al.
Static checking of dynamically generated queries in database applications
,
2004,
Proceedings. 26th International Conference on Software Engineering.
[3]
Hamid Pirahesh,et al.
Heterogeneous query processing through SQL table functions
,
1999,
Proceedings 15th International Conference on Data Engineering (Cat. No.99CB36337).
[4]
Cristina V. Lopes,et al.
A study on exception detection and handling using aspect-oriented programming
,
2000,
Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.
[5]
Christian Bauer,et al.
Java Persistence with Hibernate
,
2006
.
[6]
Ondrej Lhoták,et al.
Optimising aspectJ
,
2005,
PLDI '05.
[7]
Jack Shirazi.
Java Performance Tuning
,
2000
.