DB2 Performance is Java Performance: Holy Grail (cont.)

Over the last three years, my clients have shown that multiple frameworks, architectures and programming patterns are usually implemented within the same project. The problem is the poor performance lessons experienced from the application implementation are not fully understood and the performance problems are continued and replicated into the next architecture, framework or pattern.

Each application is different and each service or process within the application is unique. Step back and be flexible in your design patterns to understand that a single or a couple of architectures, frameworks or programming patterns are not correct for every situation. Your design should reflect the application requirements and the correct implementation for achieving the best performance might mean a variety or mix of approaches.

Objects within Java are great for flexibility and reuse. Java services and open source product such as Hibernate, iBatis, Ruby and techniques such as Java Persistence Architecture (JPA) and Data Access Objects (DAO) are great for accessing the database. Many of these techniques are common in today’s Java applications. My clients have experienced problems with these techniques when the application processing does not mind the transaction integrity or the unit of work properly. When this happens the application processes usually has connected to the database multiple times, processed the transaction too many times or not committed or rolled back the transaction properly. These transaction situations usually manifest themselves in JDBC errors or poor referential integrity issues that developers blame on the database. Unfortunately, it is not the database but the application coding of the services that cause the problems.

In the coming weeks I will talk further about the Java applications, their processing and issues that I have experienced with my clients. I know it will help you avoid some of these problems too.

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>